【发布时间】:2018-01-13 13:08:34
【问题描述】:
我想在h1 和span 之间留一个间距,应该是30px。从h1的字母底部到span的字母顶部应该是30px,在h1的下方,这里是30px的间距应该是(蓝色框显示间距):
我的h1 和span 有一些line-height。我在它周围做了一个border,所以line-height 是可见的。如果我现在将30px 的margin-bottom 设置为h1,它看起来像这样:
间距从h1 元素的末尾开始,到span 元素的开头结束。 line-height 位于元素的开始/结束和字母之间。所以间距也包括line-height,它不完全是30px。解决这个问题的最佳方法是什么?我知道,我可以像这样设置margin-bottom:margin-bottom: 30px - [LINE-HEIGHT]; 但是我怎么知道两个红色框(行高)是多少,正确减去它以使间距正好变成30px?
h1 {
font-family: Arial;
font-size: 45px;
line-height: 54px;
letter-spacing: 0;
color: darkred;
border: 1px solid black;
margin: 0 0 30px;
}
span {
font-family: Arial;
font-size: 30px;
line-height: 39px;
letter-spacing: 0;
color: gray;
border: 1px solid black;
}
<h1>Default main title</h1>
<span>Proin eget tortor risus. Vivamus magna justo, lacinia</span>
这是我的代码笔示例:https://codepen.io/STWebtastic/pen/QarjJO
我希望这已经足够清楚了。
【问题讨论】:
-
@DavidThomas 感谢您的意见,现在可以了吗?干杯
-
非常感谢!
-
@DavidThomas 哦,当然,对不起。过去我只使用stackoverflow sn-p,它会在问题中自动生成代码。最近我开始使用 codepen 并且出于习惯忘记了问题中的代码丢失了。现在应该好了。
-
@MrBuggy h1 下面的空格是 g 和 y 之类的字母 - 添加其中一个会发生什么?您的空间将不再是 30 像素;
-
@Pete 是的,我知道。但是,如果我能得到这个空间的高度并从我的边距底部减去它,它会起作用,就像我写的那样。因此,例如,如果 h1 内的空间是 10 像素,而跨度内的另一个空间是 5 像素,这将是 15 像素 + 我的边距底部 30 像素 = 45 像素,而不是 30 像素。因此,如果我能找出空格并将其从我的边距中减去,如下所示: margin-bottom: 30px - calc(10px + 5px);我会得到一个 15px 的边距底部,这将用空格“生成” 30px 的空间。但我不知道如何让空间高度减去它,这将是我的解决方案。