移动端WEB开发之响应式布局(响应式开发原理、bootstrap、阿里百秀案例)

移动端WEB开发之响应式布局

1.1 响应式开发原理

就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。

设备的划分情况:
在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="ie=edge"/><title></title><style type="text/css">.container {height: 150px;background-color: pink;margin: 0 auto;}/* 1.超小屏幕下,小于768px 布局容器的宽度为100% */@media screen and (max-width:767px) {.container {width: 100%;}}/* 2. 小屏幕下,大于等于768px 布局容器的宽度为750px */@media screen and (min-width:768px) {.container {width: 750px;}}/* 3. 中等屏幕下,大于等于992px 布局容器的宽度为970px */@media screen and (min-width:992px) {.container {width: 970px;}}/* 4. 大屏幕下,大于等于1200px 布局容器的宽度为1170px */@media screen and (min-width:1200px) {.container {width: 1170px;}}</style></head><body><!-- 响应式开发里面,首页需要一个布局容器 --><div class="container"></div></body>
</html>

在这里插入图片描述

1.2 响应式布局容器

响应式需要一个父级做为布局容器,来配合子级元素来实现变化效果。

原理就是在不同屏幕下,通过媒体查询来改变这个布局容器的大小,再改变里面子元素的排列方式和大小,从而实现不同屏幕下,看到不同的页面布局和样式变化。

父容器版心的尺寸划分:

  • 超小屏幕(手机,小于 768px):设置宽度为 100%
  • 小屏幕(平板,大于等于 768px):设置宽度为 750px
  • 中等屏幕(桌面显示器,大于等于 992px):宽度设置为 970px
  • 大屏幕(大桌面显示器,大于等于 1200px):宽度设置为 1170px

但是我们也可以根据实际情况自己定义划分

响应式导航案例:
需求分析:
① 当我们屏幕大于等于768像素,我们给container宽度为750px,因为里面子盒子需要浮动,所以container需要清除浮动。
② container里面包含8个小li 盒子,每个盒子的宽度定为 93.75px, 高度为 30px,浮动一行显示。
③ 当我们屏幕缩放,宽度小于768像素的时候, container盒子宽度修改为 100% 宽度。
④ container里面的8个小li,宽度修改为 33.33%,这样一行就只能显示3个小li ,剩余下行显示。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>响应式导航</title><style type="text/css">* {margin: 0;padding: 0;}.clearfix:after {content: "";display: block;height: 0;clear: both;visibility: hidden;}ul {list-style: none;}.container {width: 750px;margin: 0 auto;}.container ul li {float: left;width: 93.75px;height: 30px;background-color: green;text-align: center;}@media screen and (max-width:767px) {.container {width: 100%;}.container ul li {width: 33.33%;}}</style></head><body><div class="container"><!-- ul>li{导航栏$}*8 --><ul class="clearfix"><li>导航栏1</li><li>导航栏2</li><li>导航栏3</li><li>导航栏4</li><li>导航栏5</li><li>导航栏6</li><li>导航栏7</li><li>导航栏8</li></ul></div></body>
</html>

在这里插入图片描述

2.0 bootstrap的介绍

2.1Bootstrap简介

Bootstrap 来自 Twitter(推特),是目前最受欢迎的前端框架。Bootstrap 是基于HTML、CSS 和 JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。

中文网] http://www.bootcss.com/
官网 http://getbootstrap.com/
推荐网站 https://v3.bootcss.com/

框架:顾名思义就是一套架构,它有一套比较完整的网页功能解决方案,而且控制权在框架本身,有预制样式库、组件和插件。使用者要按照框架所规定的某种规范进行开发。

2.2 bootstrap优点

  • 标准化的html+css编码规范
  • 提供了一套简洁、直观、强悍的组件
  • 有自己的生态圈,不断的更新迭代
  • 让开发更简单,提高了开发的效率

2.3 版本简介

2.x.x:停止维护,兼容性好,代码不够简洁,功能不够完善。

3.x.x:目前使用最多,稳定,但是放弃了IE6-IE7。对 IE8 支持但是界面效果不好,偏向用于开发响应式布局移动设备优先的WEB 项目

