html - 如何用css画一条线并在上面显示文字或图片

标签 html css

我正在尝试使用 CSS 绘制一条线并在该线的中间显示文本/图像。

.featured-images {
  color: #666666;
  border: 2px solid #333333;
}
<p class="featured-images">Featured</p>

这就是我想要做的:

enter image description here

enter image description here

最佳答案

将文本包裹在 span 中,并为该行使用 :pseudo-element。

使用 z-index: -1 将行(:伪元素)放在 span 后面,这样您就可以在文本中移动而不必担心行。

.featured-images {
  position: relative;
  color: #666666;
  border: 2px solid #333333;
  padding: 0 10px 0 30px;
}
.featured-images span {
  color: #666666;
  background: white;
  padding: 0 10px;
}
.featured-images:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: #666666;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
}
<p class="featured-images"><span>Featured</span></p>


复制以下内容:

enter image description here

enter image description here

enter image description here

您可以使用repeating-linear-gradient 来做到这一点。

body {
  background: #E7EAE3;
}
.featured-images {
  position: relative;
  color: #666666;
  padding: 0 10px 0 30px;
  overflow: hidden;
}
.featured-images span {
  color: #517575;
  background: white;
  padding: 0 10px;
}
.featured-images:after {
  content: '';
  position: absolute;
  width: 120%;
  height: 100%;
  background: -webkit-repeating-linear-gradient(180deg, #463A3A 10px, #F2F2F2 10px, #F2F2F2 11px, #463A3A 11px, #463A3A 20px) repeat-x;
  background: -moz-repeating-linear-gradient(180deg, #463A3A 10px, #F2F2F2 10px, #F2F2F2 11px, #463A3A 11px, #463A3A 20px) repeat-x;
  background-size: 10px 31px;
  margin-left: -30px;
  transform: skew(-45deg);
  left: 0;
  z-index: -1;
}
<p class="featured-images"><span>Featured</span>
</p>


使用图片代替文字。

.featured-images {
  position: relative;
  color: #666666;
  border: 2px solid #333333;
  padding: 0 10px 0 30px;
}
.featured-images span {
  display: block;
  width: 80px;
  height: 13px;
  background: url(http://lorempixel.com/80/13) no-repeat white 10px 0;
  padding: 0 10px;
}
.featured-images:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: #666666;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
}
<p class="featured-images"><span></span></p>

关于html - 如何用css画一条线并在上面显示文字或图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044529/

相关文章:

chrome 和 mozilla 中的 css 文本阴影差异

javascript - 如何在 anchor 标记悬停时添加类

html - CSS 样式不适用

javascript - 字体系列 CSS 过渡

php - 如果特定图像显示 PHP,则显示特定文本

javascript - 改变不同元素的颜色

css - 用于移动应用程序的 HTML5 全局元标记/样式

CSS,右侧传出菜单

javascript - 使用网络音频 api 和 wavesurfer.js 剪切和粘贴音频

javascript - 导入.js脚本点击无响应