Position:Relative/Absolute无法冲破的等级

前段时间记得好像是谁在群里提出了一个实在是让大家都觉得很不理解的一个问题:

<ul>
<li>第一块</li>
<li><span>第二块</span></li>
<li>第三块</li>
<li>第四块</li>
<li>第五块</li>
</ul>


如果我我们设定LI为position:relative;设置span为position:absolute;那么我们会发现无论SPAN的z-index值设置得再高都将永远在后面父级的下面。

*{margin:0; padding:0; list-style:none;}
li {width:100px; height:100px; margin:0 5px 0 0; background:#000; float:left; position:relative; z-index:1;}
li span {width:200px; height:100px; background:#c00; position:absolute; top:0; left:100px; z-index:1000;}


试一下很容易发现我们的子级,z-index的值达到了1000的被设定了position:absolut;子级都被档在了父级的下面。我想了很久,我觉得其根本问题是:设置同样的position:relative/absolute;同级标签之间的等级是无法用z-index超越的。我们上面的例子中的第一个LI的等级永远都要小于后一个LI的等级,所以我们在LI里的子级身上设置了position:absolute;,给了非常高的z-index值。

也许你会这样来想:只要针对有span的LI设置position:relative;不就好了吗?非常正确。当其它的LI都不设置position:relative;那么我们需要的那个子级就可以浮在所有的内容之上。但是如果实际上,所有的LI中都要有span,并且属性都需要一样怎么办?当然我们不大会需要有这样的效果。但是我们需要有这样的效果:子级全部是隐藏的,当有鼠标反应时出现并且浮在所有的内容之上。我们要知道,这确实是件让人头疼的事,因为我们上面见识到了,子级在显示的时候都被压在了下一个父级标签的下面。下面我们来实现一下这个鼠标反应的定位效果:

<ul>
<li><a href="" title=""><span>第一块</span></a></li>
<li><a href="" title=""><span>第二块</span></a></li>
<li><a href="" title=""><span>第三块</span></a></li>
<li><a href="" title=""><span>第四块</span></a></li>
<li><a href="" title=""><span>第五块</span></a></li>
</ul>


我们通过链接的鼠标事件来完成这个显示隐藏效果:

*{margin:0; padding:0; list-style:none;}
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}
li a {position:relative; z-index:1; display:block; height:100px; width:100px; background:#000;}
li a:hover {background:#000000;}
li span {display:none;}
li a:hover span {display:block; background:#c00; width:200px; height:200px; position:absolute; top:0; left:100px; z-index:1000;}

时间: 2024-09-20 13:51:20

Position:Relative/Absolute无法冲破的等级的相关文章

position:relative/absolute无法冲破的等级

前段时间记得好像是有人提出了一个实在是让大家都觉得很不理解的一个问题: <ul> <li>第一块</li> <li><span>第二块</span></li> <li>第三块</li> <li>第四块</li> <li>第五块</li> </ul> 如果我我们设定LI为position:relative;设置span为position:ab

position:relative/absolute无法冲破的等级_经验交流

第一块 第二块 第三块 第四块 第五块

position:relative absolute无法冲破

前段时间记得好像是谁在群里提出了一个实在是让大家都觉得很不理解的一个问题: <ul>  <li>第一块</li>  <li><span>第二块</span></li>  <li>第三块</li>  <li>第四块</li>  <li>第五块</li>  </ul>  如果我我们设定LI为position:relative;设置span为po

relative absolute无法冲破的等级问题解决第1/3页_经验交流

前段时间记得好像是谁在群里提出了一个实在是让大家都觉得很不理解的一个问题:  复制代码 代码如下: <ul>   <li>第一块</li>   <li><span>第二块</span></li>   <li>第三块</li>   <li>第四块</li>   <li>第五块</li>   </ul>          如果我我们设定LI为p

position的absolute和relative的应用详解

前老弄不明白,只能凭借一点短期内"虐出来的经验"制作需要的效果,后来仔细研究了一下Hutia的XScroller,并且仔细看了文档,才知道这个position属性其实是指本体对上级的定位.如果这么理解,就好办了. 默认的属性值都是static,静态.就不用多说了.最关键的是 relative(相对)以及absolute(绝对). 往往我们如果是COPY别人的代码,会把absolute属性与left.top配合起来制作相关的"悬浮层"效果.然而有时候我们需要针对某一个

css中position相对定位和绝对定位(relative,absolute)详解

在CSS中有这样的一个指令:(position) 在DW中文版中翻译为"定位",常用的属性有relative(相对)与 absolute(绝对). 有很多朋友对这条指令的用法还是不清楚,这里做一定细致的讲解: position:relative; 表示相对定位,被定位了这个属性的标签在所属的范围内可以进行上下左右的移,这里的移动与padding或是margin所产生的位置变化是不一样的.padding与margin是元素本身的一种边距与填充距离并不是真正的移动,而被定义为relativ

CSS定位position之static relative absolute float用法

1. position:static 元素的 position 属性默认值为:static,即该元素出现在文档的常规位置,不会重新定位. 通常此属性值可以不设置,除非是要覆盖之前的定义.  代码如下 复制代码 #div-1 {  position:static; } 2. position:relative 设置了 position:relative,便可以结合top . bottom. left . right 的属性来偏移其文档的常规位置. 例如将 div-1 向下移动 20 像素.向左移动

CSS制作网页:position:relative

文章简介:css心得之善用 position:relative. 可能是个人习惯吧,我个人在写css 样式的时候 position:relative 都很少用.不到逼不得已不用,因为这东西在面对IE大叔的时候总是会各种被推到,比如多个positon 嵌套的的时候 会产生 类似 z-index 优先级的失控,不知道其他coder们碰到过这个问题没?反正我是碰到不下1次了. 举个栗子如下:html 代码 节略写法,你懂的 ul.pp li 大宝 span 大宝的屁屁 li 二宝 span 二宝的屁屁

IE局部滚动条中元素position:relative或绝对定位滚动无效BUG

使用的样式与结构如下 .box{width:300px;height:200px;overflow-x:hidden;overflow-y:auto;} .box ul li{text-align:left;position:relative;line-height:1.3em;} .box ul li span{position:absolute;right:5px;top:0;} <div class="box">     <ul>     <li&g