元素层叠级别及z-index剖析(3)
作者:rong179 来源:蓝色理想 发布时间:2008-07-22 12:03:00
一些问题的解释:
怿飞版主在《z-index在IE中的迷惑》一文中最后提到的问题:
运行代码框
演示地址:
http://rong179.blogbus.com/files/12163573190.html
认为:
解惑:IE浏览器似乎给body元素默认了一个相对定位属性(position: relative)。
真是这样吗?
运行代码框
演示地址:
http://rong179.blogbus.com/files/12163572440.html
分析
box1显示在body的下方,根据上面的stack level规则,IE中,如果body默认了一个位置属性,即body是其父级stacking context,box1应显示在其上方,事实却不是这样。而且当我们给body加上position:relative以后,显示效果和stack level规则一致。所以body并没有默认位置属性。
那为什么负值的定位元素在IE和FF下显示不一致呢?
ie 中根据stack level规则: z-index为负的定位元素的stack level比父级stacking context(此处是root stacking context)高,显示在其上方。故box1在ie中能显示。ff3.0和标准一致,也能显示。大家可以试一下。
ff2.0 中由于那条特殊的stack level,即 z-index为负的定位元素的stack level比父级stacking context(此处是root stacking context)低,所以显示在root stacking context下方。故不能看见。
另外,上面的代码中加上opacity那条后,在ff2.0中即可显示了。这又是什么原因呢?
推测:在火狐中如果给元素设置opacity属性(1除外),即会产生新的stacking context。
上面加上opacity属性后在ff2.0中可显示box1在body下,ff3.0box1在body上,(可以根据上面的stack level规则自己分析)符合推测。
在w3c的说明中也证明这点
In future levels of CSS, other properties may
introduce stacking contexts, for example 'opacity'
[CSS3COLOR].
总结:
在一个stacking context中元素的z-轴显示顺序,由元素所处的 stack level 决定。对于同一stack level的定位元素由z-index的大小进一步决定显示次序。
ie中给元素设置position属性(static除外)可产生新的stacking context
ff中给元素设置opacity属性(1除外)可产生新的stacking context
除此之外(也许设置其他属性也会产生新的stacking context,但还不知道)只有定位元素设置了z-index(auto除外)才会产生新的stacking context,子元素将按照新的stacking context,定位。


猜你喜欢
- What do the ->, => and :: symbols mean?The -> is the "in
- 在国内利用Python从Internet上爬取数据时,有些网站或API接口被限速或屏蔽,这时使用代理可以加速爬取过程,减少请求失败,Pyth
- 翻看自己以前写的程序,发现写过一个爬取盘多多百度云资源的东西,完全是当时想看变形金刚才自己写的,而且当时第一次接触python大概写了有2天
- 背景环境:ArcGis10.2.2。C#开发程序一直以来以调用Desktop的python环境(32位)来做数据处理分析。但是数据量大时,出
- 对象Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。1. 标识用于唯一标识对象,
- 注册模块default.asp 代码如下:<!DOCTYPE html PUBLIC "-//
- NumPy数组(2、数组的操作)基本运算数组的算术运算是按元素逐个运算。数组运算后将创建包含运算结果的新数组。>>> a=
- (一)wxpython的安装 Ubuntu下的安装,还是比较简单的。#使用:apt-cache sear
- Neo4j是一款开源图数据库,Py2neo提供了使用Python语言访问Neo4j的接口。本文介绍了使用Py2neo的NodeMatcher
- 最近需要爬取某网站,无奈页面都是JS渲染后生成的,普通的爬虫框架搞不定,于是想到用Phantomjs搭一个代理。Python调用Phanto
- 核心技术:Python3.7GUI技术:Tkinter (Python已经内置)好多文章写Python GUI之tkinter窗口视窗教程大
- <!--#include file="admin_Checkuser.asp"--> <%
- 本文实例讲述了python中列表元素连接方法join用法。分享给大家供大家参考。具体分析如下:创建列表:>>> music
- 这篇文章主要介绍了python tkinter canvas使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 1、定义路由// 阿里云文件储存Route::group(['prefix'=>'aliyun'],
- 前言MySQL 的权限表在数据库启动的时候就载入内存,当用户通过身份认证后,就在内存中进行相应权限的存取,这样,此用户就可以在数据库中做权限
- eWebEditor V2.80最终版 说明 目录结构说明 =============================
- 前言本文对Python 自动化操作Excel并生成图表,做了详细的分析和说明我们先来看一下python中能操作Excel的常用库对比1.xl
- 老生常谈的问题,大部分人也不一定可以系统的理解。Javascript语言对继承实现的并不好,需要工程师自己去实现一套完整的继承机制。下面我们
- 首先明确为什么要使用分页查询,因为数据庞大,查询不可能全部显示在页面上,如果全部显示在页面上,也会造成查询速度慢的情况,所以分页查询解决了①