老生常谈CSS中的长度单位


Posted in HTML / CSS onJune 27, 2016

前面的话

本文分为绝对长度单位和相对长度单位来介绍CSS中的长度单位的主要知识

绝对长度单位

绝对长度单位代表一个物理测量

像素px(pixels)
 
在web上,像素px是典型的度量单位,很多其他长度单位直接映射成像素。最终,他们被按照像素处理

英寸in(inches)
 
1in = 2.54cm = 96px

厘米cm(centimeters)
 
1cm = 10mm = 96px/2.54 = 37.8px

毫米mm(millimeters)
 
1mm = 0.1cm = 3.78px

1/4毫米q(quarter-millimeters)
 
1q = 1/4mm = 0.945px

点pt(points)
 
1pt = 1/72in = =0.0139in = 1/72*2.54cm = 1/72*96px = 1.33px

派卡pc(picas)
 
1pc = 12pt = 1/6in = 1/6*96px = 16px

字体相关相对长度单位

em、ex、ch、rem是字体相关的相对长度单位

em
 
em表示元素的font-size属性的计算值,如果用于font-size属性本身,相对于父元素的font-size;若用于其他属性,相对于本身元素的font-size

CSS Code复制内容到剪贴板
  1. <style>  
  2. .box{font-size20px;}  
  3. .in{  
  4.     /* 相对于父元素,所以2*2px=40px */  
  5.     font-size: 2em;  
  6.     /* 相对于本身元素,所以5*40px=200px */  
  7.     height: 5em;  
  8.     /* 10*40px=400px */  
  9.     width: 10em;  
  10.     background-color: lightblue;  
  11. }  
  12. </style>  
XML/HTML Code复制内容到剪贴板
  1. <div class="box">  
  2.     <div class="in">测试文字</div>      
  3. </div>  

老生常谈CSS中的长度单位

rem
 
rem是相对于根元素html的font-size属性的计算值

兼容性: IE8-不支持

CSS Code复制内容到剪贴板
  1. <style>  
  2. /* 浏览器默认字体大小为16px,则2*16=32px,所以根元素字体大小为32px */  
  3. html{font-size: 2rem;}  
  4. /* 2*32=64px */  
  5. .box{font-size: 2rem;}  
  6. .in{  
  7.     /* 1*32=32px */  
  8.     font-size: 1rem;  
  9.     /* 1*32=32px */  
  10.     border-left: 1rem solid black;  
  11.     /* 4*32=128px */  
  12.     height: 4rem;  
  13.     /* 6*32=192px */  
  14.     width: 6rem;  
  15.     background-color: lightblue;  
  16. }  
  17. </style>  
XML/HTML Code复制内容到剪贴板
  1. <div class="box">  
  2.     <div class="in" id="test">测试文字</div>      
  3. </div>  

老生常谈CSS中的长度单位

ex
 
ex是指所用字体中小写x的高度。但不同字体x的高度可能不同。实际上,很多浏览器取em值一半作为ex值

[注意]ex在实际中常用于微调

CSS Code复制内容到剪贴板
  1. <style>  
  2. .box{font-size20px;}  
  3. .in{  
  4.     font-size: 1ex;  
  5.     border-left: 1ex solid black;  
  6.     height: 10ex;  
  7.     width: 20ex;  
  8.     background-color: lightblue;  
  9. }  
  10. </style>  
XML/HTML Code复制内容到剪贴板
  1. <button>宋体</button><button>微软雅黑</button><button>arial</button><button>serif</button>  
  2. <div class="box">  
  3.     <div class="in" id="test">测试文字</div>      
  4. </div>  
JavaScript Code复制内容到剪贴板
  1. <script>  
  2. var aBtns = document.getElementsByTagName('button');  
  3. for(var i = 0; i < aBtns.length; i++ ){  
  4.     aBtns[i].onclick = function(){  
  5.         test.style.fontFamily = this.innerHTML;  
  6.     }  
  7. }      
  8. </script>  

ch
 
ch与ex类似,被定义为数字0的宽度。当无法确定数字0宽度时,取em值的一半作为ch值

兼容性: IE8-不支持

[注意]ch在实际中主要用于盲文排版
老生常谈CSS中的长度单位

