创建小于元素的边框底部和较厚的中间

时间:2018-04-26 20:48:39

标签: css css3

我正在使用一些程式化的HR来创建剖面分隔符。

但是现在我正在尝试创建一个边界底部小于H1宽度的H1元素(根据H1文本的宽度可变宽度)和更厚的中间(高度)。

这样的事情:

This is the idea

我搜索了几个试图寻找解决方案的搜索源,但却没有找到它。

我尝试使用:之后和:之前但仍然卡住了。 有什么想法吗?

到目前为止我尝试过:

h1 {
  display:inline;
  border-bottom:1px solid black;
}

h1:after {
 content: '';
  display: block;
  width: 100%;
  height: 100%;
  border-bottom:3px solid red;
}
<h1>
My Text
</h1>

2 个答案:

答案 0 :(得分:5)

您可以使用线性渐变轻松完成此类操作,无需额外的标记或伪元素:

&#13;
&#13;
h1 {
  display:inline-block;
  font-size:3em;
  padding-bottom:10px;
  background:
  linear-gradient(red,red)50% calc(100% - 2px)/80% 2px no-repeat,
  linear-gradient(red,red)50% 100%/40% 6px no-repeat;
}
&#13;
<h1>Lorem Ipsum</h1>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您可以使用::before::after伪元素来创建线条:

h1 {
  display:inline-block;
  font-size:3em;
  position: relative;
  font-family: Impact, Arial;
  color: #444;
  font-weight: 900;
}
h1::before,
h1::after {
  content: '';
  display: block;
  background: #ea596e;
  position: absolute;
}
h1::before {
  width: 40%;
  height: 5px;
  bottom: -12px;
  left: 30%;
}
h1::after {
  width: 80%;
  height: 1px;
  bottom: -10px;
  left: 10%;
}
<h1>my &lt;h1&gt; tag</h1>