4.x.x:最新版,目前还不是很流行

2.4bootstrap基本使用

在现阶段我们还没有接触JS相关课程,所以我们只考虑使用它的样式库。
控制权在框架本身,使用者要按照框架所规定的某种规范进行开发。

Bootstrap 使用四步曲:

  1. 创建文件夹结构
    在这里插入图片描述

  2. 创建 html 骨架结构

    <!DOCTYPE html>
    <html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>Bootstrap 101 Template</title><!-- Bootstrap --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]><script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]--></head><body><h1>你好,世界!</h1><!-- jQuery (necessary for Bootstrap's JavaScript plugins) --><script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><!-- Include all compiled plugins (below), or include individual files as needed --><script src="js/bootstrap.min.js"></script></body>
    </html>
    

  3. 引入相关样式文件

    <!-- Bootstrap 核心样式-->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    

  4. 书写内容

    直接拿Bootstrap 预先定义好的样式来使用

    修改Bootstrap 原来的样式,注意权重问题

    学好Bootstrap 的关键在于知道它定义了哪些样式,以及这些样式能实现什么样的效果

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title></head><body>123<h1>你好,世界!</h1><button type="button" class="btn btn-success">(成功)Success</button><button type="button" class="btn btn-danger">失败</button><!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --><script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script><!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script></body>
</html>

在这里插入图片描述
在这里插入图片描述

2.5 bootstrap布局容器

Bootstrap 需要为页面内容和栅格系统包裹一个 .container 或者**.container-fluid** 容器,它提供了两个作此用处的类。

  1. .container

响应式布局的容器 固定宽度

  • 大屏 ( >=1200px) 宽度定为 1170px
  • 中屏 ( >=992px) 宽度定为 970px
  • 小屏 ( >=768px) 宽度定为 750px
  • 超小屏 (100%)
  1. .container-fluid

流式布局容器 百分百宽度

  • 占据全部视口(viewport)的容器。

2.6 bootstrap栅格系统

Bootstrap提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
在这里插入图片描述在这里插入图片描述

  1. 栅格选项参数
    栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
    在这里插入图片描述
  • 按照不同屏幕划分为1~12 等份
  • 行(row) 可以去除父容器作用15px的边距
  • 行(row)必须放到container布局容器里面
  • 我们实现列的平均划分需要给列添加类前缀
  • xs-extra small:超小; sm-small:小; md-medium:中等; lg-large:大;
  • 列(column)大于 12多余的“列(column)”所在的元素将被作为一个整体另起一行排列
  • 每一列默认有左右15像素的 padding
  • 可以同时为一列指定多个设备的类名,以便划分不同份数 例如 class=“col-md-4 col-sm-6”

代码演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">[class^="col"] {border: 1px solid #ccc;}</style></head><body><div class="container"><div class="row"><!-- div{$}*4 --><div class="col-lg-3">1</div><div class="col-lg-3">2</div><div class="col-lg-3">3</div><div class="col-lg-3">4</div></div><!-- 如果孩子的份数相加等于12,则孩子能占满整个 container 的宽度 --><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-2">4</div></div><!-- 如果孩子的份数相加小于12,则孩子占不满整个 container 的宽度,会有空白--><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-1">4</div></div><!-- 如果孩子的份数相加大于12,则多余的那一列会另起一行显示--><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-3">4</div></div></div></body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">[class^="col"] {border: 1px solid #ccc;}.container .row:nth-child(1) {background-color: pink;}</style></head><body><div class="container"><div class="row"><!-- div{$}*4 --><div class="col-lg-3 col-md-4 col-sm-6 col-xs-12" >1</div><div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">2</div><div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">3</div><div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">4</div></div><!-- 如果孩子的份数相加等于12,则孩子能占满整个 container 的宽度 --><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-2">4</div></div><!-- 如果孩子的份数相加小于12,则孩子占不满整个 container 的宽度,会有空白--><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-1">4</div></div><!-- 如果孩子的份数相加大于12,则多余的那一列会另起一行显示--><div class="row"><!-- div{$}*4 --><div class="col-lg-6">1</div><div class="col-lg-2">2</div><div class="col-lg-2">3</div><div class="col-lg-3">4</div></div></div></body>
</html>

在这里插入图片描述
2. 栅格嵌套

栅格系统内置的栅格系统将内容再次嵌套。简单理解就是一个列内再分成若干份小列。我们可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-*元素内。
我们列嵌套最好加1个行row这样可以取消父元素的padding值而且高度自动和父级一样高
在这里插入图片描述

<!-- 列嵌套 --><div class="col-sm-4"><div class="row"><div class="col-sm-6">小列</div><div class="col-sm-6">小列</div></div>
</div>

代码演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">.row>div {height: 50px;background-color: pink;}.row .col-md-8 {background-color: lightskyblue;}</style></head><body><div class="container"><div class="row"><!-- div{$}*4 --><div class="col-md-4"><!-- 	列嵌套最好加1个行row  这样可以去掉父元素的padding值,而且高度自动和父级一样高--><div class="row"><div class="col-md-4">a</div><div class="col-md-8">b</div></div></div><div class="col-md-4">2</div><div class="col-md-4">3</div></div></div></body>
</html>

在这里插入图片描述

  1. 列偏移

使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。
在这里插入图片描述

 <!-- 列偏移 --><div class="row"><div class="col-lg-4">1</div><div class="col-lg-4 col-lg-offset-4">2</div></div>

代码演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">.row>div {height: 50px;background-color: pink;}</style></head><body><div class="container"><div class="row"><div class="col-md-3">左侧</div><!-- 偏移的份数 = 12 - 两个盒子的份数 = 6 --><div class="col-md-3 col-md-offset-6">右侧</div></div><br><div class="row"><!-- 如果只有一个盒子,偏移 = (12- 8)/2 = 2 --><div class="col-md-8 col-md-offset-2">中间盒子</div></div></div></body>
</html>

在这里插入图片描述
4. 列排序

通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。
在这里插入图片描述

 <!-- 列排序 --><div class="row"><div class="col-lg-4 col-lg-push-8">左侧</div><div class="col-lg-8 col-lg-pull-4">右侧</div></div>

代码演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">.row>div {height: 50px;background-color: pink;}</style></head><body><div class="container"><div class="row"><div class="col-md-4 col-md-push-8">左侧</div><div class="col-md-8 col-md-pull-4">右侧</div></div></div></body>
</html>

在这里插入图片描述
5. 响应式工具

为了加快对移动设备友好的页面开发工作,利用媒体查询功能,并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HdkWM6jA-1591960011599)(./images/2.jpg)]
与之相反的,是visible-xsvisible-smvisible-mdvisible-lg显示某个页面内容
代码演示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--要求当前网页使用IE浏览器最高版本的内核来渲染--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--视口的设置:视口的宽度和设备一致,默认的缩放比例和PC端一致,用户不能自行缩放--><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><!--[if lt IE 9]><!--解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题--><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><!--解决ie9以下浏览器对 css3 Media Query 的不识别 --><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><!--[endif]--><!-- Bootstrap 核心样式--><link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"><title></title><style type="text/css">.row>div {height: 100px;background-color: palegreen;}.row>div:nth-child(3) {height: 200px;background-color: pink;}span {font-size: 50px;color: #fff;}</style></head><body><div class="container"><div class="row"><div class="col-xs-3"><!-- visible-lg 在超大屏幕下显示该元素 --><span class="visible-lg">我会显示哟</span></div><div class="col-xs-3">2</div><!-- hidden-md 在中等屏幕下隐藏该元素 --><div class="col-xs-3 hidden-md">我会变魔术哟!</div><div class="col-xs-3">4</div></div></div></body>
</html>

