国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CSS 行內布局實踐小結

Taste / 2374人閱讀

摘要:相關內聯格式上下文主要影響內布局的行盒模型,這是一個顯示區域,根據塊狀容器內,每一行的多個內聯元素都會共同生成一個行盒模型。

前言

通常情況下,要使元素排列在一行內,通常做法就是使用float,然后再清浮動。
如下:

但是如果要使其垂直居中,則必須手動調整,藍色或者綠色塊的位置,比較繁瑣。

或者另外一種方法,使用inline-block或inline(即IFC),剛好在這里碰到了點坑。

相關css

IFC(Inline formatting contexts)內聯格式上下文 ╮( ̄▽ ̄)╭
主要影響IFC內布局的css

font-size

line-height

height

vertical-aligin

line-box

行盒模型,這是一個顯示區域,根據塊狀容器內,每一行的多個內聯元素(inline-level element)都會共同生成一個行盒模型。

font-size

常見的屬性,用來指定文本類型節點的大小。IFC內的很多屬性的值是基于這個的。

line-height & height

行高在w3c中更明確的定義:

  

On a block container element whose content is composed of inline-level elements, "line-height" specifies the minimal height of line boxes within the element.The minimum height consists of a minimum height above the baseline and a minimum depth below it。

  

在一個由多個內聯元素組成的塊狀容器內,"line-height"為內聯元素的行盒模型指定了一個最低高度。
這個最低高度是分別由基線上的最小高度和基線下的最小深度組成。

盜張圖的來示意下,從上到下四條線分別是頂線、中線、基線、底線。
那么行高是指上下文本行的基線間的垂直距離,即圖中兩條紅線間垂直距離(實際在數值上,行高也等于其它相同顏色間的距離)。

換種思路來理解下行高。
實際上很多情況下,一個容器中是只有一行的即只有一條基線,行高是如何計算,以確保這個間距呢?
如下:

藍色是容器的范圍,邊界線之間是一個line box。文字其中的內聯元素。

所以,

當line-height > font-size時

一個為被設定高度的容器被設定一個行高時,內聯元內容的上下會增加2個空白內容的高度。而容器的高度也會撐開,使容器的高度與line-height相等。

  

a1 + b1 +c1 == line-height & a1 == c1

如果容器的高度已經被設定,那么超出容器下邊界線的部分則不影響布局。

當line-height < font-size時,

容器未被指定高度時,容器的上下兩側塌陷(類似于margin為負值的情況),但上述公式仍成立。

  

a1(負值) + b1 + c1(負值) == line-height & a1 == c1

如下所示:

白色是塌陷的部分(即 a1 和 c1),紅色是line-height,如果把容器設置為 overflow:hidden,
那么就只能看見紅色的部分。

如果容器被指定height高度時,

  

height > line-height,那么黃線會下移,紅色部分會展示更多,
height < line-height,那么黃線會上移,紅色的部分被遮蓋的更多了。

所以在這里的情況是,

  

決定容器高度的優先級 height > line-height > font-size

vertical-align

垂直對齊線,默認為baselien,來自W3C的定義:

  

This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.

  

該屬性影響由多個內聯元素生成的盒模型組成的行內盒模型的垂直定位

vertical有幾個特定的值,或者指定一個值。

English中文 中文English

給第一個span,設置60px的垂直偏移量,顯示如下:

其中,黃色線就是基線(baseline),綠線和黃線的間隔即為60px。
這里會發現,容器(藍色)的高度被撐高了。

  

容器的高度 height = line-height + vertical-align

當然同理,如果容器的高度被指定了,那么高度則不變,而超出的部分則不影響布局。如果設置overflow:hidden,超過的部分則不可見。

而vertical-align的其它特殊值,均可以看做一個根據容器高度而變化的相對值。

結論

熟練使用inline-level element和行內布局的屬性,以非常快速完成垂直居中和水平居中的效果,并且有良好的可維護性和拓展性。

參考

W3C IFC
W3C line-height和vertical-aligin
line-height詳解

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/111100.html

相關文章

  • CSS常見問題小結

    摘要:常見問題小結一行內樣式內聯樣式外部樣式行內樣式代碼寫在具體網頁中的一個元素內比如一般不需要擔心樣式優先級與樣式覆蓋在制作頁面的時候需要為很多的標簽設置屬性,所以會導致頁面不夠純凈,文件體積過大不利于,后期維護成本高。 CSS常見問題小結 一、行內樣式、內聯樣式、外部樣式 行內樣式:代碼寫在具體網頁中的一個元素內;比如: 一般不需要擔心樣式優先級與樣式覆蓋 在制作頁面的時...

    ivyzhang 評論0 收藏0
  • 小結——居中問題的解決

    摘要:居中問題居中問題定位不管用水平居中需要做如下處理定位不管用,水平居中需要做如下處理定位管用水平居中需要做如下處理定位管用,水平居中需要做如下處理定位加元素已知寬度定位加元素已知寬度父元素設置為子元素設置為距上,據左,然后減去元素自居中問題: 1.Fixed定位margin:0 auto;不管用,水平居中需要做如下處理: position: fixed; top: 0; bottom: 0; ...

    darkbaby123 評論0 收藏0
  • css寫作建議和性能優化小結

    摘要:前言還有幾天就到國慶中秋了,快要放假了,先祝大家節日快樂之前寫過的寫作建議和技巧,那么今天就來聊聊吧說到,每一個網頁都離不開,但是對于,很多開發者的想法就是,只要能用來布局,把效果圖排出來就可以了,其它的細節或者優化,不需要怎么考慮。 1.前言 還有幾天就到國慶中秋了,快要放假了,先祝大家節日快樂!之前寫過js的寫作建議和技巧,那么今天就來聊聊css吧!說到css,每一個網頁都離不開c...

    lifesimple 評論0 收藏0
  • css寫作建議和性能優化小結

    摘要:前言還有幾天就到國慶中秋了,快要放假了,先祝大家節日快樂之前寫過的寫作建議和技巧,那么今天就來聊聊吧說到,每一個網頁都離不開,但是對于,很多開發者的想法就是,只要能用來布局,把效果圖排出來就可以了,其它的細節或者優化,不需要怎么考慮。 1.前言 還有幾天就到國慶中秋了,快要放假了,先祝大家節日快樂!之前寫過js的寫作建議和技巧,那么今天就來聊聊css吧!說到css,每一個網頁都離不開c...

    hiYoHoo 評論0 收藏0
  • 前端入門實踐CSS & 調試工具篇

    摘要:篇塊級元素行內元素文檔流將窗體自上而下分成一行行,并在每行中按從左至右的順序排放元素,即為文檔流。 CSS篇 1.塊級元素 VS 行內元素 文檔流!將窗體自上而下分成一行行, 并在每行中按從左至右的順序排放元素,即為文檔流。 塊級元素:自動換行;垂直排列;width/height/margin/padding都可控制;默認寬度100%,除非設置width/margindiv , ...

    Lavender 評論0 收藏0

發表評論

0條評論

Taste

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<