一、了解什么是viewport视口
在PC端,我们开发的HTML页面运行在浏览器中,浏览器有多宽(一般浏览器代表设备的宽度)HTML就有多宽,也就是在浏览器宽度的视口中渲染和呈现我们的页面
移动端和PC端有区别:不管移动端设备(代指打开的浏览器)的宽度是多少,HTML页面的宽度是980(或者1024) =>导致的问题:如果在设备窗口中想把整个页面完全呈现出来(小窗口中完全展示大页面),我们只能把大页面进行缩放,HTML页面缩放了,那么页面中所有内容都缩放了
解决方案:只要让H5页面的宽度和手机设备的宽度保持一致即可,就不会出现手机渲染页面的时候把页面缩放的事情了
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
/*此META标签就是在设置VP(视口)的规则
width=device-width:让HTML页面的宽度等于设备的宽度
height=:设置HTML页面的高度(一般不用)
initial-scale=1.0:初始缩放比例是1:1(也就是既不放大 也不缩小)
user-scalable=no:禁止用户手动缩放
maximum-scale=1.0、minimum-scale=1.0:设置最大最小的缩放比例1:1(既不放大也不缩小 =>部分安卓机中只设置user-scalable是不起作用的,需要同这两个一起使用)*/
layout viewport:布局(页面)视口(和开发CSS等相关)
visual viewport:手机视口(应用场景少)
ideal viewport:理想视口(应用场景少)
二、实现响应式布局的几种办法
1.基于@MEDIA来处理(麻烦一些)
2.固定布局(viewport => width=320px):按照设计稿把320尺寸的写好即可(所有的尺寸都可以固定,而且都是设计稿的一半 [因为设计稿是大一倍的]),在其它的设备上,让320的页面居中展示即可
3.SCALE等比缩放布局(严格按照设计稿的尺寸来写样式[没有啥自适应宽度,都是固定值],在其它设备上,首先获取设备的宽度,让其除以设计稿的宽度,然后让原始写好的页面按照这个比例整体缩小即可) =>会导致一些问题例如字体变模糊...
4.REM等比缩放:它是参考SCALE,只是用的REM单位来实现的等比缩放(严格按照设计稿的尺寸编写 [但是一般宽度让他自适应],其余的值可以写成固定值 -> 在编写CSS样式的时候,我们把所有的PX单位都换算成REM单位 -> 当加载页面的时候,根据当前设备的尺寸除以设计稿,根据比例动态调整REM和PX的换算比例)
5.CSS3中提供了flex-box伸缩盒子模型,基于这个属性,可以让某些效果处理起来更加的方便
1、4、5是目前最常用的响应式布局方案