这是一个高级 CSS 问题。
在 JSFiddle 中:(在 Chrome 26.0、Firefox 20.0 和 IE 10 上测试过)
父级建立一个堆叠上下文,子级比父级具有更高的 z-index 并覆盖父级,所以这一切都很好。
但是在http://jsfiddle.net/4yRrm/11中呢?
现在孩子的 z-index 比父母低。子文本现在位于父文本下方(您可以看到父文本以蓝色覆盖子文本的黑色),但为什么子文本的背景颜色会高于父文本?请用规范证实你的答案。为什么会有这样的行为——这是否达到了某种目的?
实际上,父级的背景是最低层,然后是子级的背景,然后是子级的文本,然后是父级的文本。所以父母的绘画处于“极端”——背景为最底层,文字为最上层,孩子的内容“夹在”这两个极端之中。
与此相关的是:当父级建立堆叠上下文时,如何让父级甚至在背景上完全高于子级?请不要回答删除positive: relative
或删除z-index: 0
父级的,因为这将无法为子级建立堆叠上下文。也就是说,父母必须有 a position
,或relative
,同时有一个整数(并且不能是)。absolute
fixed
z-index
auto