美文网首页
伪元素的层叠上下文

伪元素的层叠上下文

作者: kayleeWei | 来源:发表于2022-04-15 19:31 被阅读0次

问题:

从一段简单代码看问题:

给一个本身有background/background-image的div元素,设置一个伪元素作为背景颜色,希望的层叠顺序是看到div在上放,伪元素在下方

<div class="box"></div>
.box {
  position: relative;
  width: 100px;
  height: 100px;
  background: red;
/*   transform: translateX(-10px); */
/*   z-index: 10; */
}

.box::after {
  position: absolute;
  content: '';
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: blue;
  z-index: -1;
}

上述样式,显示红色在上, 符合预期;

.box {
  position: relative;
  width: 100px;
  height: 100px;
  background: red;
/*   transform: translateX(-10px); */
  z-index: 10;
}

.box::after {
  position: absolute;
  content: '';
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: blue;
  z-index: -1;
}

上述样式显示蓝色在上,不符合预期;

问题原因:

为什么给父元素加了z-index数值或者transfrom,则红色不在最上方了呢?

因为如果想实现层叠效果,需要元素和对应的伪元素在同一层叠上下文中,所以不能让父元素创建层叠上下文。以下情况会创建层叠上下文:

  • postion不为static,且设置z-index;
  • transform不是none;

因此,给父元素设置z-index:10或者transform后,父元素和伪元素不在同一个层叠上下文中,子元素会覆盖父元素

参考链接:

https://fatesinger.com/100258

可以直接在codepen里调试

相关文章

  • 伪元素的层叠上下文

    问题: 从一段简单代码看问题: 给一个本身有background/background-image的div元素,设...

  • HTML与CSS笔记-3(完)

    层叠上下文 一个元素具备一下任意条件,该元素会创建层叠上下文根元素z-index不为auto的定位元素 同一层叠上...

  • z-index part3

    不支持z-index的层叠上下文元素的层叠顺序均是z-index: auto级别 依赖z-index的层叠上下文元...

  • 关于层叠上下文

    层叠上下文: 层叠上下文是HTML元素的三维概念,这些HTML元素在一条假想的相对于面向(电脑屏幕的)视窗或者网页...

  • 层叠上下文

    层叠顺序 说到层叠上下文要先引出一个层叠顺序的概念。CSS中所有的元素默认有以下的层叠顺序,如果是兄弟元素的话,默...

  • 层叠上下文和z-index

    一、层叠上下文 MDN 层叠上下文 是指网页上的元素如何显示在其他元素之上,就像您可以将桌面上的索引卡并排放置或相...

  • 2018-11-27\css上下文层叠

    什么是上下文层叠 上下文层叠是html中一个三维概念,英文叫stacking context。如果一个元素含有上下...

  • CSS伪类、伪元素、继承、层叠

    伪类 :first-child :last-child :nth-child(n) 1.:first-child ...

  • z-index和叠加上下文是如何形成

    今天给大家分享一下,z-index和层叠上下文如何形成的? 1.背景介绍 层叠上下文,就是在呈现的时候决定哪个元素...

  • css--不同类型的选择器(二)

    该选择器不是选择元素,而是元素的某些部分,或仅在某些特定上下文中存在的元素。它们有两种主要类型 :伪类和伪元素。 ...

网友评论

      本文标题:伪元素的层叠上下文

      本文链接:https://www.haomeiwen.com/subject/lrpqertx.html