作者:kun10
发布时间:April 17, 2011
分类:CSS
好久不写css真的感觉手生了,这两天做项目真是发觉自己又遇到了好多的问题。
比如首次遇到了猪头bug:)
这里我主要还是想说一下用css来实现鼠标移上元素显示浮层的效果的注意点
为了要兼容ie6并尽量的使用纯css来制作。
说几点tip(话说今天调试ie6很费劲)
1、a标签要使用hover伪类就要加上href属性
2、hover伪类要在ie6下面生效,就要注意a:hover的样式和a的样式要有差异性(小马其实早有总结过)
3、a里面不能够再嵌套a标签(算是常识吧,所以在ie6下面要实现hover显示的元素上面再使用hover效果,估计没戏)
还有一些问题和具体的场景有关,由于项目还在demo阶段,设计稿就先不透露了,估计过段时间可以放个图出来解释一下。
作者:kun10
发布时间:December 27, 2010
分类:CSS
今天做demo遇到了一个很让人困扰的问题。
页面的头部有一个搜索框,里面有一个表示浮出层的div。
<div class="grandfather">
<div class="father">
<div class="popup">
</div>
</div>
<div class="uncle">
<div class="uncle-popup">
</div>
</div>
</div>
基本就是上面的类似的html结构,为了达到浮层不被别的层遮盖的目的
我设定了一下css
.father {
position:relative;
z-index:4;
width:400px;
height:400px;
background:#CCC;
margin-bottom:-300px;
}
.popup {
position:absolute;
z-index:100;
width:100px;
height:200px;
background:#999;
}
可是没想到这样的样式在IE6下面居然被下面的元素给挡住了。
demo如下:地址http://lab.zipeng.info/ie6-position-zindex.html
查其原因,原来是uncle的div里面的元素也有z-index属性,虽然z-index的值比popup的值要小。但还是挡住了father里面的popup(这是关键)。
最后查阅了资料,发现ie67下面要对比两个不同级别的元素的z-index要逐级的向父元素查找。如果父元素没有可比性,那么后面的元素会无视前面的元素的z-index强行覆盖。所以这在IE67下面是要注意。
解决方式也很简单,给父元素加上z-index使他们具有可比性。
哎,在这个IE6走向灭亡的年代才发现这样的问题真是不应该啊~~~