分类
CSS

对层叠上下文内部显示顺序的理解

这篇文章不讲述层叠上下文之间的显示顺序,而是探究在一个父层叠上下文上,子元素的显示顺序(子元素不会产生新的层叠上下文)。相同的显示等级需要考虑先来后到原则。因此本次只考虑不同的显示等级,以背景色的方式。查看覆盖情况得出显示等级。

第一等

position为非static

第二等

display:inline/inline-block

flex容器的子项

第三等

float:left/right

第四等

display:block

冲突情况

当display:inline-block和float:left/right同时存在时,显示等级为第三等,是由于inline-block失效造成的。

父元素与子元素等级不同时的显示顺序

第一个:父元素第一等,子元素第四等。第二个父元素第四等,子元素第一等

第二个的子元素显示在第一个的子元素上方。

第一个:父元素第二等,子元素第四等。第二个父元素第四等,子元素第一等

第二个的子元素显示在第一个的子元素上方

第一个:父元素第二等,子元素第四等。第二个父元素第四等,子元素第三等

第一个的子元素显示在第二个的子元素上方

第一个:父元素第四等,子元素第一等。第二个父元素第一等,子元素第四等。

第二个的子元素显示在第二个子元素的上方

结论:子元素的显示等级由子元素本身和父元素的显示等级决定,如果子元素的显示等级比父元素的显示等级高,则子元素的显示等级为自身的显示等级,如果子元素的显示等级比父元素的显示等级低,则子元素的显示等级为该层叠上下文下,等级最高的父元素的显示等级。

由zhuishao

github:https://github.com/zhuishao/

发表评论

电子邮件地址不会被公开。 必填项已用*标注