CSS单位知多少

在CSS,很多属性都依赖于长度度量来合适的显示各种页面元素,因此CSS中也有很多长度单位也不足为奇。

那么问题来了:说说你知道CSS长度单位?px、em、rem……

下面我们就来看看CSS长度单位

px: 像素

in: 英寸

mm: 毫米

q: 1/4毫米

cm: 厘米

pt: 磅

pc: 派卡

%: 百分比

em: 根据文档字体计算尺寸

rem: root em根据根文档字体计算尺寸

ex: 文档字符”的高度

ch: 文档数字0的的宽度

vh: 视口高度的 1/100

vw: 视口宽度的 1/100

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

vmax: 视口高度和宽度之间的最大值的 1/100

绝对长度单位

px 与显示设备相关。对于屏幕显示,通常是一个设备像素(点)的显示。

p {

   font-size: 10px;

}

in英寸(2.54厘米,96px) 1in 总是等于96px

p {

   font-size: 1in; // 96px

}

mm 毫米 25.4mm 总是等于96px


p {

   font-size: 25.4mm; //96px

}

q 1q = 1/4mm


p {

   font-size: 101.6q; //96px

}

cm 厘米(10毫米)1cm == 37.8px


p {

   font-size: 1cm; // 96/25.4*10 px

}

pt磅 印刷单位(1/72 英寸)3pt 总是等于4px


p {

   font-size: 3pt; // 4px

}

pc 印刷单位 1pc = 12pt


p {

   font-size: 1pt; // 12/3*4px

}

来看看绝对单位间的相互转换:


1in = 2.54cm = 25.4 mm = 101.6q = 72pt = 6pc = 96px


相对长度单位

% 百分比相对于父元素


<div class="parent">

   <div class="children"></div>

</div>





<style>

.parent {

   width: 960px;

}

.children {

   width: 10%; //96px

}

</style>

em 和 rem (root em)

两者都是基于字体尺寸的,区别在于 em 是相对于当前父元素的字体大小为标准,而 rem 是相对于 html 元素的字体大小为标准。

<body>

 <div class="em">

   Test <!-- 10 * 1.2 = 12px -->

   <div class="em">

     Test <!-- 12 * 1.2 = 14.4px -->

     <div class="em">

       Test <!-- 14.4 * 1.2 = 17.28px -->

     </div>

   </div>

 </div>

 <div  class="rem">

   Test <!-- 10 * 1.2 = 12px -->

   <div  class="rem">

     Test <!-- 10 * 1.2 = 12px -->

     <div  class="rem">

       Test <!-- 10 * 1.2 = 12px -->

     </div>

   </div>

 </div>

</body>



<style>

 html,body {

   font-size: 10px;

 }

 div.em {

   font-size: 1.2em;

 }

 div.rem {

   font-size: 1.2rem;

 }

</style>

ex 这个单位表示元素font的 x-height ,即字符“x”的高度。对于很多字体, 1ex ≈ 0.5em

ch 指当前字体环境中数字 0 的宽度。

图片

vhvw

vh 等于视窗高度的 1/100 同理, vw 等于视窗宽度 1/100

 

<!-- 假设屏幕宽度为375px 高度为667px -->

<body>

   <div class="element"></div>

   <div class="full-height"></div>

</body>

<style>

.element {

   width: 50vw; // 187.5px

   height: 80vh; // 533.6px

}

.full-height {

   height: 100vh;

   /* height: 667px */

}

</style>

vmin 和 vmax这两个单位是针对vw和vh。 vmin 是 vw和 vh中比较 小 的值, vmax 是 vw和 vh中比较 大 的值


<!-- 假设屏幕宽度为375px 高度为667px -->

<body>

   <div class="box"></div>

</body>

<style>

   .box{

       height: 1vmin; //375/100=3.75px

       width: 1vmin;

   }

   .box{

       height: 1vmax; //667/100=6.67px

       width: 1vmax;

   }

</style>

假设需要让一个元素始终在屏幕上可见:


.box {

   height: 100vmin;

   width: 100vmin;

}

图片

假设需要让这个元素始终铺满整个视口的可见区域:

.box {     height: 100vmax;     width: 100vmax;}

图片

总结

尺寸单位不是很难,但是看完这么多单位,你的内心一定是崩溃的,可见CSS真不简单。但是在实际生产中我们及常用到的还是px、em、rem、%,同时vh、vw也是相当好用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值