您是否有在多行文本上添加“背景颜色”属性的想法,有两个困难:
- 背景必须在每行的最后一个单词之后停止
- 没有背景的每行之间没有空格
例子 :
谢谢 !
我想这就是你要找的东西:http: //jsfiddle.net/9BTYQ/1/
span {
color: white;
background-color: #343132;
box-shadow: 0.5em 0 0 #343132,-0.5em 0 0 #343132;
}
div {
width: 100px;
}
<div>
<span>Do you have an idea to add a background-color property on a multi-line text, with two difficulties:</span>
</div>
@gabitzish 所示的box-shadow
解决方案在 IE11 和 FF34+(09-2014 发布)中停止正常工作。
您也可以添加box-decoration-break:clone;
使其在 IE11 和 FF34+ 中工作:
p {
display: inline;
padding: 0.5em 0em;
background-color: #FFAA3B;
box-shadow: 1em 0 0 #FFAA3B, -1em 0 0 #FFAA3B;
box-decoration-break: clone;
}
可在具有适当前缀的 Webkit、Firefox、IE9+ 中使用。
演示:http: //jsfiddle.net/cLh0onv3/1/
注意:已经在别处说明了这一点。
我发现这个解决方案可以很好地结合 box-shadow 方法和<p>
元素周围的<span>
元素上的一些相应填充
p {
display:block;
padding:0 10px;
font-size:2em;
}
span {
color: white;
background:#333;
box-shadow: 0 0 0 10px #222;
padding:0;
line-height:1.5;
}
只需将显示框类型更改为内联:
p {
display: inline;
}
body {
width: 170px;
}
p {
display: inline;
background: black;
color: white;
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
如果每行之间有空格,则设置font-size
等于line-height
,或 vv
使用纯 CSS 使其完美是困难的,并且只有在某些条件下才能实现。例如,如果您使用中断并将行高设置为大,您会看到两者之间的间隙。那么两侧的填充物呢?
此外,您将需要跨度,这只会使您的标记变得丑陋。
幸运的是 Sam Croft 想出了一个简单的 jQuery 插件来解决这个问题。它快速、轻便并且在大多数情况下都可以工作。
文章:http ://samcroft.co.uk/2011/jquery-plugin-for-inline-text-backgrounds/
演示:http ://samcroft.co.uk/demos/inline-backgrounds/
来源:https ://github.com/samcroft/css-inline-backgrounds/blob/master/inline-backgrounds.js
<span>
这是和<p>
标签之间的区别之一。
<span style="background:black; color:white;">
Lorem Ipsum is simply dummy text of the<br>
printing and typesetting industry.<br>
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
<br> when an unknown printer took a galley of type
<br> and scrambled it to make a type specimen book.</span>
这个box-shadow
例子很好用:
HTML
<p class="title step-1">
<span class="highlight">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reprehenderit, qui suscipit error quasi tempore magni sit nostrum aliquam soluta vel. Dolorem, reprehenderit sint molestiae in est perspiciatis quas accusantium commodi. </span>
</p>
CSS
.title {
font: 20px/1.25 Ubuntu, sans-serif;
text-transform: uppercase;
margin-bottom: 1rem;
line-height: 45px;
display: inline-block;
width: 300px;
}
.title .highlight {
display: inline;
background: #ee4035;
color: white;
padding: 0.5rem;
padding-left: 0;
padding-right: 0;
}
.title.step-1 .highlight {
box-shadow: 10px 0 0 #ee4035, -10px 0 0 #ee4035;
}
JSFiddle:http: //jsfiddle.net/verber/WmRT3/
PS 但不是在 IE8 中...