頁面排版中讓你迷惑的px em rem長度單位

2021-07-28 11:37:07 字數 1391 閱讀 3573

本博文也是自己理解的心得體會,分享給對此還迷惑的小夥伴。

我們在寫頁面時,或者檢視別人的頁面樣式**時,時常會看到如下的四種常見的元素的大小單位:
1. px
px是pixel的縮寫,表示畫素,所謂畫素就是呈現在我們顯示器上的乙個個小點,每個畫素點都是大小等同的,所以畫素為計量單位被分在了絕對長度單位中。
2. %
百分比%就是相對于父元素尺寸來進行計算的,比如定義兩個div元素,div1包含div2,設定父div1的width為100px,子div2的width為50%,則實際上計算的結果就是:子div2的寬度是100px*50% = 50px。
3. em
em就是相對於本身元素的字型尺寸來進行計算的,比如2em就是所應用元素上字型大小的兩倍。
4. rem
rem是css3中引入的單位,rem是相對於根元素的字型大小來進行計算的,它可以避免em因為層級巢狀太多,字型設定變的難易維護的問題,目前主流的瀏覽器除了ie8以外,大部分瀏覽器都支援rem。
這裡我主要展示下% em rem相對長度單位的使用和計算理解,對於px絕對單位就直接略過。

/* em 使用 

注意:em相對於本身元素字型大小計算,如果本身元素沒有定義字型大小,那就逐級向上查詢計算,如果最高端也沒有定義,則使用預設值計算,一般瀏覽器的預設字型大小為12px*/

body

.div1

.div2

.div3

小結:想必通過簡單例子,大家已經完全理解了em的計算原理,也肯定感覺出乙個問題,就是如果我們頁面設計中巢狀的元素關係太多,使用em就需要一級一級查詢計算,這使得頁面元素字型大小難以維護和把握,所以也就有了rem的出現,很好解決了em的這個問題。

/* rem 使用 

注意:rem相對於根元素字型大小計算,如果根元素字型大小沒有定義,則使用預設值計算,一般瀏覽器的預設字型大小為12px */

* .div1

.div2

.div3

/* % 使用介紹

注意:%相對于父元素尺寸大小計算*/

body

.div1

.div2

.div3

.div1,.div2,.div3

盡量設定相對尺寸

只有在預知元素尺寸下,才使用決定尺寸

使用em 或者 rem 設定頁面字型大小

咳咳,還是那句話

還是要不斷學習,因為自己還很年輕

那些年讓你迷惑的阻塞 非阻塞 非同步 同步

在it圈混飯吃,不管你用什麼程式語言 從事前端還是後端,阻塞 非阻塞 非同步 同步這些概念,都需要清晰地掌握,否則,怎麼與面試官談笑風生 chui niu pi 但是,掌握這些概念又不是非常容易,尤其對非科班出身的,更加困難。本文試圖給出乙個清晰簡明但不失深刻的介紹,希望對大家有所幫助。這些概念之所...

那些年讓你迷惑的阻塞 非阻塞 非同步 同步

在it圈混飯吃,不管你用什麼程式語言 從事前端還是後端,阻塞 非阻塞 非同步 同步這些概念,都需要清晰地掌握,否則,怎麼與面試官談笑風生 chui niu pi 但是,掌握這些概念又不是非常容易,尤其對非科班出身的,更加困難。本文試圖給出乙個清晰簡明但不失深刻的介紹,希望對大家有所幫助。這些概念之所...

Ext中的頁面排版布局總和

小小的入門 首先是怎麼得到ext中的物件 只需要乙個new關鍵字即可 例如 new ext.form.formpanel 注釋一下 這個裡面放的主要是new的這個物件裡面的配置,即他們的屬性 items 這個裡面放入的主要是物件,即直接放入可以了,不需要用 如果配置的話也要用 在jsp中寫ext的時...