查看此笔中的示例和一个解决方案:https://codepen.io/MaxViewUp/pen/YrXzRG内联块内直列块隐形保证金
我有一个内联的标题,将有宽度acording到文本宽度,和我有在其内部的:after
(或div
,如果你想)inline-block
太宽和70%
。我使用内联块,因为我有这个标题的3个变体(左,右和中心),所以我只是改变文本方向来改变标题。
问题:inline-block
元素在文本中有一个奇怪的不可见的“margin-top”。我想知道为什么会发生这种情况并提供更好的解决方案。我认为是与font-size
(更大的字号更大的间距)有关,但我不确定。
解决方案到现在为止:
font-size: 0
- 不是一个很好的解决方案,因为它乱的HTML;display:block
或float:left
在:after
- 不是一个好的解决方案,因为文本对齐不会影响它;
如果有人确切地知道为什么发生这种情况,请解释它。
CSS代码:
.main-title {
display: inline-block;
font-size: 24px;
}
.main-title:after {
content: '';
display: inline-block;
width: 70%;
height: 2px;
background: green;
}
.main-title-wrapper {
margin: 20px 0;
}
.main-title-wrapper.right {
text-align: right;
}
.main-title-wrapper.center {
text-align: center;
}
注意 我想解决这个问题,但我真正需要的是发生这种情况(文件等)的原因。感谢您的帮助。
感谢您所描述的答案(迄今为止最好的答案)。你能给一个链接文件/文章描述这个? –
这是一个非常详尽的印刷CSS属性摘要,因为它们将应用于内联或内联块元素:https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align –
谢谢,它是一个很好的离线阅读。我认为这个问题已经解决了,但是我会等一会儿,直到问题的解决方案(代码替代方案)为止。 –