当前位置: 首页 > news >正文

css3-单位px与vw,rem的区别

css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况

px:绝对单位,页面按精确像素展示

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。

(另外需注意chrome强制最小字体为12号,即使设置成 10px 最终都会显示成 12px,当把html的font-size设置成10px,子节点rem的计算还是以12px为基准,所以网上很多文章提到的将html的font-size设为10方便计算不是那么可取)。

rem在移动端应用可参考淘宝的页面http://m.taobao.com (html的font-size通过动态计算获取)

页面基准320px(20px),html font-size值的计算:

[javascript] view plain copy
print ?
  1. var ele=document.getElementsByTagName(“html”)[0],  
  2.      size=document.body.clientWidth/320*20;  
  3. ele.style.fontSize=size+”px”  
var ele=document.getElementsByTagName("html")[0], 
size=document.body.clientWidth/320*20;
ele.style.fontSize=size+"px"
注:需设置meta缩放比1:1
<meta name=”viewport” content=”width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no” />


vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
vmin:vw和vh中较小的那个。
vmax:vw和vh中较大的那个。

vw, vh, vmin, vmax:IE9+局部支持,chrome/firefox/safari/opera支持,ios safari 8+支持,android browser4.4+支持,chrome for android39支持


其它的单位还有:
%:百分比
in:寸
cm:厘米
mm:毫米
pt:point,大约1/72寸

pc:pica,大约6pt,1/6寸


ex:取当前作用效果的字体的x的高度,在无法确定x高度的情况下以0.5em计算(IE11及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需属性加么有前缀)

ch:以节点所使用字体中的“0”字符为基准,找不到时为0.5em(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)


参考资料:

http://dev.w3.org/csswg/css-values/#font-relative-lengths

http://isux.tencent.com/web-app-rem.html

相关文章:

  • openlayers4通过拖动滑动条设置图层颜色透明度
  • openlayers4判断一个点是否在闭合图形的内部
  • 常见电脑屏幕分辨率
  • css3更改默认滚动条样式-webkit-scrollbar
  • GIS开发-天地图按照地名搜索定位
  • css3中的伪类before和after常见用法
  • openlayers4获取一个图形的边界
  • Vue.js小例子--tab选项卡切换
  • 使用openlayers3加载png格式图片
  • openalyers为自定义覆盖物overlay添加点击事件
  • absolute和float的区别
  • float定位对内联元素和块状元素的影响
  • javascript实现拖拽弹框高度,可调节弹框大小
  • vue中的template标签
  • SVN文件夹图标显示不正常的解决办法
  • 【Leetcode】101. 对称二叉树
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • “大数据应用场景”之隔壁老王(连载四)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • canvas 绘制双线技巧
  • Flannel解读
  • JavaScript服务器推送技术之 WebSocket
  • Java面向对象及其三大特征
  • log4j2输出到kafka
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • php面试题 汇集2
  • python学习笔记 - ThreadLocal
  • Ruby 2.x 源代码分析:扩展 概述
  • SpiderData 2019年2月16日 DApp数据排行榜
  • TypeScript实现数据结构(一)栈,队列,链表
  • webgl (原生)基础入门指南【一】
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 三栏布局总结
  • 算法系列——算法入门之递归分而治之思想的实现
  • 小程序button引导用户授权
  • 一些关于Rust在2019年的思考
  • zabbix3.2监控linux磁盘IO
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • (2015)JS ES6 必知的十个 特性
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一)Dubbo快速入门、介绍、使用
  • (一)u-boot-nand.bin的下载
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET 8.0 中有哪些新的变化?
  • .net core Swagger 过滤部分Api
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NetCore项目nginx发布
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .NET值类型变量“活”在哪?