避免垂直对齐:容纳块的中间延伸高度

gsnedders

给定以下内容(同样在JSFiddle上):

div {
    font-size: 28px;
    outline: 1px solid red;
    width: 40%;
    float: left;
    line-height: 36px;
}
div:first-child::before {
    content: "Hi!";
    display: inline-block;
    vertical-align: middle;
    outline: 1px solid blue;
    font-size: 8px;
}
<div>xHello, world!</div>
<div>xHello, world!</div>

第二个div(即没有垂直对齐的中间内容)的高度为36px(如预期的那样;每行中的单行框的高度为36px line-height)。

此处的第一个div高39像素(带有子像素渲染,预计此处会有一些细微变化,因此39像素/ 40像素都是合理的预期),因为内容::before的线框超出了“正常”内容的36像素,这是由于它的垂直对齐方式。我如何才能使包含块(即div)仅扩展到36像素高(假设我不关心内容是否::before溢出)?

将其从正常流中移出的典型方法在这里不起作用,因为它不再垂直对齐。考虑到块级元素的高度取决于其中最底部的线框,这是否合理?

萨尔曼A

所述::before元件继承36px行高。据我了解,由于您使用的是居中文本的垂直对齐方法,因此不需要该行高。实际上,此不必要的高线高引起了此问题。重置它:

div {
  font-size: 28px;
  outline: 1px solid red;
  width: 40%;
  float: left;
  line-height: 36px;
}
div:first-child::before {
  content: "Hi!";
  display: inline-block;
  vertical-align: middle;
  outline: 1px solid blue;
  font-size: 8px;
  /* the line height is inherited, reset it */
  line-height: normal;
}
<div>xHello, world!</div>
<div>xHello, world!</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

垂直对齐:父容器的中间减小高度

来自分类Dev

将文本垂直对齐到内联块的中间

来自分类Dev

垂直对齐中间页脚

来自分类Dev

使DIV在中间垂直对齐

来自分类Dev

CSS垂直对齐中间

来自分类Dev

垂直对齐块元素

来自分类Dev

如何在具有百分比高度的div中间垂直对齐文本?

来自分类Dev

垂直对齐中间,可进行响应的顶部导航,而无需固定高度

来自分类Dev

垂直对齐:内联块的中间没有按预期工作

来自分类Dev

垂直对齐中间与Bootstrap响应网格

来自分类Dev

JS图像滑块,中间垂直对齐

来自分类Dev

td:之前和垂直对齐:中间

来自分类Dev

div列内部中间垂直对齐

来自分类Dev

AnythingSlider:中间文本垂直对齐

来自分类Dev

垂直对齐:中间/ 2张图片

来自分类Dev

'垂直对齐:中间'不起作用

来自分类Dev

位置:绝对和垂直对齐:中间

来自分类Dev

如何在中间垂直对齐框

来自分类Dev

CSS在中间垂直对齐文本/按钮

来自分类Dev

在弯曲的 div 中间垂直对齐内容

来自分类Dev

Bootstrap 4 表格垂直对齐中间

来自分类Dev

基于x高度的垂直对齐

来自分类Dev

Bootstrap:垂直对齐和超大高度

来自分类Dev

Bootstrap:垂直对齐和超大高度

来自分类Dev

内联块容器中的垂直对齐

来自分类Dev

内联块div的垂直对齐错误

来自分类Dev

容器中的CSS垂直对齐块

来自分类Dev

内联块div的垂直对齐边界

来自分类Dev

Div内联块垂直对齐吗?