最近的项目需求,内嵌电视端显示页面,所以使用到了css3的属性:vw \ vh,遇到一些问题,记录下来

vw、vh是什么?

字面上可以简单理解为,vw (view width),vh(view height),相当于一种长度单位,类似百分比,1vw = 屏幕宽度的百分之一,1vh等于屏幕高度的百分之一,也是属于一种自适应的长度单位。

那为什么不直接用%、rem,而要用vw、vh?有什么区别?

显示器都存在逻辑分辨率和物理分辨率,手机、pad、电脑、电视,都存在这两种分辨率,一个是理论值,一个是显示器的实际值,可能电脑设置的分辨率是1366*800,但电脑的实际分辨率是1280*720,所以在我们设置的长度单位上可能就会存在偏差,vm、vh就是以物理分辨率为基础,在物理分辨率上的百分比,而我们平时用的%是以父元素长度为参照,rem则是以html、body设置的font-size为参照。

所以在混合使用这两种长度单位的时候千万要小心,因为如果父元素存在padding、margin的话,父元素的满屏长度就不是100%,在子元素中使用vw、vh则是以满屏长度为基准,就会存在偏差,如下图:

中间元素的长度、高度、定位,使用的都是vw、vh,都是基于物理分辨率,而父元素使用的是百分比,而且存在padding,所以出现位置偏差

解决方案,两种:1 将父元素宽高改为以vw、vh为单位,2 将子元素改为以%为单位,视实际情况更改,我这里因为是在原有项目上的修改,所有子集单位都是vw、vh,所以我更改父元素的单位

注意:vw、vh为css3新增的单位,所以在不支持css3的浏览器中是无法实现的,IE8及IE8以下的浏览器不支持,选择性使用,希望本篇博文能够帮助到你!

css3 vw、vh属性详解,以及与%、rem的区别介绍的更多相关文章

  1. CSS3中border-image属性详解

    border-images可以说也是CSS3中的重量级属性,如同圆角.边框颜色属性border-color.块阴影属性一样,也是属于边框属性中的一员. 从其字面意思上看,我们可以理解为“边框-图片”, ...

  2. css3 transform 变形属性详解

    本文主要介绍了css3 属性transform的相关内容,针对CSS3变形.CSS3转换.CSS3旋转.CSS3缩放.扭曲和矩阵做了详细的讲解.希望对你有所帮助. 这个很简单,就跟border-rad ...

  3. css3中transition属性详解

    css3中通过transition属性可以实现一些简单的动画过渡效果~ 1.语法 transition: property duration timing-function delay; transi ...

  4. css3易混淆属性详解

    1.background,  background-color,   color (1)background:在一个声明中设置所有属性: 如:background: #00FF00 url(bgima ...

  5. CSS3动画相关属性详解

    本文转载于:<https://blog.csdn.net/lyznice/article/details/54575905> 一.2D效果属性 要使用这些属性,我们需要通过 transfo ...

  6. CSS3:overflow属性详解

    1.Overflow overflow为溢出(容器),当内容超出容器时只需添加overflow属性值为hidden, 就可以把超出容器的部分隐藏起来: 如果内容超出容器却又不想其隐藏时可以将其属性值设 ...

  7. 【CSS3 transform属性和过渡属性详解】

    CSS3transform属性详解 transform字面上就是变形,改变的意思. 在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translat ...

  8. CSS3的@keyframes用法详解:

    CSS3的@keyframes用法详解:此属性与animation属性是密切相关的,关于animation属性可以参阅CSS3的animation属性用法详解一章节. 一.基本知识:keyframes ...

  9. css动画-animation各个属性详解(转)

    CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①a ...

随机推荐

  1. hdfs fsimage namenode 应该设置多少堆内存合适

    线上的fsimage 有1.8G左右了,设置了6G heap 不够用了 新生代:老年代=1:2=2G: 4G NameNode的内存主要由NameSpace和BlocksMap占用,其中NameSpa ...

  2. Dom对象和jQuery对象的相互转化

    01.jQuery对象 1.jQuery对象就是通过对jQuery包装dom对象后产生的对象. 2.虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DO ...

  3. 解决idea启动项目报错:Unable to open debugger port(127.0.0.1:60157):java.net.SocketException"socket closed

    原因分析: 1.可能是端口被占用导致,其他软件占用了tomcat的端口. 2.可能是在打开Tomcat的情况下关闭了Eclipse.idea等开发工具,或是Eclipse.idea非正常关闭(如电脑. ...

  4. 使用ansible安装docker以及docker-compose

    转自:https://www.cnblogs.com/jsonhc/p/7879028.html 环境三台centos7主机: master:192.168.101.14,node1:192.168. ...

  5. Bash:精华

    # 声明索引数组(以从0开始的整数做索引的数组).以下三种等效. declare -a array declare array=(this is numeric array ) array=(this ...

  6. Jenkins:管理节点

    Jenkins 管理节点 是管理所有即将在其上执行任务(JOB)的slave机器,包括各种OS类型的主机,都可以作为节点,因为Jenkins是java实现的,所以能安装JVM的OS都可以作为Jenki ...

  7. Redis使用认证密码登录

    Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用.这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安 ...

  8. CC攻击与DDOS攻击区别

    二者的攻击方式主要分为三种:直接攻击.代理攻击.僵尸网络攻击 CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些.这种攻击你见不到虚假IP,见不到特别大的异常流 ...

  9. PRC远程过程调用

    RPC(Remote Promote Call) 一种进程间通信方式.允许像调用本地服务一样调用远程服务. RPC框架的主要目标就是让远程服务调用更简单.透明.RPC框架负责屏蔽底层的传输方式(TCP ...

  10. ReactiveX 学习笔记(11)对 LINQ 的扩展

    Interactive Extensions(Ix) 本文的主题为对 Ix 库,对 LINQ 的扩展. Buffer Ix.NET Buffer Ix.NET BufferTest Buffer 方法 ...