css元素层叠级别及z-index剖析
作者:rong179 来源:蓝色理想 发布时间:2008-08-29 12:41:00
声明
定位元素:position属性值设置除默认值static以外的元素,包括relative,absolute,fixed。
平台:win/IE win/FF
z-index:
用来确定定位元素在垂直于显示屏方向(以下称为Z轴)上的层叠顺序
值: auto | 整数 | inherit
默认: auto
适用于: 定位元素
继承性: no
理解stacking context
每个box都归属于一个stacking context,它是元素在z轴方向上定位的参考。根元素形成 root stacking context,其他stacking context由定位元素设置z-index为非auto时产生。如#div1{position:relative;z-index:0;}即可使 id=div1的元素产生stacking context。stacking context和 containing block 并没有必然联系。
理解stack level
在一个stacking context中的每个box,都有一个stack level(即层叠级别,以下统一用stack level),它决定着在同一stacking context中每个box在z轴上的显示顺序。同一stacking context中,stack level值大的显示在上,stack level值小的显示在下,同一stack level的遵循后来居上的原则(back-to-front )。不同stacking context中,元素显示顺序以父级的stacking context的stack level来决定显示的先后情况。于自身stack level无关。注意stack level和z-index并不是统一概念。(将在后文慢慢理解)
stack level规则
每个stacking context中可包含块级(block)元素、内联(行内inline)元素,还有设置float属性的元素、定位元素等等他们在同一父级 stacking context中的显示顺序是怎样的?即stack level是怎样的呢?比如一个块级元素和内联元素发生层叠的话谁会在上面呢?是不是谁在后面谁就在上面呢?
根据w3c关于stack level的介绍可以得出以下stack level规则
每个stacking context都包括以下stack level (后来居上):
父级stacking context的背景、边界
z-index值为负值的定位元素(值越小越在下)
文本流中非定位的、block块级子元素
文本流中非定位的、float浮动子元素
仿佛能产生stacking context的inline元素
否则,inline元素的stack level将在block元素之前。z-index:auto/0的定位元素
z-index值为正的定位元素(值越大越在上)
以上stack level在浏览器执行情况:
firefox3.0下测试完全吻合,firefox2.0下稍有不同即:“z-index值为负值的定位元素”在“父级stacking context的背景、边界”之前。
ie6.0和7.0中:inline元素的stack level位于block元素之前,且“文本流中非定位的、float浮动子元素”(以下简称浮动元素)和“文本流中非定位的、block块级子元素”(以下简称block元素)处于同一级。


猜你喜欢
- 前言我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图、柱状图、散点等常规的图表啦(往期的内容如下,大家
- 需求:Python实现三次密码验证,每次验证结果需要提示,三次验证不通过需要单独提示代码如下:user = '张无忌'pas
- 使用memcache来同步session是还是不错的,当然也可以通过redis来保存session,可以php开启并将Session存储到R
- 本文实例讲述了Go语言实现简单留言板的方法。分享给大家供大家参考。具体实现方法如下:package mainimport ( &n
- 需要把一个从csv文件里读取来的数据集等距抽样分割,这里用到了列表表达式和dataframe.iloc先生成索引列表:index_list
- 一、SQL 连接(JOIN)1、笛卡尔积(1)当多张表进行连接查询,没有任何条件限制的时候,最终查询结果条数,是多张表条数的乘积如A表15条
- 先在GitHub找到PHPMailer 并下载https://github.com/PHPMailer/PHPMailer//PHPMail
- 关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你
- 首先 你要有个女朋友效果:需要安装几个包pip install wxpypip install wechat_senderpip insta
- python图片生成视频MP4import osimport cv2# 要被合成的多张图片所在文件夹# 路径分隔符最好使用“/”,而不是“\
- //方法1:$ip = $_SERVER["REMOTE_ADDR"];echo $ip;//方法2:$user_IP
- 1 谈谈你对面向对象的理解?面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想。OO
- 查询mysql表是否被损坏命令,如下:# CHECK TABLE 表名mysql的长期使用,肯定会出现一些问题,一般情况下mysql表无法访
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 一、router-link路由导航方式传参父组件:<router-link to="/跳转到的路径/传入的参数"&
- 前言APScheduler是基于Quartz的一个Python定时任务框架。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可
- 字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是文字,所以,了解一点字体的基本知识对于
- 本文实例为大家分享了python实现剪切功能的具体代码,供大家参考,具体内容如下#!/usr/bin/env python#coding:
- 前言mitmproxy 是 man-in-the-middle proxy 的简称,译为中间人代理工具,可以用来拦截、修改、保存 HTTP/
- 一般来说,函数(function)是组织好的、可重复使用的、具有一定功能的代码段。函数能提高应用的模块性和代码的重复利用率,在Python中