# CSS 單位 px,em,rem,% ###### tags: `HTML, CSS` ## 網頁 ( 單位 ) * px:絕對單位,代表螢幕中每個「點」( pixel )。 * em:相對單位,每個子元素透過「倍數」乘以**父元素**的 px 值。 * rem:相對單位,每個元素透過「倍數」乘以**根元素**的 px 值。 * %:相對單位,每個子元素透過「百分比」乘以父元素的 px 值。 ## 網頁 ( 屬性名稱 ) * medium:預設值,等於 16px ( h4 預設值 ) * xx-small:medium 的 0.6 倍 ( h6 預設值 ) * x-small:medium 的 0.75 倍 * small:medium 的 0.8 倍 ( h5 預設值,W3C 定義為 0.89,實測約為 0.8 ) * large:medium 的 1.1 倍 ( h3 預設值,W3C 定義為 1.2,實測約為 1.1 ) * x-large:medium 的 1.5 倍 ( h2 預設值 ) * xx-large:medium 的 2 倍 ( h1 預設值 ) * smaller:約為父層的 80% * larger:約為父層的 120% ## px > px 是一種絕對單位,設定多少大小就會在螢幕上忠實呈現。 ```html= <div style="font-size:16px;">16px <div style="font-size:20px;">20px <div style="font-size:24px;">24px <div style="font-size:16px;">16px <div style="font-size:32px;">32px</div> </div> </div> </div> </div> ``` ![](https://i.imgur.com/goHBmUk.png) ## em > em 是相對單位,為每個子元素透過「倍數」乘以父元素的 px 值 > > 比較特別的是,如果巢狀結構比較多層,內層的元素會在乘上 em 的倍率喔! ![](https://i.imgur.com/1B38GOn.png) ## rem > rem 是相對單位,為每個元素透過「倍數」乘以根元素的 px > > 所有 rem 的更動都是根元素的倍數 ![](https://i.imgur.com/w7CW8RU.png) ## % > % 百分比是相對單位,和 em 大同小異,簡單來說 em 就是 % 數字的部分除以一百 ```html= <div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120%</div> </div> </div> </div> </div> ``` 最外層 html font-size = 16px的話 最內層就會是16px x 1.2 x 1.2 x 1.2 x 1.2 x 1.2 = 39.8px ![](https://i.imgur.com/9oVxGyt.png) ## 實作上面的選擇 ### 選擇em 建議使用在限制區域的內容、元件 ### 選擇rem 因為是根元素的倍數所以很適合處理整體大小尺寸的切換