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

哪些CSS属性创建堆叠上下文?,css,z-index,Css,Z Index,我正在研究和测试创建堆叠上下文的属性 我做了几次测试,发现除了z-index,当然,以下属性还创建了堆叠上下文: 转换而非无 不透明度而非1 和透视图 是否有其他属性应用堆叠上下文?以下一个或多个场景将导致元素为其子体建立自己的堆叠上下文1: 根元素始终保存根堆栈上下文。这就是为什么您可以开始排列元素而不必首先定位根元素。任何尚未参与本地堆栈上下文(由以下任何其他场景生成)的元素都将参与根堆栈上下文 在定位的元件上设置为除自动以外的任何设置(即,具有位置的元件不是静态) 注意,对于具有

我正在研究和测试创建堆叠上下文的属性

我做了几次测试,发现除了
z-index
,当然,以下属性还创建了堆叠上下文:

  • 转换
    而非
  • 不透明度
    而非
    1
  • 和透视图

是否有其他属性应用堆叠上下文?

以下一个或多个场景将导致元素为其子体建立自己的堆叠上下文1:

  • 根元素始终保存根堆栈上下文。这就是为什么您可以开始排列元素而不必首先定位根元素。任何尚未参与本地堆栈上下文(由以下任何其他场景生成)的元素都将参与根堆栈上下文

  • 在定位的元件上设置为除
    自动
    以外的任何设置(即,具有
    位置
    的元件不是
    静态

    • 注意,对于具有
      position:fixed
      的元素,此行为将被更改,这样它们将始终建立堆叠上下文,而不管其
      z-index
      值如何。一些浏览器已经开始采用这种行为,但是这种变化在CSS2.1或新版本中都没有反映出来,因此现在依赖这种行为可能并不明智

      中探讨了行为的这种变化,这反过来又链接到和

    • 另一个例外是a和a。设置
      z-index
      将始终导致它建立堆叠上下文,即使它未定位

  • 设置为小于
    1
    的任何值

  • 要素:

    • 设置为除
      none
      之外的任何其他设置

    • 设置为
      preserve-3d

    • 设置为除
      none
      之外的任何其他设置

  • 内容
    不是
    正常
    的元素上创建:设置为除
    以外的任何内容

  • 在中,每个都建立自己的堆栈上下文

  • 在中,设置为除
    none
    之外的任何其他值

  • 在中,设置为
    隔离
    并设置为不同于
    正常

  • 在中,设置为其任何非初始值都将创建堆叠上下文的属性

  • 在中,使用非
    none
    的值设置
    剪辑路径
    /
    掩码

请注意,a与堆叠上下文不同;事实上,它们是两个完全独立(尽管不是相互排斥)的概念



1这不包括伪堆叠上下文,这是一个非正式术语,仅指定位,但实际参与其父堆叠上下文。

位置:固定的
可以在色度(e | ium)上创建堆叠上下文!在
chrome://flags
@minitech Yes,
z-index
需要一个非静态的位置来创建堆叠上下文。我相信OP知道这一点。或者是否意味着
position:fixed
在不使用
z-index
的情况下自行创建堆叠上下文?@fabriciomatté:是的,该标志表示所有固定位置元素都创建堆叠上下文。我不知道这是否是一个错误修复。@minitech哦,有趣<代码>=]将进行检查。@minitech我不知道固定位置的chrome标志,谢谢,它不是chrome 22中的标志?我想这就是它被移动的原因。@minitech从我所读到的内容来看,它看起来像是引入了标志,以便您可以禁用Chrome 22中引入的新的
位置:固定的
行为,用于背部兼容。@minitech也来自链接文章:要测试页面是否要更改,请转到Chrome的
关于:flags
并打开/关闭“固定位置元素创建堆叠上下文”。如果两种情况下的布局行为相同,则设置为。如果没有,请确保启用该标志后,您看起来可以接受,因为这将是Chrome 22的默认设置。“@minitech:我修改了答案,并根据您删除的答案在伪堆叠上下文上添加了一个小脚注,尽管我的答案实际上没有包括它们,因为它们可能会让人困惑。
-webkit overflow scrolling:touch