css - 如何使用 CSS 创建一条文本居中、两端封顶的水平线?

标签 css horizontal-line

<分区>

关于如何创建文本居中且两侧有水平线的标题有很多问题(和答案),但我想要实现的略有不同。

我想在线条的左端和右端添加垂直线:

example heading

使用这段代码,我已经接近我想要的结果了:

body {
  padding: 50px;
}

div.outer {
  width: 100%;
  height: 15px;
  border-top: 1px solid black;
  border-right: 1px solid black;
  border-left: 1px solid black;
  text-align: center;
  margin: auto;
  position: relative;
}

div.outer>span {
  font-size: 16px;
  background-color: #FFF;
  padding: 0 10px;
  position: absolute;
  top: -10px;
  left: 47%;
}
<div class="outer">
  <span>A Heading</span>
</div>

pen

谁能给我指出正确的方向?

更新

感谢@nvioli 为我指明了正确的方向。我最终结合使用了你的答案和基于 this post 的 flex

这是对我有用的:pen

最佳答案

我建议在现有内容之外添加另一个 div。你已经很好地制作了水平线并将文本居中(这是 IMO 的困难部分),所以将整个东西包装在一个更大的 div(两倍高)并将内部 div 向下移动高度的一半似乎有效.

请注意,我已将您的 outer div 重命名为 inner 并添加了一个新的 outer

body {
  padding: 50px;
}

div.outer {
  border-right: 1px solid black;
  border-left: 1px solid black;
  height:30px;
}

div.inner {
  width: 100%; 
  height: 15px; 
  border-top: 1px solid black; 
  text-align: center;
  margin: auto;
  position: relative;
  top:15px;
}

div.inner > span {
  font-size: 16px; 
  background-color: #FFF; 
  padding: 0 10px;
  position: absolute;
  top: -10px;
  left: 47%;
}
<div class="outer">
  <div class="inner">
    <span>A Heading</span>
  </div>
</div>

关于css - 如何使用 CSS 创建一条文本居中、两端封顶的水平线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55853956/

相关文章:

html - 如何将 CSS 应用于不在特定标签内的文本?

html - 圆 Angular 框中的 CSS 内容

html - 使用 BR 管理间距

jquery - 文本区域滚动条不起作用

html - CSS 绝对位置,其中 div 的左上角位于父级的右上角

html - ie 9 的水平线 css 问题,<hr/> 颜色样式在 ie 9 中不起作用

line - 萨普伊5水平线

python - matplotlib,在多个子图的 x 轴上添加公共(public)水平线

css - 如何在我的 RSS 链接下添加另一行?

matplotlib - 在绘图上创建带标签的水平线