在这里插入图片描述

2.7 bootstrap js插件的使用
详细内容请看 jQuery学习笔记系列(三)

3.0 阿里百秀案例制作

3.1 技术选型

方案:我们采取响应式页面开发方案

技术:bootstrap框架

设计图: 本设计图采用 1280px 设计尺寸

项目结构搭建

Bootstrap 使用四步曲:

  1. 创建文件夹结构

  2. 创建 html 骨架结构

  3. 引入相关样式文件

  4. 书写内容

container宽度修改

因为本效果图采取 1280的宽度, 而Bootstrap 里面 container宽度 最大为 1170px,因此我们需要手动改下container宽度

 /* 利用媒体查询修改 container宽度适合效果图宽度  */@media (min-width: 1280px) { .container { width: 1280px; } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创】Java实现手机号码归属地查询

网络上已经有很多的手机号码归属地查询的API接口&#xff0c;但是这些接口总是有一些大大小小的缺陷。 总结一下这些缺陷&#xff1a; 1、要直接将它的搜索框链接形式粘到自己的页面&#xff0c;点击查询的时候还要跳转到他们的网站来展示归属地结果 2、提供接口的API&#xff…

jQuery学习笔记系列(三)——事件注册、事件处理、事件对象、拷贝对象、多库共存、jQuery插件、toDoList综合案例

day03 - jQuery 学习目标&#xff1a; 能够说出4种常见的注册事件 能够说出 on 绑定事件的优势 能够说出 jQuery 事件委派的优点以及方式 能够说出绑定事件与解绑事件 能够说出 jQuery 对象的拷贝方法 能够说出 jQuery 多库共存的2种方法 能够使用 jQuery 插件 1.1. jQuery 事件…

LeetCode 2225. 找出输掉零场或一场比赛的玩家(计数)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 matches 其中 matches[i] [winneri, loseri] 表示在一场比赛中 winneri 击败了 loseri 。 返回一个长度为 2 的列表 answer &#xff1a; answer[0] 是所有 没有 输掉任何比赛的玩家列表。answer[1] 是所有恰好输掉 一场 比…

BZOJ4068 : [Ctsc2015]app

对于一个所选任务集合&#xff0c;如果对于任意时刻$i$&#xff0c;$i$前面所选任务数都不超过i的话&#xff0c;那么这些任务可以全选。 维护一棵线段树$T$&#xff0c;第$i$个位置一开始为$i$&#xff0c;每使用一个任务&#xff0c;$[t,T]$都要减$1$。 插入一个任务&#xf…

Log4j配置文件

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的&#xff0c;它可接keyvalue格式的设置或xml格式的设置信息。通过配置&#xff0c;可以创建出Log4J的运行环境。 配置文件 Log4J配置文件的基本格式如下&#xff1a; #配置根Logger log4j.rootLog…

LeetCode 2226. 每个小孩最多能分到多少糖果(二分查找)

文章目录1. 题目2. 解题1. 题目 给你一个 下标从 0 开始 的整数数组 candies 。数组中的每个元素表示大小为 candies[i] 的一堆糖果。你可以将每堆糖果分成任意数量的 子堆 &#xff0c;但 无法 再将两堆合并到一起。 另给你一个整数 k 。你需要将这些糖果分配给 k 个小孩&am…

指令系统——数据寻址(3)——堆栈寻址(详解)

一、总览 二、堆栈寻址 堆栈寻址&#xff1a;操作数存放在堆栈中&#xff0c;隐含使用堆栈指针&#xff08;SP&#xff09;作为操作数地址。堆栈是存储器&#xff08;或专用寄存器组&#xff09;中一块特定的按“后进先出&#xff08;LIFO&#xff09;” 原则管理的存储区&…

POJ1061 青蛙的约会(线性同余方程)

线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解。 这一题假设青蛙们跳t次后相遇&#xff0c;则可列方程&#xff1a; $$ MtX \equiv NtY \pmod L$$ $$ (M-N)t \equiv Y-X \pmod L$$ 于是就构造出一个线性同余方程&#xff0c;即可对t求解&#xff0c;解出最小非…

指令系统 CISC和RISC(详解)

一、总览 二、CISC CISC:Complex Instruction Set Computer设计思路&#xff1a;一条指令完成一个复杂的基本功能。代表&#xff1a;86架构&#xff0c;主要用于笔记本、台式机等。 80-20规律&#xff1a;典型程序中80%的语句仅仅使用处理机中20%的指令 三、RISC RISC:Reduc…

LeetCode 2231. 按奇偶性交换后的最大数字

文章目录1. 题目2. 解题1. 题目 给你一个正整数 num 。你可以交换 num 中 奇偶性 相同的任意两位数字&#xff08;即&#xff0c;都是奇数或者偶数&#xff09;。 返回交换 任意 次之后 num 的 最大 可能值。 示例 1&#xff1a; 输入&#xff1a;num 1234 输出&#xff1a…

亲密接触Redis-第一天

引言nosql&#xff0c;大规模分布式缓存遍天下&#xff0c;Internet的时代在中国由其走得前沿&#xff0c;这一切归功于我国特色的电商。因此nosql、大数据技术在中国应用的比国外还要前沿。从这一章开始我们将开始进入到真正的SOA、PAAS、SAAS、互联网的领域&#xff0c;因此每…

Ajax 编程基础(一)

一、Ajax 基础 传统网站中存在的问题&#xff1a; 网速慢的情况下&#xff0c;页面加载时间长&#xff0c;用户只能等待表单提交后&#xff0c;如果一项内容不合格&#xff0c;需要重新填写所有表单内容页面跳转&#xff0c;重新加载页面&#xff0c;造成资源浪费&#xff0c…

读 大数据 有感

Form--> 大数据:正在到来的数据革命,以及它如何改变政府、商业与我们的生活 平装 – 2013年4月1日 涂子沛 (作者) 最小数据集(Minimum Data Set,MDS)最小数据集的概念起源于美国的医疗领域,用来统一医疗账单.最小数据集是指通过收集最少的数据,最好地掌握一个研究对象所具有…

LeetCode 2232. 向表达式添加括号后的最小结果

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串 expression &#xff0c;格式为 "<num1><num2>" &#xff0c;其中 <num1> 和 <num2> 表示正整数。 请你向 expression 中添加一对括号&#xff0c;使得在添加之后&#xff0…

一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

一、建立你的第一个网站&#xff08;目标&#xff09; 前端开发 最终还是属于 Web 开发 中的一个分支&#xff0c;想要成为一名合格的前端开发人员&#xff0c;就必须要 充分理解Web 的概念。 构建一个专业的网站是一项巨大的工作&#xff01;对于新手我们应该从小事做起&#…

新年初六

儿子回老家第一天&#xff0c;生活变得很不规律&#xff0c;晚上刷夜看电影&#xff0c;早上睡到自然醒&#xff0c;小美明天开始上班&#xff0c;今天还能陪她放松一天&#xff0c;明天一个人在家休息一天之后初八开启新的工作模式。 全天宅在家里&#xff0c;正好把爸妈积攒…

LeetCode 2233. K 次增加后的最大乘积(优先队列)

文章目录1. 题目2. 解题1. 题目 给你一个非负整数数组 nums 和一个整数 k 。每次操作&#xff0c;你可以选择 nums 中 任一 元素并将它 增加 1 。 请你返回 至多 k 次操作后&#xff0c;能得到的 nums的 最大乘积 。由于答案可能很大&#xff0c;请你将答案对 10^9 7 取余后…

Packet Tracer 5.0 建构 CCNA 实验攻略——配置单区域 OSPF

一、拓扑结构如下&#xff1a; 二、分别为PC0、PC1配置IP地址&#xff0c;子网掩码和默认网关。 三、分别为路由器0、路由器1和路由器2各个接口配置IP地址和子网掩码&#xff0c;并将路由器的开关打开。 注意&#xff1a;可以通过命令show ip route 来查看路由表信息 路由器1和…

NSBundle

bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle. 1、获取bundle (NSBundle *)mainBundle; //app的目录 NSBundle *file [NSBundle mainBundle]; NSLog(&…

Packet Tracer 5.0 建构 CCNA 实验攻略——路由器实现 Vlan 间通信

一、网络拓扑结构如下&#xff1a; 二、为六台PC分别配置IP地址、子网掩码和默认网关 其余五台PC的配置与上图类似。 三、为路由器0创建g0/0.1逻辑子接口和g0/0.2逻辑子接口&#xff0c;并 设置g0/0.1逻辑子接口可以接受VLAN id 为10的802.1q帧&#xff0c;并且可将IP数据报封…