现在很多项目都需要做响应式或者自适应的来适应我们不同屏幕尺寸的手机,电脑等设备,那么就需要我们在页面上下功夫,但移动端的布局不同于pc端,首先我们要知道在移动端中,css中的1px并不等于物理上的1px,因为手机屏幕的分辨率已经越来越高,高像素但是屏幕尺寸却没有发生太大变化,那就意味着一个物理像素点实际上塞入了好几个像素。
1、在网页代码的头部,加入一行viewport元标签
在网页的中增加以下这句话,可以让网页的宽度自动适应手机屏幕的宽度,下面是这些属性的解释:
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
属性 | 描述 |
---|---|
width=device-width | width为设置layout viewport 的宽度,为一个正整数,”width-device”表示宽度是设备屏幕的宽度 |
initial-scale=1.0 | initial-scale为设置页面的初始缩放值,可以是一个带小数的数字,1.0就是占网页的100% |
minimum-scale=1.0 | 表示最小的缩放比例 |
maximum-scale=1.0 | 表示最大的缩放比例 |
user-scalable=no | 表示用户是否可以调整缩放比例,值为”no”或”yes” |
2、宽度不要用绝对的
width:auto; / width:XX%;
3、字体大小是页面默认大小的100%,即16像素,不要使用绝对大小"px",要使用相对大小“rem”
html{font-size:62.5%;}
body {font:normal 100% Arial,sans-serif;font-size:14px; font-size:1.4rem; }
html的字体大小设置为font-size:62.5%原因:浏览器默认字体大小是16px,rem与px关系为:1rem = 10px,10/16=0.625=62.5%,为了子元素相关尺寸计算方便,这样写最合适不过了。
4、流动布局,"流动布局"的含义是,各个区块的位置都是浮动的,不是固定不变的
.left{ width:30%; float:left}
.right{ width:70%; float:right;}
像这样,用左浮动和右浮动,好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。
5、选择加载CSS
"自适应网页设计"的核心,就是CSS3引入的Media Query模块。自动探测屏幕宽度,然后加载相应的CSS文件
<link rel="stylesheet" type="text/css" media="screen and (max-device-width: 600px)" href="style/css/css600.css" />
这段代码的意思是:如果屏幕宽度小于600像素(max-device-width: 600px),就加载css600.css文件。如果屏幕宽度在600像素到980像素之间,则加载css600-980.css文件
<link rel="stylesheet" type="text/css" media="screen and (min-width: 600px) and (max-device-width: 980px)" href="css600-980.css" />
还有(不建议使用):除了用html标签加载CSS文件,还可以在现有CSS文件中加载
@import url("css600.css") screen and (max-device-width: 600px);