html - 造型 block 的4个 Angular

标签 html css pseudo-element

我必须像第一张图片一样设置 block Angular 的样式。

image1

我是在额外的内部 block 的帮助下完成的,使用了两个 block 的::before 和::after 伪元素:

<div class="header__text">
  <p>
    Lorem ipsum
  </p>
</div>


.header__text {
  display: inline-block;
  vertical-align: top;
  margin: 0 auto;
  position: relative;
}

.header__text::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  border-top: 1px solid rgba(0, 0, 0, 1);
  border-left: 1px solid rgba(0, 0, 0, 1);
}

.header__text::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 12px;
  height: 12px;
  border-top: 1px solid rgba(0, 0, 0, 1);
  border-right: 1px solid rgba(0, 0, 0, 1);
}

.header__text p {
  margin: 0;
  padding: 10px 20px;
  font-family: Arial, sans-serif;
  font-size: 21px;
  line-height: 1.2em;
  font-weight: 400;
  color: #000;
  text-transform: none;
  text-decoration: none;
  letter-spacing: .07em;
  text-align: center;
  position: relative;
}

.header__text p::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 1);
  border-left: 1px solid rgba(0, 0, 0, 1);
}

.header__text p::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 1);
  border-right: 1px solid rgba(0, 0, 0, 1);
}

jsbin link

有没有更好的方法来仅使用 css 来设置样式,而无需额外的 block 、图像和其他辅助内容?只是纯 CSS。

谢谢。

最佳答案

您可以使用多个渐变背景图像:

div {
  display: inline-block;
  background-image:
    linear-gradient(90deg, black 12px, transparent 12px, transparent calc(100% - 12px), black calc(100% - 12px)),
    linear-gradient(90deg, black 12px, transparent 12px, transparent calc(100% - 12px), black calc(100% - 12px)),
    linear-gradient(black 12px, transparent 12px, transparent calc(100% - 12px), black calc(100% - 12px)),
    linear-gradient(black 12px, transparent 12px, transparent calc(100% - 12px), black calc(100% - 12px));
  background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
  background-repeat: no-repeat;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
}

p {
  margin: 0;
  padding: 10px 20px;
}
<div><p>Lorem Ipsum</p></div>

关于html - 造型 block 的4个 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537299/

相关文章:

php - 菜单元素事件状态

html - 具有 :before - unexpected background behaviour/stacking order 的 CSS 等高列

css3气泡,1px的三 Angular 形

javascript - 如何在 HTML5 中只接受字符值

html - 缩放 HTML 元素的最佳方法

javascript - 如何检查元素是否是脚本

javascript - 在基于 angular js 的应用程序中将图像设置为页面背景

javascript - jquery 函数根据选择的选项显示/隐藏文本区域

html - 如何将链接应用到 div 或 img?

CSS 伪元素的 jQuery .click() 事件 ( :before/:after)?