更新以允许背景图像显示
您可以使用伪元素使标记更严格,如下所示:
<div class="wrapper">
<div class="inner">Photoshop</div>
</div>
并使用以下 CSS 样式:
div.wrapper {
color:#82439a;
font-size: 16px;
font-weight: bold;
font-family: tahoma;
line-height: 180%;
background: red url(http://placekitten.com/1000/500) no-repeat left top;
overflow: hidden;
}
div.inner {
position: relative;
display: inner;
color: yellow;
padding-right: 0.50em;
border: 1px dotted yellow;
}
div.inner:after {
content: "\A0";
position: absolute;
bottom: 0;
left: 100%;
border-bottom: 5px solid #d71d00;
width: 1000%;
}
演示小提琴:http: //jsfiddle.net/audetwebdesign/wE8bC/
这个怎么运作
父元素div.wrapper
可能包含背景图像或透明并显示某些祖先元素的背景。你需要设置overflow: hidden
.
对于标签 ( <div.inner>
),设置position: relative
并生成一个 100% 宽度的伪元素,其底部边框用作下划线。使用绝对定位放置在( )div.inner:after
的右侧,并使宽度相对较大。伪元素将触发溢出条件,但这是通过将溢出隐藏在父元素中来处理的。您可以使用填充控制左/右间距。 <div.inner>
left: 100%
您可以使用将display
属性设置为inline
或inline-block
。如果你使用display: inline
,它将在 IE7 中工作;根据需要调整行高以进行样式设置。
注意生成的内容是一个不间断的空格,十六进制代码“\A0”。
支持 IE7
如果您需要支持 IE7,如果您inline-block
按照上一个问题中的讨论使用,则需要 hack:IE7 不理解显示:inline-block
IE7 也不支持table-cell
,因此其他一些已发布的解决方案将面临同样的限制。