html - 使用 CSS 将文本居中,在空白区域填充分隔线

标签 html css

摘要

我想创建一个以日期为中心的元素,并且在左侧和右侧,应该有一行(如 <hr> )填充空白。

示例(我想要创建的)

The result that I want

我的尝试(代码片段)

我尝试了几种不同的方法来实现这一目标,但我的知识仍然有限。您能解释一下我如何实现我的目标吗?

.post-container .blog-post .post-date hr {
  color: #212931;
  width: 30%;
  vertical-align: middle;
}

.post-date .right {
  position: absolute;
  right: 0;
  top: 0;
  margin-right: 5%;
}

.post-date p {
  font-size: 20px;
  display: inline-block;
  position: absolute;
  transform: translateY(-15px);
  color: #212931;
  margin: 0 auto;
}
<div class="post-date">
  <hr class="left" />
  <p>2023/06/25</p>
  <hr class="right" />
</div>

最佳答案

避免使用旧的 HTML 元素,例如 <hr> 。相反,使用现代解决方案,如 display: griddisplay: flex ,以及伪元素,例如 ::before::after

.post-date {
  font-size: 30px;
  display: flex;
  gap: 20px; /* padding between line and text */
  align-items: center;
}

.post-date::before, .post-date::after {
  flex: 1;
  content: '';
  padding: 1px;
  background-color: grey;
  margin: 5px;
}
<div class="post-date">2023/06/25</div>

更多信息

display: flex -MDN
gap: 20px - flex/grid property - MDN

::before -MDN
::after - MDN

关于html - 使用 CSS 将文本居中,在空白区域填充分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76497340/

相关文章:

php - 相同的网页在虚拟服务器实例和生产实例上看起来不同

HTML:从模板复制代码

javascript - d3.js 选择不起作用

javascript - 如何通过在 JQuery 中切换来恢复 div 的默认大小?

CSS:我怎样才能让不同高度和相同宽度的盒子完美地排列在div中,这样box6就会在box1下面

Spring 表单标签和 HTML 5 仍然不兼容?

javascript - HTML两级 Accordion 菜单隐藏且不添加内容

css - 不间断破折号 html

html - css font-face 显示与引用站点不同的字体样式?

html - 如何使用 CSS 居中 li 标签