我在div中有一个h2元素。 div是150px宽,但h2可能更宽,所以文本必须断开并转到下一行。问题是,即使文本中断,h2元素的背景颜色也没有,因此h2元素的背景颜色覆盖了整个div。
有没有办法让h2的背景色只出现在文字下面?
示例:http://codepen.io/anon/pen/azBOLO
HTML :
<div>
<h2>This is a long text test</h2>
</div>
CSS :
div {
background-color: green;
width: 150px;
height: 150px;
padding-top: 15px;
}
h2 {
background-color: red;
}
答案 0 :(得分:3)
将h2
设置为display:inline
,将line-height
设置为1em
,以确保每一行都与前一行无关。
div {
background-color: green;
width: 150px;
height: 150px;
padding-top: 15px;
}
h2 {
background-color: red;
display: inline;
line-height: 1em;
}
<div>
<h2>This is a long text test</h2>
</div>
答案 1 :(得分:0)
我终于使用了这个技巧:http://css-tricks.com/multi-line-padded-text/
编辑:正如所建议的那样,诀窍是在div上设置一个padding-left,然后在跨度上创建一个:: after class,它将填充左边的空白区域(相同的背景颜色,没有文本)。这样你就可以在多线范围内实现填充