首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何忽略元素填充::在伪元素之前?

如何忽略元素填充::在伪元素之前?
EN

Stack Overflow用户
提问于 2017-06-23 00:02:14
回答 1查看 2.3K关注 0票数 2

下面是我对伪元素忽略填充的解决方案,但是它感觉有点“无趣”,因为我对伪元素使用了负值。

这个解决方案可以吗?

我也尝试使用left: 0; top: 0;,但是之后我将伪元素相对于页面的主体而不是元素进行定位。为什么?

CSS:

代码语言:javascript
复制
.block-header {
  background-color: #3A658B;
  height: 30px;
  width: 100%;
  line-height: 30px;
  color: white;
  font-size: 18px;
  border-radius: 3px;
  padding-left: 10px;
}
.block-header::before {
  content: '';
  position: absolute;
  margin-left: -10px;
  height: 30px;
  width: 10px;
  background-color: #1E3552;
  border-radius: 3px 0px 0px 3px;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-23 00:22:08

使用left: 0是可以的。这是正确的方法。

但是您还没有在position: relative元素上指定.block-header

考虑到这一点:

  • 伪元素被认为是DOM元素的子元素.
  • 绝对定位元素相对于其最近的定位祖先进行定位。
  • 当没有定位祖先时,abspos元素相对于初始容器(即HTML元素/ viewport)定位。

代码语言:javascript
复制
.block-header {
  background-color: #3A658B;
  height: 30px;
  line-height: 30px;
  color: white;
  font-size: 18px;
  border-radius: 3px;
  padding-left: 10px;
  position: relative;      /* NEW */
}

.block-header::before {
  left: 0;                 /* NEW */
  content: '';
  position: absolute;
  height: 30px;
  width: 10px;
  background-color: #1E3552;
  border-radius: 3px 0px 0px 3px;
}
代码语言:javascript
复制
<div class="block-header">test</div>

有关详细信息,请参阅MDN

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44711089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档