17

好的,我对前端开发很陌生,所以如果这是一个愚蠢的问题,请很好:)

我知道这可能是不可能的,但是当应用于line-height一个元素时,比如说 an h1,该元素的andline-height都会应用额外的空间。topbottom

这是有道理的,但我只想line-height应用于元素的底部,这样我的h1, h2etc 的顶部就可以与其他元素完美对齐。

这个jsfiddle显示了问题:http: //jsfiddle.net/zja4c/1/

这个 jsfiddle 显示了我想要实现的目标,但被迫使用负边距:http: //jsfiddle.net/25UTA/

红色的h1withbackground colour正确对齐到左上角div,但文本没有。

因此,我的问题是,有没有办法:

  1. 仅应用于line-height元素的底部,或者,

  2. line-height将元素对齐到通过以某种方式应用创建的空间的顶部

4

5 回答 5

8

line-height如果您希望在换行符之间保持适当的间距,则使用是您唯一的选择。H1正如您所指出的,填充将发生在块级元素的底部。我认为负边距是你最好的选择,但你必须微调它与 50px 完美对齐line-height

http://jsfiddle.net/25UTA/1/

如果由于某种原因不能使用负边距,您可以使用相对定位和负值top来达到类似的效果。

http://jsfiddle.net/25UTA/2/

使用em's 或百分比字体大小和行高可能会使这更容易。

于 2012-07-28T16:51:16.040 回答
4

这些答案都没有引用display设置为的元素inline

Line-height是一个引用inline元素的设置。到目前为止,每个答案都提到使用填充和边距,它们不适用于inline样式文本。

您可以使用 修改文本在其行内的位置vertical-align。这是一篇文章的链接,该文章详细介绍了该属性及其工作原理:

http://christopheraue.net/2014/03/05/vertical-align/

于 2017-01-05T16:41:46.263 回答
1

一个简单的解决方案是将行高设置为 70% 并添加一点底部填充。

p, h2 {
line-height:70%;
padding-bottom: 3px;
}
于 2017-05-05T16:21:27.537 回答
0

您可以完全忘记行高并使用 padding-bottom:

小提琴

于 2012-07-28T16:29:56.900 回答
0

据我所知,它不可能line-height只申请bottom使用 css。

所以你可以试试paddinguser1538100说的。

于 2012-07-28T16:40:55.613 回答