创建一个中间有文字的水平线? [复制]

Posted

技术标签:

【中文标题】创建一个中间有文字的水平线? [复制]【英文标题】:Create a horizontal rule with text in the middle? [duplicate] 【发布时间】:2013-09-02 13:29:11 【问题描述】:

我想在我的页面上有一个如下所示的分隔线:

最好的方法是什么?

【问题讨论】:

【参考方案1】:

我们可以在没有图像或屏蔽线的情况下做到这一点like so:

html

<div class="rule">
    <div class="line"><div></div></div>
    <div class="words">words are cool</div>
    <div class="line"><div></div></div>
</div>

CSS

.rule 
    display: table;


.rule>div 
    display: table-cell;
    white-space:nowrap;


.line>div 
    border-bottom: 1px solid silver;
    height: 1px;


.words 
    padding: 0 5px;


.line 
    width: 50%;
    vertical-align: middle;

【讨论】:

【参考方案2】:

演示:http://jsfiddle.net/8zve4/

我不喜欢额外的标记,但这应该可以。

CSS:

.hline 
  border: 1px solid #EEE;
  color: #666;
  font-family: helvetica;
  font-weight: bold;
  font-variant: small-caps;
  letter-spacing: .1em;
  line-height: 0px;
  text-align: center;
  text-transform: uppercase;


.hline > span 
  background-color: #FFF;
    padding: 0px 1em;

HTML:

<div class="hline"><span>Our latest work</span></div>

【讨论】:

【参考方案3】:

演示:http://jsfiddle.net/5tqE5/1/

这使用了旧版浏览器不支持的attr()。它可以被一个额外的元素替换。

<div class="lines" data-text="Some Text Goes Here"></div>

.lines 
    position: relative;
    font-size: 20px;
    font-family: sans-serif;
    margin: 0 auto;
    border-top: 1px solid silver;
    margin-top: 20px;


.lines:before
    content: attr(data-text);
    background-color: #fff;
    position: absolute;
    text-align: center;
    left: 50%;
    width: 220px;
    margin-left: -110px;
    padding: 10px;
    top: -20px;

【讨论】:

非常喜欢这个解决方案。当 HTML5 和 CSS3 完全集成时,可能会在几年内使用它。【参考方案4】:

html

<h3><span>My latest work</span></h3>

css

h3 
position:relative;
text-align:center;

h3 span 
    display:inline-block;
    padding:0 10px;
    background:#fff;

h3:before 
    content:"";
    display:block;
    position:absolute;
    z-index:-1;
    left:0;
    right:0;
    top:50%;
    height:1px;
    background:#ccc;

【讨论】:

成功了……谢谢!【参考方案5】:

不知道“最好的”是什么——你没有给出评估它的条件。最小、最快、最兼容等等。

Anyhoo,我刚刚从您的图像中截取了 1 像素宽的切片并保存了它。然后我将它用作 div 的背景图像。

CSS:

#myDiv

    background: url(horizline1x41px.png) repeat;
    text-align: center;
    line-height: 41px;

#myDiv span

    padding-left: 16px;
    padding-right: 16px;
    background: white;
    font-weight: bold;
    font-size: 1.5em;

HTML:

<div id='myDiv'><span>OUR LATEST WORK</span></div>

【讨论】:

以上是关于创建一个中间有文字的水平线? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

反应创建一个水平分隔线,中间有文本

中间带徽标的水平导航

如何让高度自适应的div中的文字水平垂直居中

文本需要在准确的中心水平和垂直[重复]

表格怎么让文字居中?

网页怎么做文字显示位置的控制