em是乙個相對長度單位,那em長度是由什麼來決定的呢(1em=?px),
其實,在乙個物件中,1em能等於兩個不同的px值。看完這篇部落格,我想大家就會明白em的本質了。
舉個綜合點的例子(可直接轉到結尾總結):
wrap-box是inside-box父元素
"wrap-box"
>
外面的
"inside-box"
>
裡面的div
>
div>
父元素wrap-box設定字型大小20px,inside-box設定字型大小為2em
#wrap-box
#inside-box
結果是理所當然:inside-box內字型大小為父元素字型兩倍——40px
即在inside-box中,2em=40px
但是若在inside-box樣式中加上
padding-top: 2em;
會發現乙個有趣的現象:
此時的2em=80px;
其實,此時不管是padding還是margin,2em都是80px,因為em的相對長度已經固定——40px,即為當前div的字型大小。
em是相對當前物件中文字大小的長度單位,若當前物件中的文字大小未設定,就會從父元素中繼承其大小,父元素也沒有設定,就一直上溯,直到瀏覽器預設字型大小,然後其字型大小會繼承給當前物件,歸根結底,em一直是相對當前物件字型大小的,當前物件字型大小確定後,em就會確定下來(1em=當前物件字型大小px)。
position fixed 相對父元素定位
position fixed是對於瀏覽器視窗定位的,要實現相當於父元素定位,可以這樣 不設定fixed元素的top,bottom,left,right,只設定margin來實現。這種方法本質上fixed元素還是相當於視窗定位的,實現效果上是相對于父元素定位。此外,position fixed元素會受...
css子元素如何相對父元素定位?
css123 4567 891011 div1 div2 效果原理 瀏覽器渲染html,是有文件流的說法的,塊級元素換行渲染,行內元素行內渲染,在這裡,兩個div都是塊級元素,乙個父,乙個子,正常來說的渲染結果是父元素在瀏覽器左上角,子元素在父元素的左上角。如果我們要對子元素相對父元素進行定位,就要...
css子元素如何相對父元素定位?
css123 4567 891011 div1 div2 效果原理 瀏覽器渲染html,是有文件流的說法的,塊級元素換行渲染,行內元素行內渲染,在這裡,兩個div都是塊級元素,乙個父,乙個子,正常來說的渲染結果是父元素在瀏覽器左上角,子元素在父元素的左上角。如果我們要對子元素相對父元素進行定位,就要...