css z-index的层级关系
我看很多人都弄不清楚css的层级关系
自己也百度过很多网上的z-index的说法,比如
什么是“层叠上下文”
层叠上下文(stacking context),是HTML中一个三维的概念。在CSS2.1规范中,每个盒模型的位置是三维的,分别是平面画布上的
X轴
,Y轴
以及表示层叠的Z轴
。一般情况下,元素在页面上沿X轴Y轴
平铺,我们察觉不到它们在Z轴
上的层叠关系。而一旦元素发生堆叠,这时就能发现某个元素可能覆盖了另一个元素或者被另一个元素覆盖。比如这种解释
这种解释非常的官方,也很书面化 我第一次理解的时候也是很麻烦,我说下我理解的看法吧
z-index
属性值并不是在任何元素上都有效果。它仅在定位元素 这句话看起来就很明白 zi-index的属性 只能在定位元素有效果
我理解的网页 所有的层级关系 初始值全是1 谁都覆盖不到谁的元素上 只能挤来挤去
z-index的理解 我把它理解成一个个的砖头吧 然后我们不要以正常的想法去看待index
我们可以把自己想象成一个无人机 在空中的方式去看待index
比如一个div就是一个砖头 我们在电脑前方去看 相当于我们就是无人机
但是砖头都是平铺的 不能层叠的铺
而z-index呢 相当于他在砖头上又覆盖了一个砖头
比如托塔天王的玲珑宝塔 有七层对应下方七个层级
z-index 1 2 3 4 5 6 7
如果站在空中的角度就是 只能先看到最高的一层 也就是第七层 z-index7 想象一下自己在侧面看 就很清楚能分析出值越大的说明他在的层级越高
在空中看到的层级关系就是 谁越高你第一眼就能看到那个元素 当然元素有大小区分 覆盖在上面的元素越小的 下面的大的话 也是可以看到的 但是中间区域会被最高层级的元素占位空间挡住。
加油 一起努力