结论:

视口viewport的设置是为了让字的显示在不同的屏幕下保持一致.

单位rem的使用是为了让页面中的布局元素的比例在不同的屏幕下显示的比例保持一致.

现象:

我们看电脑时候的网页的时候的字体大小假如是font-size:20px,但是一换到手机上的时候显示字体就会变得过小,这是因为viewport的关系.

viewport概念:决定一个屏幕能够显示的最大布局宽度,如果一个ipone6手机的可视视图为375像素,但让它的布局宽度以960px去显示就会适当的缩小整体布局来容纳可视视图,也就是可视视图的1个像素对应布局视图的960/375px个像素,所以虽然css中font-size:20px没有变化但是物理上的像素产生了变化

那如果我们把viewport设置为可视界面的宽度,那么布局视图的px与可视视图的px意义对应,字体也不会缩小

如果viewport=device-width能否说明布局视图的大小就是不会超出设备的宽度了呢,视图的宽度确实是不会超出设备的宽度但是元素的长度如果超出375的范围了还是会有滚动条的.

情况1:(设置viewport=device-width的时布局页面与设备宽度的比例情况)

情况2:(设置viewport=device-width的时布局页面溢出时与设备宽度的比例情况)

情况2:(不设置viewport=device-width时view-port的布局页面与设备宽度的比例情况)

我们该如何解决上述问题呢,就是当设计在ipne6的上页面在ipone4的页面上也能显示出来,而且不会出现超出的滚动条,这就需要舍弃px固定单位,采用rem的单位

rem单位的简述,可以根据网页的根元素来设置字体大小的相对单位来改变.

通常我们设置640的html{font-size:100px}这样我们可以轻松的写出关于设计稿上的1px转换成rem就是0.01rem

我们需要满足以下关系式  640/320 = 100/fs    求出fs得出相应需要改变的font-size,而一旦改变了根元素font-size的值,以前定义的rem单位的值也会随之发生改变,无需一个一个的去修改,rem的作用就是通过修改一个html下的font-size元素,其他用rem的元素宽度也会同时改变.而且这个关系的fs可以通过js来动态获取,这样我们就见简单的实现了移动的自适应.

 <script>
var des = 640; //设计搞的宽度
var winW = document.documentElement.clientWidth; //当前设备的物理宽度
document.documentElement.style.fontSize = winW/desW*100+"px"; //获取以font-size的100px为基准的相对比例字体大小
</script>

视口viewport与单位rem的本质的更多相关文章

  1. 移动端布局:视口viewport的理解

    移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一 ...

  2. 移动端适配单位rem

    0 写在前面 本周惊喜地发现,其他各个老师的软工班(罗杰老师班和欧阳老师班)的软工项目的alpha版本都已经发布了!(然而我们软工项目还没开始写代码…逃…) 十分好奇的我第一时间下载了一些他们的产品进 ...

  3. 移动web开发之视口viewport

    × 目录 [1]布局视口 [2]视觉视口 [3]理想视口[4]meta标签[5]总结 前面的话 在CSS标准文档中,视口viewport被称为初始包含块.这个初始包含块是所有CSS百分比宽度推算的根源 ...

  4. CSS3新的字体尺寸单位rem

    CSS3引入新的字体尺寸单位 rem ,可以简单记忆为root rm. CSS3的出现,他同时引进了一些新的单位,包括我们今天所说的rem.在W3C官网上 是这样描述rem的——“font size ...

  5. css 相对单位rem详解

      CSS3新增了一个相对单位rem(root em,根em),这个单位引起了广泛关注.这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素. ...

  6. 7个你可能不认识的CSS单位:rem vh vw vmin vmax ex ch

    rem 我们首先介绍下和我们熟悉的很相似的货.em 被定义为相对于当前对象内文本的字体大小.炒个栗子,如果你给body小哥设置了font-size字体大小,那么body小哥的任何子元素的1em就是等于 ...

  7. 移动端常用单位——rem

    移动端常用单位: ①px:像素大小,固定值 ②%:百分比 ③em(不常用,但是在首行缩进时可以使用):相对自身的font大小(当自身的字体大小也是em做单位时,才会以父元素的字体大小为基准单位) ④r ...

  8. 关于CSS单位:rem vh vw vmin vmax

    rem(root em) 如果你给body设置了font-size字体大小,那么body的任何子元素的1em就是等于body设置的font-size demo: body {  font-size: ...

  9. (转)移动端开发总结(一)视口viewport总结

    转载链接:移动端开发中,关于适配问题的一点总结(一) 视口 布局视口layout viewport 视觉视口visual viewport 理想视口 缩放 一个重大区别 最小缩放 和最大缩放 分辨率 ...

随机推荐

  1. Shell之脚本检查与调试

    目录 Shell之脚本检查与调试 参考 脚本语法检查 脚本运行调试 Shell之脚本检查与调试

  2. ActiveMQ学习总结------入门篇01

    注:*这篇博文文章主要介绍ActiveMQ是什么原理性的内容和如何安装和简易操作 一. ActiveMQ  简介 1 ActiveMQ是什么呢?看起来好碉堡的东西哇! ActiveMQ 是 Apach ...

  3. SpringBoot系列:Spring Boot使用模板引擎JSP

    一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...

  4. maven突然报大量package does not exist(包不存在)问题

    遇到个问题,不知道原因,虽然已解决,但是扔不知道为什么,希望有大神帮忙解答下~~~不胜感激~~~ 国庆假期回来后,小伙伴发布测试服务器版本忽然发现报错,我咨询IT管理组近期并没有对服务器配置和权限做调 ...

  5. mac下安装rabbitmq

    使用homebrew安装rabbitmq,命令如下: brew install rabbitmq 安装的位置如下/usr/local/Cellar/rabbitmq/3.7.18 进入到sbin目录下 ...

  6. 在chrome浏览器中调用IE浏览器并访问(openIE.reg自定义协议)

    在谷歌浏览器中有4种方法调用IE浏览器.如下: c++ socket通过浏览器在ie中打开指定url : vb生成exe,url访问exe启动ie并打开指定url : 通过socket实现通过http ...

  7. COGS 2510. 拯救紫萱学姐

    [题目描述] 其实在开考前半个小时题面并不是这样的. 由于明天要考试,同学们要把抽屉里的书都搬空,书很多而且办了走读不能回寝室的学长一眼就看到了回班撩他的学姐,于是就把学姐当学长用♂了:“帮我把这摞书 ...

  8. Redis之数据类型及命令

    Redis(REmote DIctionary Server) 是一个遵守BSD协议.支持网络.可基于内存亦可持久化的日志型key-value存储系统. KEY 常用指令: 指令 注释 备注 exit ...

  9. 全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23

    作者 | 临石.元毅.冬岛.衷源.天元 业界要闻 全球首个开放应用模型 OAM 开源 2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon ...

  10. burp插件之xssValidator

    0x01 安装环境 Phantomjs 下载:http://phantomjs.org/download.html 下载后配置环境变量,把bin目录下的这个exe加入环境变量 xssValidator ...