2018-03-22 CSS堆叠上下文

堆叠顺序
问题:border和background是什么关系


image.png

A:他们是平齐的
B:border更垂直靠近用户
C:background更垂直靠近用户
给border的颜色加个半透明,结论为B


image.png

如果div里有文字,那文字和border是什么关系?
做个试验,让文字移动(text-indent:-28px)与border有重合,去kankan
image.png

说明文字比border更靠近用户(垂直屏幕)
如果div里既有文字,还有一个子div,那么这文字和一起的div是什么关系?


image.png

发现文字在div上面
那如果div里有文字B,和上面的文字什么关系?
image.png

文字B会盖住前面的文字,后面的盖住前面的
同一个div里的浮动元素和文字什么关系?
image.png

让文字移动下
image.png

文字比浮动元素更靠近用户
浮动元素和同级的div(都是某一个div的子)什么关系?
浮动元素更靠近用户
image.png

浮动元素如果有文字,那么它其实是没有外面的文字更靠近用户的


image.png

同级比较,那么就是谁后就盖住谁

相对定位的relative比浮动元素更靠近用户


image.png

z-index只能给定位元素加,给其他元素加没有作用


image.png

image.png

对于绝对定位呢?


image.png

如果最外面的parent定位了呢(之前没定位)


image.png

这个z-index为-1的尽然跑上来了
会跳到border和块级元素之间

搜the stacking context 堆叠上下文

可以理解为堆叠作用域。跟 BFC 一样,我们只知道一些属性会触发堆叠上下文,但并不知道堆叠上下文是什么。

根元素 (HTML),
z-index 值不为 "auto"的 绝对/相对定位,
一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-flex,
opacity 属性值小于 1 的元素(参考 the specification for opacity),
transform 属性值不为 "none"的元素,
mix-blend-mode 属性值不为 "normal"的元素,
filter值不为“none”的元素,
perspective值不为“none”的元素,
isolation 属性被设置为 "isolate"的元素,
position: fixed
在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值(参考 这篇文章)
-webkit-overflow-scrolling 属性被设置 "touch"的元素

image.png

a1和 b1的都是块级元素,他们的堆叠上下文是html元素(relative的z-index是auto,所以不是堆叠上下文)

如果给a写个z-index为1,那么其就是堆叠上下文了,
image.png

image.png

b在后面,b比a高

这个时候b1(z-index是0)盖住了a1(z-index是2)
因为父级b比a高点,那么b里的所有就比a里的所有高

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 1. 堆叠顺序 堆叠顺序(stacking order):HTML 内元素发生层叠的时候的特定垂直顺序,即元素在用...
    饥人谷_风争阅读 8,660评论 0 9
  • 1 . 什么是堆叠顺序? 2 . 什么是堆叠上下文? 堆叠顺序: background border 块级 浮...
    PhilongHuynh阅读 3,841评论 0 0
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,744评论 0 0
  • 曾经有些学员问过我,“为什么三阶只挑战感召,而忽视对其他两大支柱的挑战呢?” 其实,每个平台对三大支柱都是均匀的支...
    区锦标阅读 4,181评论 0 0