IE7下z-index失效

看代码:

HTML

                <div class="select-wrap">
                    <div class="select-name">院系</div>
                    <div class="arrow"><img src="./img/arrow.png"></div>
                    <span class="selected-text"></span>
                    <div class="select">
                        <ul>
                            <li><a href="javascript:void(0);">院系1</a></li>
                            <li><a href="javascript:void(0);">院系2</a></li>
                            <li><a href="javascript:void(0);">院系3</a></li>
                        </ul>
                    </div>
                </div>
                <div class="select-wrap">
                    <div class="select-name">类型</div>
                    <div class="arrow"><img src="./img/arrow.png"></div>
                    <span class="selected-text"></span>
                    <div class="select">
                        <ul>
                            <li><a href="javascript:void(0);">类型1</a></li>
                            <li><a href="javascript:void(0);">类型2</a></li>
                            <li><a href="javascript:void(0);">类型3</a></li>
                        </ul>
                    </div>
                </div>

CSS

.select-wrap{
    position: relative;
    width:288px;
    height:34px;
    margin-top: 15px;
    border: 1px solid #cdcbcb;
}
.select-name{
    float:left;
    width:48px;
    height:34px;
    line-height: 34px;
    text-align: center;
    color:#7b7979;
    background-color: #e6e6e6;
}
.selected-text{
    display: inline-block;
    float:left;
    width:190px;
    height:34px;
    font-size: 14px;
    padding-left: 10px;
    line-height: 34px;
}
.arrow{
    float:left;
    width:32px;
    height:16px;
    /*border: 1px solid red;*/
    margin-top: 10px;
    text-align: center;
    border-right: 1px solid #a8a8a8;
}
.arrow img{
    cursor: pointer;
    vertical-align: middle;
    margin-top: -8px;
    *margin-top:-3px;
}
.select{
    position:absolute;
    z-index: 10;
    top:34px;
    right:-1px;
    width:210px;
    background-color: #fff;
}
.select ul{
    border: 1px solid #a8a8a8;
    border-top:0;

}
.select li:hover{
    background-color:#a8a8a8 ;
}
.select li a{
    display: block;
    height:20px;
    line-height: 20px;
    padding-left: 10px;
    font-size: 14px;
}

正常情况下,Chrome,FF:

IE7及360兼容模式下:

原因:ie中子元素的优先级要取决于其父元素的优先级,需要设置父元素的z-index

解决方法:因为有两个同一class的div,绝对定位的ul的父元素就是.select-wrap,但是如果给两个.select-wrap设置一样的z-index值,还是没有效果,因为ul要遮挡的下面的元素仍然是.select-wrap,也就是说ul的父元素的优先级和下面要遮挡的元素的优先级相同,仍然无效,解决方法就是给两个select-wrap设置不同的z-index值即可.

时间: 2024-11-02 20:46:08

IE7下z-index失效的相关文章

ie7下z-index失效问题解决方法

绝对定位元素的“有定位属性(relative或absolute)的父元素”在渲染层次时起到了主要作用,前面的被后面的覆盖了.解决办法就是给有定位属性的父元素设置z-index 解决办法: 父级元素加上position:relative;并设置z-index. 父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index. <div style="position:relative;z-index=2"> <p style="pos

ie7下z-index失效问题解决方法(详细分析)

绝对定位元素的"有定位属性(relative或absolute)的父元素"在渲染层次时起到了主要作用,前面的被后面的覆盖了.解决办法就是给有定位属性的父元素设置z-index 解决办法: 父级元素加上position:relative;并设置z-index属性.父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index. <div style="position:relative;z-index:2;"> <p sty

IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题

(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在父标签中加入overflow:hidden:或zoom:100%示例代码: 不正常显示 ul{} li{ list-style:none; float:left; margin:10px;} 1. 你会发现左边10px 变成20px了, 解决办法:在li的CSS中加入:display:inline

【css】a:hover 设置上下边框在 ie6 和 ie7 下失效

前段时间在写样式的时候发现了这个问题,虽然当时就解决了这个 bug 不过还是记录下,以免再次出现这样的问题. demo 代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"

ie6和ie7下z-index bug的解决办法

一.匆匆带过的概念 关于CSS中层级z-index的定义啊什么的不是本文的重点,不会花费过多篇幅详细讲述.这里就简单带过,z-index伴随着层的概念产生的.网页 中,层的概念与photoshop或是flash中层的概念是一致的.熟悉photoshop或是flash的应该知道,层级越高(图层越靠上),越在上 面显示,如果层发生重叠,层级高的会覆盖层级低的,如果非透明或半透明,则会遮挡. 在photoshop中,层的高低就是靠手动调的,鼠标拖拽,或是ctrl+]或是ctrl+shift+[快捷键改

IE6/IE7下绝对定位position:absolute和margin的冲突问题解决

首先我们来看一个代码: 复制代码代码如下:<div id="layer1″ style="margin:20px; border:1px solid #F88; width:400px; "> <div id="layer2″ style="position:absolute; background-color:#ccc;">Absolute (layer2)</div> <div id="la

数据库----问题1:数据库索引底层是怎样实现的,哪些情况下索引会失效?

什么是索引: 一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree).索引是在表的列上创建.所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中.请记住记住这一点:索引是一种数据结构 . 哈希索引的缺点: 优点:在寻找值时哈希表效率极高,如果使用哈希索引,对于比较字符串是否相等的查询能够极快的检索出的值. 缺点:哈希表是无顺的数据结构,对于很多类型的查询语句哈希索引都无能为力.比如无法查询所有小于40岁的员工.因为哈希表只适合查询键值对-也就是说查询相等的查

关于ie7下display:inline-block;不支持的解决方案

关于ie7下display:inline-block:不支持的解决方案 今天码的时候遇到这个问题了. 如果本身是内联元素的,把它的display属性设置设置为inline-block时,所有浏览器都是支持的. 相反,如果本身是块级元素的,把它设为display:inline-block;  那么ie6/ie7都是不支持的. IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了d

ie7下设置z-index无效如何解决?

ie7下z-index无效的问题之前做练习的时候遇到过,百度解决掉之后就丢脑后了.今天项目中又发现这个bug,无奈又去百度,这次还是记下来,节省了百度的时间还能小装一把... 需求是这样的: 页面中的两个层默认隐藏,点击这个层的展开图标时要把这个层显示出来,点收起的时候再把这个层隐藏,因为两个层是上下排列,所以点击展开的时候正常的显示应该是这样的,如下(丑)图: 实现的代码我也贴一部分上来,逻辑就是点哪个层,哪个层的z-index值在原来的基础上加高点 $isSales.append($('<e

最后一个对象属性后边不要加豆号的bug,血淋淋的教训啊,模块化开发IE7下的严重错误,养成好习惯

最近总是写滚动图效果,重复的劳动后,决定写一个滚动图的封装插件.结果写完后在其他浏览器都可以用,却IE7下毫无反应.反复测试各种检查后,发现竟然是在参数对象最后一个属性后多加了个逗号,结果就死在了IE7下,吐血啊,也感慨下自己的基本功不扎实啊. define(function(require){ //插件内部 设置默认参数    require('jquery');        var defaultConfig = {        eleFather: null,  //容器标签 父元素