1. 概念
- 流式布局:就是百分比布局,非固定像素,内容向两侧填充,理解成流动的布局,称为流式布局
- 视觉窗口:viewport,是移动端特有。这是一个虚拟的区域,承载网页的。
- 承载关系:浏览器—->viewport—->网页
2. 适配要求
- 网页宽度必须和浏览器保持一致
- 默认显示的缩放比例和PC端保持(缩放比例1.0)
- 不允许用户自行缩放网页
- 满足这些要求达到了适配,国际上通用的适配方案,标准的移动端适配方案。
3. 适配设置
- 如果任何设置都没有,默认走的就是viewport的默认设置
- 去设置新的viewport设置,达到适配要求, 设置视口的标签 在head里面并且应该紧接着编码设置
4 . viewport的功能
- width 可以设置宽度 (device-width 当前设备的宽度)
- height 可以设置高度
- initial-scale 可以设置默认的缩放比例
- user-scalable 可以设置是否允许用户自行缩放
- maximum-scale 可以设置最大缩放比例
- minimum-scale 可以设置最小缩放比例
- 在 content=”” 使用以上参数
- width=device-width 宽度一致比例是1.0
- initial-scale=1.0 宽度一致比例是1.0
- user-scalable=no 不允许用户自行缩放 (yes,no 1,0)
- 在 content=”” 使用以上参数
- 标准适配方案
1 | <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0"> |
快捷方式:meta:vp + tab
5. 非主流的适配方案:
1 | 1.页面的真实尺寸会比在设备的上尺寸要大几倍 |
6. 不建议在移动端使用jquery
1 | 1.可以使用jquery,但是不建议 |
7. box-sizing
1 | /*防止内容溢出 不出现滚动条 提供用户体验*/ |
8. 点击高亮
1 | /*轻击 轻触*/ |
9. 防止出现图片下间隙
本质是有文字导致的,比如:agfy, g比a在格式上下沉,这样的文字和图片在一起,就会出现图片下间隙。
1 | <style> |
10.移动端滑动事件:
touchstart touchmove touchend
11.click在移动端有300ms的延时:
避免300ms的方案:
1.tap事件
2.fastclick插件使用
12.区域滚动效果:
插件 isScroll
13.媒体查询
1、使用媒体查询能针对不同屏幕区间设置不同的布局和样式
2、怎么使用媒体查询:关于媒体查询 @media
3、语法: @media screen and (max-width: 768px) and (min-width: 320px){属性样式}
eg:
1 | @media screen and (max-width: 768px) { |
14.reset.css 和normalize.css区别
1 | 共同点:都是重置样式库,增强浏览器的表现一致性 |
15.响应式布局
1 | <!--响应式布局容器--> |
16.自定义字体图标
1 | /*自定义字体图标*/ |
17.boostrap实现导航条
1 | <!--切换按钮--> |
18.模板引擎
1 | <!--使用模版引擎--> |
补充:
a.offsetWidth; 获取控件的宽度
document.querySelector(‘.class_name); 获取标签
box.querySelectorAll(‘li’); 获取li标签数组
imageBox.style.transition = ‘all 0.2s’;
imageBox.style.webkitTransition = ‘all 0.2s’; css3属性要做兼容
浮动的元素因为脱离标准文档流没有高度,当设置touch事件的时候会无法响应事件,所以要清除浮动。
dom.addEventListener(‘touchmove’,function(e){
var moveX = e.touches[0].clientX;
})
实现两栏,左侧一栏设定:width:100px,float:left ; 右侧一栏设置overflow:hidden。可实现右侧占满屏幕,从而实现两栏。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
231、css代码
/* +,~选择器 + 紧邻的下一个兄弟元素 ~ 后面所有的兄弟元素*/
.wjs_topBar > .container > .row > div {
height: 40px;
line-height: 40px;
text-align: center;
}
.wjs_topBar > .container > .row > div ~ div {
border-left: 1px solid #ccc;
}
2、html代码
<header class="wjs_topBar hidden-sm hidden-xs">
<div class="container">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-5"></div>
<div class="col-md-2"></div>
<div class="col-md-3"></div>
</div>
</div>
</header>
注意事项:
- js方法调用一定不能忘记加小括号“()”,因为不会报错,eg: e.prevertDefault();
- tranform:translateX(1px); 能提高层级