尝试了不同的解决方案后,我找到了一个适用于不同文本宽度、任何可能的背景且不添加额外标记的有效解决方案。
h1 { overflow: hidden; text-align: center; } h1:before, h1:after { background-color: #000; content: ""; display: inline-block; height: 1px; position: relative; vertical-align: middle; width: 50%; } h1:before { right: 0.5em; margin-left: -50%; } h1:after { left: 0.5em; margin-right: -50%; }
<h1>标题</h1> <h1>这是一个较长的标题</h1>
我在IE8、IE9、Firefox和Chrome中进行了测试。您可以在这里检查它:http://jsfiddle.net/Puigcerber/vLwDf/1/
这大致是我会这样做的:通过在包含的 h2 上设置 border-bottom,然后给 h2 设置较小的 line-height 来创建线条。然后将文本放在一个嵌套的 span 中,具有非透明的背景。
h2
border-bottom
line-height
span
h2 { width: 100%; text-align: center; border-bottom: 1px solid #000; line-height: 0.1em; margin: 10px 0 20px; } h2 span { background:#fff; padding:0 10px; }
<h2><span>这是一个测试</span></h2> <p>这是一些其他内容</p>
尝试了不同的解决方案后,我找到了一个适用于不同文本宽度、任何可能的背景且不添加额外标记的有效解决方案。
我在IE8、IE9、Firefox和Chrome中进行了测试。您可以在这里检查它:http://jsfiddle.net/Puigcerber/vLwDf/1/
这大致是我会这样做的:通过在包含的
h2
上设置border-bottom
,然后给h2
设置较小的line-height
来创建线条。然后将文本放在一个嵌套的span
中,具有非透明的背景。