无法在水平线规则中添加文本

时间:2018-01-06 11:04:44

标签: css html5

这是我的css文件

.venue-hr-text {
  line-height: 1em;
  position: relative;
  outline: 0;
/*  border: 0;*/
  font-family: 'GreatVibesRegular';
  text-align: center;
  height: 1.5em;
  opacity: .5;
  &:before {
    content: '';

    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 1px;
  }
  &:after {
    content: attr(data-content);
    position: relative;
    display: inline-block;
    padding: 0 .5em;
    line-height: 1.5em;
    background-color: #fcfcfa;
  }
}

这是我的HTML代码

<hr class="venue-hr-text" data-content = "just three steps away">

我还为我正在使用的字体添加了一个在线链接,这是伟大的常规... 仍然,我的代码无法正常工作

hr也没有显示在网页上

2 个答案:

答案 0 :(得分:1)

水平规则不接受文本节点。

您可以使用P标签,然后将显示设置为flex并使用两个伪元素以创建除此之外的“hr”。

这样的事情:

<p class="hr">
  Something, Something, Darkside
</p>

的CSS:

p.hr{
  display:flex;
  align-items:center
}

p.hr::before, p.hr::after{
  content:"";
  flex:1;
  background-color:red;
  height:1px;
}

与其他方法相比,这个方法允许选择文本。

JSFiddle demonstration

答案 1 :(得分:-2)

根据您的需要改变您的CSS。你引用的代码也是sass而不是css所以&amp;:before和&amp;:after不能像在sass中那样在类之下使用。

.venue-hr-text {
  line-height: 1em;
  position: relative;
  outline: 0;
  border: 0;
  text-align: center;
  height: 1.5em;
  opacity: .5;
}
.venue-hr-text::before {
    content: '';
    background: linear-gradient(left, transparent, black, transparent);
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 5px;
    background-color: grey;
  }
 .venue-hr-text::after {
    content:  attr(data-content);
    position: relative;
    display: inline-block;
    padding: 0 .5em;
    line-height: 1.5em;
    color: black;
    background-color: #fcfcfa;
  }

js fiddle link here