CSS Code复制内容到剪贴板
  1. <style>  
  2. .box{font-size20px;}  
  3. .in{  
  4.     font-size: 1ch;  
  5.     border-left: 1ch solid black;  
  6.     height: 10ch;  
  7.     width: 20ch;  
  8.     background-color: lightblue;  
  9. }  
  10. </style>  
XML/HTML Code复制内容到剪贴板
  1. <button>宋体</button><button>微软雅黑</button><button>arial</button><button>serif</button>  
  2. <div class="box">  
  3.     <div class="in" id="test">测试文字</div>      
  4. </div>  
JavaScript Code复制内容到剪贴板
  1. <script>  
  2. var aBtns = document.getElementsByTagName('button');  
  3. for(var i = 0; i < aBtns.length; i++ ){  
  4.     aBtns[i].onclick = function(){  
  5.         test.style.fontFamily = this.innerHTML;  
  6.     }  
  7. }      
  8. </script>  

老生常谈CSS中的长度单位

视口相关相对长度单位

视口相关的长度值相对于初始包含块的大小。当初始包含块的宽高变化时,他们都会相应地缩放。然而,当根元素的overflow值为auto时,任何滚动条会假定不存在。

关于视口相关的单位有vh、vw、vmin、vmax4个单位

兼容性:IE8-不支持,IOS7.1-不支持,android4.3-不支持(对于vmax,所有IE浏览器都不支持)

[注意]黑莓错误的将其相对于视觉视口来计算;而safari奇怪地相对于html元素来计算,如果html中增加了内容,这两个单位也会发生变化

vh
 
布局视口高度的 1/100

vw
 
布局视口宽度的 1/100

CSS Code复制内容到剪贴板
  1. <style>  
  2. body{margin: 0;}  
  3. .box{  
  4.     /* 实现与屏幕等高的效果 */  
  5.     height: 100vh;  
  6.     background-color: lightblue;  
  7. }      
  8. </style>  
XML/HTML Code复制内容到剪贴板
  1. <div class="box"></div>  

老生常谈CSS中的长度单位

vmin
 
布局视口高度和宽度之间的最小值的 1/100

CSS Code复制内容到剪贴板
  1. /*类似于contain效果*/  
  2. .box{  
  3.     height: 100vmin;  
  4.     width: 100vmin;  
  5. }  

老生常谈CSS中的长度单位

vmax

布局视口高度和宽度之间的最大值的 1/100

CSS Code复制内容到剪贴板
  1. /*类似于cover效果*/  
  2. .box{  
  3.     height: 100vmax;  
  4.     width: 100vmax;  
  5. }      

老生常谈CSS中的长度单位

以上就是小编为大家带来的老生常谈CSS中的长度单位全部内容了,希望大家多多支持三水点靠木~

原文地址:http://www.cnblogs.com/xiaohuochai/p/5485683.html

HTML / CSS 相关文章推荐
CSS3媒体查询(Media Queries)介绍
Sep 12 HTML / CSS
使用简单的CSS3属性实现炫酷读者墙效果
Jan 08 HTML / CSS
一款纯css3实现的tab选项卡的实列教程
Dec 11 HTML / CSS
CSS3实现王者匹配时的粒子动画效果
Apr 12 HTML / CSS
CSS3+JavaScript实现炫酷呼吸效果的示例代码
Jun 15 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
Sep 24 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
详解canvas绘图时遇到的跨域问题
Mar 22 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
Jun 20 HTML / CSS
amazeui页面分析之登录页面的示例代码
Aug 25 HTML / CSS
css背景和边框标签实例详解
May 21 HTML / CSS
HTML中的表单Form实现居中效果
May 25 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
Jun 23 #HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
Jun 20 #HTML / CSS
CSS3实现3D翻书效果
Jun 20 #HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
Jun 16 #HTML / CSS
CSS3实现翘边的阴影效果的代码示例
Jun 13 #HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
Jun 13 #HTML / CSS
CSS3中的常用选择器使用示例整理
Jun 13 #HTML / CSS
You might like
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Windows下PyMongo下载及安装教程
2015/04/27 Python
Django中Model的使用方法教程
2018/03/07 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python爬取指定微信公众号文章
2018/12/20 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
管道维修工岗位职责
2013/12/27 职场文书
婚纱店策划方案
2014/05/22 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
党小组推荐意见
2015/06/02 职场文书
《小小的船》教学反思
2016/02/18 职场文书
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
图神经网络GNN算法
2022/05/11 Python