当前位置: 首页 > 面试题库 >

哪些CSS属性会创建堆栈上下文?

王云
2023-03-14
问题内容

我正在研究堆栈上下文,并使用创建堆栈上下文的属性进行一些测试

我进行了一些测试,发现除了z-index,当然,以下属性还创建了堆栈上下文:

  • transform除了none;
  • opacity除了1;
  • perspective

还有其他应用堆栈上下文的属性吗?


问题答案:

以下一种或多种情况将导致元素为其后代建立自己的堆栈上下文1:

根元素始终包含根堆栈上下文。这就是为什么您可以开始排列元素而不必先放置根元素的原因。尚未参与本地堆栈上下文(由以下任何其他方案生成的元素)的任何元素都将改为参与根堆栈上下文。

设置z-index到任何东西以外auto,其定位的元件上(即一个元件与position不是static)。

请注意,此行为将针对具有的元素进行更改,以position: fixed使它们无论z-index值如何都将始终建立堆栈上下文。一些浏览器已经开始采用这种行为,但是更改尚未反映在CSS2.1或新的CSS位置布局模块中,因此暂时依靠这种行为可能并不明智。

我的另一个答案探讨了这种行为上的改变,进而链接到本文和这组CSSWG电信会议记录。

另一个例外是flex项目。z-index在弹性项目上进行设置将始终导致其建立堆叠上下文,即使该项目未定位也是如此。

设置opacity为小于的任何值1。

转换元素:

设置transform为以外的任何其他值none。

设定transform-style为preserve-3d。

设置perspective为以外的任何其他值none。

创建CSS区:设置flow-from比其他任何none一个元素,其上content比其他任何东西normal。

在分页媒体中,每个页边距框都建立自己的堆栈上下文。

在滤镜效果中,设置filter为除none。

在合成和混合中,设置isolation为isolate。

在将发生变化,设置will-change到其任何非初始值将创建一个堆叠内容的属性。

注意,块格式化上下文与堆栈上下文不同;实际上,它们是两个完全独立的(尽管不是互斥的)概念。



 类似资料:
  • 本文向大家介绍css穿透属性有哪些?相关面试题,主要包含被问及css穿透属性有哪些?时的应答技巧和注意事项,需要的朋友参考一下 /* Keyword values / pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; / SVG only / pointer-events: visibleFill

  • 问题内容: 我注意到有些属性是在CSS中继承的,而有些则不是。例如,text-size属性是继承的,但是padding和margin不被子块继承。那么如何确定哪些属性是继承的,哪些不是? 问题答案: 这是所有可继承属性的列表。我正在使用W3C的信息,所以我认为它 应该 是正确的。但是了解网络浏览器(特别是IE)后,其中一些可能并非所有浏览器都可以继承:

  • 本文向大家介绍CSS选择器有哪些?哪些属性可以继承?相关面试题,主要包含被问及CSS选择器有哪些?哪些属性可以继承?时的应答技巧和注意事项,需要的朋友参考一下 选择器 通配符 id class 标签 后代选择器 子选择器 兄弟选择器 属性选择器 伪类选择器 伪元素选择器 可以继承的属性 font-size font-weight font-style font-family color

  • 本文向大家介绍CSS选择符有哪些?哪些属性可以继承?相关面试题,主要包含被问及CSS选择符有哪些?哪些属性可以继承?时的应答技巧和注意事项,需要的朋友参考一下 1.id选择器( # myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p) 4.相邻选择器(h1 + p) 5.子选择器(ul > li) 6.后代选择器(li a) 7.通配符选择器( * ) 8.

  • 本文向大家介绍CSS content属性特殊字符有哪些?相关面试题,主要包含被问及CSS content属性特殊字符有哪些?时的应答技巧和注意事项,需要的朋友参考一下 参考文章 来自CSDN

  • 问题内容: 有哪些CSS属性会使元素脱离正常流程?这样的属性将是float,position:absolute等。 这个问题涉及正常流量的所有可能的变化。 问题答案: 只有以下属性会影响任何给定元素的正常流动: 仅出于完整性考虑: 从流程中删除元素(严格来说,该元素将没有流程顺序) 不会更改元素的流动顺序,而是会更改其相对于正常流动位置的位置。 将在流上保留元素,但不会将其渲染到视口。