2011月

z-index 属性用法与实例

SEO/网站推广, 前端开发DIV+CSS

最近在做定义元素顺序的时候,看到z-index属性,看一些资料在这里整理下与大家分享。

定义和用法
zIndex 属性设置元素的堆叠顺序。

该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。

语法:
Object.style.zIndex=auto|number

可能的值
值             描述
auto         默认。堆叠顺序与父元素相等。
number    设置元素的堆叠顺序。
 
提示和注释
注释:元素可拥有负的 z-index 属性值。
注释:Z-index 仅能在定位元素上奏效(例如 position:absolute;)!

说明
z-index属性适用于定位元素(position 属性值为 relative 或 absolute 或 fixed的对象),用来确定定位元素在垂直于显示屏方向(称为Z轴)上的层叠顺序(stack order)。

每一个定位元素都归属于一个stacking context。根元素形成root stacking context,而其他的stacking context则由定位元素产生(此定位元素的z-index被定义一个非auto的z-index值),定位子元素会以这个local stacking context为参考,用相同的规则来决定层叠顺序。并且stacking context和 containing block 之间并没有必然联系。

当stacking context一样的时候,就用z-index的值来决定怎样显示,如果z-index也相同(即stack level相同),则按照档中后来者居上的原则(back-to-front )的顺序来层叠。

当任何一个元素层叠另一个包含在不同stacking context元素时,则会以stacking context的层叠级别(stack level)来决定显示的先后情况。也就是说,在相同的stacking context下才会用z-index来决定先后,不同时则由stacking context的z-index来决定。例如:

定位元素A(z-index:100)里面有定位元素A1(z-index:300),而定位元素B和元素A兄弟关系(z-index:200)。你会发现无论A1的z-index是多大,也会被z-index是200的B所覆盖,因为A的z-index只有100。

实例
本例改变元素的堆叠顺序:

<html>
<head>
<style type=”text/css”>
#img1
{
position:absolute;
left:0px;
top:0px;
z-index:-1
}
</style>
<script type=”text/javascript”>
function changeStackOrder()
{
document.getElementById(“img1″).style.zIndex=”1″;
}
</script>
</head>
<body>
<h1>This is a Heading</h1>
<img id=”img1″ src=”bulbon.gif” width=”100″ height=”180″>
<p>Default z-index is 0. Z-index -1 has lower priority.</p>
<input type=”button” onclick=”changeStackOrder()”
value=”Change stack order” />
</body>
</html>


分享到:



No comments

星期四, 11月 20th, 2008 | 分类:SEO/网站推广, 前端开发DIV+CSS | RSS 2.0 | 留言/评论 | Trackback

留言