响应式布局Viewport

要弄懂响应式布局首先得知道viewport的概念。viewport就是浏览器显示页面内容的屏幕区域。

视口又可分为布局视口,视觉视口,理想视口。

一、viewport

视觉视口:各大网站在初期为了适应手机,给手机端默认视口宽度设为980px。这样原来是电脑上的布局为了能在在手机上显示就会自动压缩。同时网站上的字就会变得十分模糊。来看看典型的栗子

如果在手机上就会变成这样

视觉视口:pc端网页还是保持原来的尺寸大小。移动端能看到的网页的部分就是视觉视口。同样是以百度首页为栗子

在移动端能看到的部分,也就是上面的图,就是视觉视口。

再来看看理想视口,它是pc端的网页在手机端的最佳布局方式。各大主流网站都做了移动端的适配,所以同样以百度为例。

上面展示的就是理想视口。

为了能让网页在移动端都以理想视口的方式布局。我们需要用到meta标签,它会通知浏览器以设备的宽度来呈现网页。如果加上了meta标签,布局视口的宽度就以设备宽度为准,而不是固定以980px。设备宽度为1000px,布局视口宽度就是1000px,设备是200px,布局宽度就是200px。

二、meta标签

来正式的看一看神奇的meta标签。

<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

再看看百度的实际应用

三、px单位

物理像素和物理像素比:

物理像素和设备的分辨率有关。我们知道分辨率越高,屏幕上的显示就会更清晰。物理像素是设备一出厂就规定好了的。如果用ps打开一张图片,经过无限放大之后看到的那一个个的小格子,就是1像素.

px单位是css中的单位,它指的是css像素,1css像素=物理像素/分辨率。

如果设计师给了你一份750px*1080px的视觉稿,布局视口之前已经提过是980px。此时在pc端中 1css像素=750/980=0.76px,移动端(以iPhone6为例)1css像素=750/375=2px。这里看出,在pc端中1像素==0.76个物理像素,在iPhone6中1css像素==2物理像素。这样就会造成单位的不统一,从而造成视觉效果的不统一。

常见移动式布局解决方案

媒体查询:

@media screen and (max-width: 960px){
    body{
      background-color:#FF6699
    }
}

@media screen and (max-width: 768px){
    body{
      background-color:#00FF66;
    }
}

@media screen and (max-width: 550px){
    body{
      background-color:#6633FF;
    }
}

@media screen and (max-width: 320px){
    body{
      background-color:#FFFF00;
    }
}

上述的代码通过媒体查询定义了几套样式,通过max-width设置样式生效时的最大分辨率,上述的代码分别对分辨率在0~320px,320px~550px,550px~768px以及768px~960px的屏幕设置了不同的背景颜色。

使用百分比布局(流式布局)

百分比布局,很好理解。但是问题是百分比是相对于谁的百分比。

参考文档:https://github.com/forthealllight/blog/is80sues/13 这里有很详细的介绍

使用rem单位

rem单位在某种程度上保持了单位的一致性。无论嵌套的有多深,它始终以html根元素的字体大小为标准1rem=16px

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值