1、元素的margin的top、bottom及padding的top、bottom使用百分比作為機關時,其是相對父元素的寬度width的而不是我們想象的高度height;
舉個例子:
其實出現這種現象,我們可以巧用margin/padding的百分比值實作高度自适應(多用于占位,避免閃爍)
當然該元素高度上的百分比是相對其父元素高度的百分比的,min-height及max-height也适用這條規律。
2、含有定位屬性的元素,其top、bottom機關為百分比時,該百分比是相對于父元素的高度的。同理,left、right則是相對于父元素的寬度的。
這一點,我昨天在查資料寫這篇文章—最全面的元素水準垂直居中方法彙總的時候就發現有個大牛也了解錯了—-CSS布局奇淫技巧之–各種居中裡面的第八點。
3、邊框寬度不允許使用百分比值
這點就不解釋了。
4、width:100%
當父容器裡有絕對定位的子元素時,子元素設定width:100%實際上指的是相對于父容器的padding+content的寬度。當子元素是非絕對定位的元素時width:100%才是指子元素的 content ,其等于父元素的 content寬度。
将上面子元素的position改成了relative後,其寬度就變成了parent寬度。
5、line-height
你知道line-height:150%和line-height:1.5的差別嗎?知道了就可以跳過此處,不知道繼續看下面:
舉個例子:
上面可以看到line-height有機關時,子元素是繼承父元素的line-height的,無機關時,其line-height等于無機關的數值乘以子元素本身的字型大小。顯然為了不出現意外,還是建議首選無機關的。
6、ex和 ch機關
ex:取目前作用效果的字型的x的高度,在無法确定x高度的情況下以0.5em計算;
ch:以節點所使用字型中的“0”字元為基準,找不到時為0.5em;
ex和 ch機關,類似于 em和 rem,依賴于目前的字型和字型大小。但是,不同的是,這兩貨是基于字型的度量機關,依賴于設定的字型。
ch機關通常被定義為數字0的寬度。你可以在Eric Meyers的部落格裡找到關于它的一些有意思的讨論,例如将一個等寬字型的字母”N”的寬度設定為40ch,那麼在另一種類型的字型裡它卻可以包含40個字母。
這個機關的傳統用途主要是盲文的排版,但是除此之外,肯定還有可以應用他的地方。
ex定義為目前字型的小寫x字母的高度或者 1/2的 1em。很多時候,它是字型的中間标志。
x-height; the height of the lower case x
這些機關有很多用途,大部分用于版式的微調。比方說,sup元素(上角文字标),可以通過position:relative;bottom: 1ex;實作 。類似的方法,你可以實作一個下角文字标。浏覽器預設的方式是利用
上标和下标特定垂直對齊規則,但是如果你想更細粒度更精确得控制,你可以像下面這樣做:
Css代碼