文本中间的水平线

时间:2013-04-15 07:17:09

标签: html css

我想在中间显示一个带有单词的水平线,使其如下所示:

enter image description here

我正在尝试这个并且不起作用:

HTML:

<h2><span>Test</span></h2>

CSS:

h2{
    font-size: 100px;
    border-top: solid 1px black;
    width: 100%;
    height: 50px;
    margin-top: 25px;
    top: 50%;
    z-index: 1;    
}

span{
     background: #fff;
      padding: 0 20px;
      margin-top:-25px;
       display: inline-block;
       z-index: 5;
}

的jsfiddle: http://jsfiddle.net/2ds9a/

3 个答案:

答案 0 :(得分:19)

您可以习惯 css :after

就像这样

<强> HTML

<h2><span  class="line-center">Test</span></h2>

<强>的CSS

.line-center{
    margin:0;padding:0 10px;
    background:#fff;
    display:inline-block;
}
h2{

    text-align:center;
    position:relative;
    z-index:2;

}
h2:after{
    content:"";
    position:absolute;
    top:50%;
    left:0;
    right:0;
    border-top:solid 1px red;
    z-index:-1;
}

<强> LIve Demo

答案 1 :(得分:2)

this answer所示(由Quentin建议),以下代码应该可以正常使用:

<div style="height: 2px; background-color: black; text-align: center">
  <span style="background-color: white; position: relative; top: -0.5em;">
    Section Title
  </span>
</div>

有关详细信息,请查看this question.

答案 2 :(得分:1)

有不同的方法可以做到这一点, 这是我的解决方案:

http://jsfiddle.net/zzLnt/

   <h2><span class="line"></span><span class="text">Test<span></h2>
   <style> 
    h2{
        font-size: 100px;
        z-index: 1;
        position: relative;
        text-align: center;
    }

    .line{
        background: #000;
        border-top: solid 1px black;
        position: absolute;
        height: 1px;
        display: block;
        top: 56px;
        width: 100%;
    }

    .text{
        background-color: #FFFFFF;
        z-index: 20;
        position: relative;
        text-align: center;
        padding: 0 34px;
    }
</style>