我已閱讀variousarticles約vertical-align
。我也看過this SO question,但bothanswers說這是因爲周圍文本默認爲vertical-align: baseline;
。然而,這是不低於的情況:垂直對齊大寫字母而不是小寫字母的中間?
*
{
margin: 0;
padding: 0;
vertical-align: middle;
/* font-size: 1em; and line-height: 1em; do not change anything */
}
<span>0<span>0<span>0<span>0<span>0<span>0<span>0<span>0<span>0<span>0</span></span></span></span></span></span></span></span></span></span>
一切都被設置爲vertical-align: middle;
,但仍然有文字的向下偏斜。有趣的是,one of the answers引用了MDN,其中指出vertical-align: middle;
與父元素中的小寫字母的中間對齊。這解釋了奇怪的傾斜,但即使所有小寫字母,傾斜still happens。使用display: inline-block;
doesn't work either。
我會拋開我的看法,反對這是多麼直觀,而是問:有沒有一種方法來vertical-align
與中間的大寫字母而不是?或者,更好的是,中間的整行?我期望保留HTML的結構,同時還允許images and other tall things的行 - 不只是文字。
簡而言之:偏斜是我想要的不是,但我仍然希望內聯元素垂直對齊到他們行的中間,而不管HTML結構如何。
編輯:with vertical-align
和without vertical-align
(使觀看者儘可能寬)
你在jsFiddle中看到的歪斜是預期的行爲,因爲'span'標籤是嵌套的。樣式從一個嵌套級別到另一個嵌套級別,將每個孩子的頂部與父級的中間對齊。如果你只是刪除垂直對齊,文本保持直線。目前還不清楚你想要從榜樣中排列出什麼;你可以提供一個更具體的問題,你正試圖解決垂直對齊? – dartonw 2015-04-04 02:35:58
@dartonw'vertical-align:middle;'不會將孩子的頂部與父級的中間對齊 - 它會將孩子的中間與父級中的小寫字母的中間對齊。如果你所說的是真實的話,那麼偏差會更加誇張。 – 2015-04-04 03:03:22
元素是否有特定的原因必須嵌套?只需按照您想要的方式跨越並行功能即可。 – DACrosby 2015-04-04 03:34:27