我试图写一些CSS来增加文本行之间的间距。显然,这是用CSSline-height
属性完成的。但是,由于我希望对所有内容应用相同的文本样式(以尽量减少“特殊情况”样式),因此我希望仅当文本足够长,可以换行时才应用此属性。
我几乎可以用我喜欢的方式,用这样的东西:
p
{
line-height: 2em;
}
p:first-line
{
line-height: normal;
}
唯一悬而未决的问题是,由于增加
line-height
会在每一行的上下都增加空间,并且由于第一行的line-height
是normal
,所以第1行和第2行之间以及任何两个后续行之间的间距看起来都不同。如何增加
line-height
,使多余的空间仅出现在每行的上方?我想vertical-align: bottom;
可以做到,但没有运气。我做了一把小提琴来试验这个here。
为了让我要找的东西更清楚一点,这里有一些图片。这就是我简单地将
line-height: 2em;
应用到p
标记时得到的结果:然而,这正是我想要实现的——请注意,多余的空间只出现在两行之间,而不是在它们之前或之后:
通过使用
line-height
来实现这一点,然后调整第一行之前和最后一行之后的空格(负边距)并不能真正做到我不想做的事情;这有点老生常谈,如果段落有任何其他样式(如边框、背景色等),那么很明显文本行仍然太大,并且段落本身的设置只是为了让内容与额外的空间重叠。 最佳答案
六羟甲基三聚氰胺六甲醚。。。我不认为这是可能的与行高,即我不认为你可以控制这个与行高css属性独家。你不能控制线的高度。如果你还没有看到这个。
我认为最好的办法是使用div包装器。这样你就可以把任何必要的边界放在上面而不被遮挡。如果将其与上下边距为负的内包装结合使用,则可以获得所需的结果(完整示例请参见similar question):
<div class="container"><p class="increased">
<span class="line">This is a really long line that will wrap inside this particular div a couple of times to demonstrate "uneven" line spacing.</span>
</p></div>
div {
background-color: #CCC;
width: 300px;
}
.container {
border:1px solid black;
margin:0px;
padding:0px;
margin-bottom:5px;
}
.increased {
margin-top:-1.4em;
margin-bottom:-1.4em;
padding:0px;
}
.line {
line-height: 4em;
background-color: #FFC;
}
.increased:first-line {
color:blue;
line-height:normal;
}