px 是 CSS 中最經常使用的長度單位,能夠用來指定字體大小,元素的寬度、高度、邊框、內邊距,外邊距的大小等等, 它是一個虛擬長度單位,是計算機系統的數字化圖像長度單位,若是px要換算成物理長度,須要指定精度DPIcss
px 單位的值必須是整數值html
in - 表示英寸,是一個物理單位,在CSS中被直接映射成爲px; 轉換的方法是 1in = 96px
瀏覽器
cm - 表示釐米,在生活中經常使用的單位,一樣被映射爲 px; 轉換方法爲 1cm = 37.8px
框架
mm - 表示毫米,與cm相似,轉換方法爲 1mm = 0.1cm = 3.78px
字體
em 單位的值等於基本元素或父元素的字體大小。 code
例如,若是父元素的字體大小爲16px,則全部直接子元素中的1em值將計算爲16px。基於基本單元的知識,能夠很方便的增大或減少子元素的字體大小。 這裏的值不須要是整數。htm
使用em能夠輕鬆地將各類元素的字體大小保持在固定比例。 rem
例如,若是父元素的font-size的值爲50px,則將子元素的字體大小設置爲2em, 至關於設置爲100px。 相似的,將它設置爲0.5em將使得子元素的字體大小爲25px。文檔
另外有一點須要注意:若是想要經過 em 設置當前元素的大小值,而且不是相對於直接父元素,而是相對父元素的父元素或者根元素,就會變得很複雜,由於每一層都要進行計算class
例如:
<div class="parent"> <div class="child1"> <div class="child2"></div> </div> </div>
.parent { font-size: 20px; } .child1 { font-size: 1.5em; } .child2 { font-size: 1.2em; }
那麼就須要通過計算: child1的字體大小爲 20 x 1.5 = 30px
, 而 child2 的字體大小就等於 20 x 1.5 x 1.2 = 36px
rem 也是一個相對單位,與 em 的不一樣點在於rem的長度老是相對於根元素, 而不是像 em 使用級聯的方式來計算尺寸。這種單位使用起來就簡單不少
一樣是上面的例子,不過使用的單位是 rem
<div class="parent"> <div class="child1"> <div class="child2"></div> </div> </div>
.parent { font-size: 20px; } .child1 { font-size: 1.5rem; } .child2 { font-size: 1.2rem; }
那麼就須要通過計算: child1的字體大小爲 16 x 1.5 = 24px
, 而 child2 的字體大小就等於 16 x 1.2 = 19.2px
; 這裏爲何是使用 16 來乘而不是 20 呢?這就是由於rem的長度老是相對於根元素, 就是指 html, 而 html文檔中默認字體大小爲 16px, 所以這裏使用 16來計算
可視區相對長度 基於 視圖窗口或視口(屏幕上的可視區域或者框架)的寬度和高度。
vh單位與可視區的高度相關。vh的值等於可視區高度的1/100。若是咱們要根據瀏覽器窗口的高度來調整元素,這個單位是有用的。 例如,若是可視區的高度是400px,則1vh等於4px。 若是可視區高度爲800px,則1vh等於8px。
相似的,vw單位與可視區的寬度相關。 所以能夠推算1vw的值。 1vw就等於可視區寬度的1/100。 例如,若是窗口的寬度爲1200px,則1vw將爲12px。
vmin 是當前 vm 和 vh 中較小的一個值,也就是說,是可視區域較小的一邊的1/100的長度; 例如:可視區大小爲 1000x800, 則 wmin = 800/100 = 8px; 若是可視區大小爲 600x800, 則 wmin = 600/100 = 6px;
相似的, wmax 是當前 vm 和 vh 中較大的一個值,也就是說,是可視區域較大的一邊的1/100的長度; 例如:可視區大小爲 1000x800, 則 wmin = 1000/100 = 10px; 若是可視區大小爲 600x800, 則 wmin = 800/100 = 8px;
以百分比爲單位的長度值是基於具備相同屬性的父元素的長度值。所以會隨着父元素對應的長度值得變化而變化。例如:設置父元素的寬度爲 100px, 設置直接子元素的寬度爲 50%,則子元素的寬度爲 50px;