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

資訊專欄INFORMATION COLUMN

vertical-align和baseline的關系

Steven / 2601人閱讀

摘要:如何讓一段文字居中,在人類看來如此簡單的問題,在界卻變成了多年令人頭疼的問題,關于居中的文字如汗牛充棟,但每到用時還是會有問題。關于垂直居中,中最基本的一個屬性就是,要了解,首先要了解基線,因為的缺省值就是。元素放置在父元素的基線上。

如何讓一段文字居中,在人類看來如此簡單的問題,在css界卻變成了多年令人頭疼的問題,關于居中的文字如汗牛充棟,但每到用時還是會有問題。單單一個『中』是什么,在css里就有兩種不同的稱呼:centermiddle,水平居中要用center,垂直居中要用middle(到了css3時代引入了更多混亂,flex布局里垂直居中也可以用center了)。

水平居中相對簡單,而垂直居中的問題如果沒有透徹理解的話,即使這一次做出來了,下一次情況稍加不同,又變得無所適從。

關于垂直居中,css中最基本的一個屬性就是vertical-align,要了解vertical-align,首先要了解基線(baseline),因為vertical-align的缺省值就是baseline。MDN的文檔中只說了一句:baseline: 默認。元素放置在父元素的基線上

那么這個父元素的基線到底是個什么鬼?怎么才能決定父元素的基線在哪里呢?

先來看一個簡單的例子:

  • aaa
    bbb
    ccc
    ffffd
    eee
    fff

相關css:

.container {
  border: 1px solid green;
}
.container img {
  width: 300px;
  border: 1px solid red;
  vertical-align: baseline;
}
.aaa {
  display: inline-block;
  border: 1px solid red;
  vertical-align: baseline;
}

為了清楚起見,我們給每一個元素都加上邊框,并且寫明vertical-align: baseline,然后我們來看一看效果:

注意最左側那個黑點,我們特意要留著它。在這里,可以很清楚地看到,當我們指定vertical-alignbaseline的時候,文字是貼著底邊的,但圖片并沒有貼底,而是位于最下面一行文字的中間。也就是說,對于圖片來說,所謂的『父元素的基線』其實指的是最下面一行文字的中間

這是文字多的情況,那么文字少的情況呢?也是一樣,圖片的底邊始終等于我們最下面一行文字的中間:

現在我們只改動一行代碼,讓imgvertical-align等于middle,這時候,詭異的情況發生了:

因為我們最左側的文字部分的vertical-align還是baseline,而只有右邊的imgvertical-align改成了middle,所以整個父元素的基線向上漂移了,現在文字部分依然對齊向上漂的父元素的基線,而圖片是以自己的中線對齊父元素的基線,這就是middle的作用。

那如果我們倒過來看一下,圖片依然vertical-align: baseline,而文字vertical-align: middle呢?

不出所料,父元素的基線向上漂移,文字元素以自己的中間對齊父元素的基線,而圖片以自己的下邊緣對齊父元素的基線。

最后,我們把文字和圖片的vertical-align都設置為middle

一般來講,這個才是我們真正想要的結果。

所以結論是說,如果我們想要在父級元素里對兩個或更多行內元素做垂直居中的話,是需要分別給所有元素設置vertical-align: middle的,因為這個屬性不能繼承,所以在container上設置沒有用,需要給每個子元素設置。

感興趣的同學可以來我的Codepen里玩一玩,看看是不是這么回事。

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

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

相關文章

  • 【譯】Vertical-Align: All You Need To Know

    摘要:用于對齊行內水平元素,即那些屬性為或本文不考慮的元素。元素的基線取決于元素是否具有內容有內容,元素的基線是普通流中最后一個內容元素的基線例如左邊那個。 原文地址:Vertical-Align: All You Need To Know Often I need to vertically align elements side by side. 我經常需要并排地垂直對齊元素。 CSS ...

    niuxiaowei111 評論0 收藏0
  • 【譯】Vertical-Align: All You Need To Know

    摘要:用于對齊行內水平元素,即那些屬性為或本文不考慮的元素。元素的基線取決于元素是否具有內容有內容,元素的基線是普通流中最后一個內容元素的基線例如左邊那個。 原文地址:Vertical-Align: All You Need To Know Often I need to vertically align elements side by side. 我經常需要并排地垂直對齊元素。 CSS ...

    LiuRhoRamen 評論0 收藏0
  • 關于 vertical-align 一些理解

    摘要:關于的條參考線以及。關于和之間的關系。目標元素的的垂直平分線,與父元素內匿名的對齊。垂直平分線,這個容易理解。要比這些字母的頂端再高一些。 前言 關于 vertical-align,我們很容易想到,這不就是告訴我們元素在縱向上和什么對齊的屬性嗎?而事實上,正是這種寬泛的說法導致了我們對其的理解存在許多不確定性。事實上,對齊這兩個字其實牽涉到4個對象:即哪個對象的哪條線,與哪個對象的哪條...

    lowett 評論0 收藏0
  • 前端碎語(1)

    摘要:因為基線的不同,這就會導致內聯元素在默認使用定位時,會出現同一行元素的錯位問題。那么有沒有和基線一樣的確定準則呢當然有,一個業界公認的標準就是同一行內聯元素中,中線穿過的是小寫的中點。 暑假前因為種種原因沒有把百度IFE的先期課程學完,這個暑假又參加了相關項目開發,邊做邊學也總結了一些教訓。現在打算寫一個系列的文章,把這種集中學習中遇到一些令我的困擾一時的點好好再總結一番。而這些因應工...

    susheng 評論0 收藏0
  • 前端碎語(1)

    摘要:因為基線的不同,這就會導致內聯元素在默認使用定位時,會出現同一行元素的錯位問題。那么有沒有和基線一樣的確定準則呢當然有,一個業界公認的標準就是同一行內聯元素中,中線穿過的是小寫的中點。 暑假前因為種種原因沒有把百度IFE的先期課程學完,這個暑假又參加了相關項目開發,邊做邊學也總結了一些教訓。現在打算寫一個系列的文章,把這種集中學習中遇到一些令我的困擾一時的點好好再總結一番。而這些因應工...

    jsdt 評論0 收藏0

發表評論

0條評論

Steven

|高級講師

TA的文章

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