我已阅读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