2013-02-27 69 views
1

我试图用纯css来设计组合框的风格,并找到一些教程并创建组合框。它在Chrome和Firefox上运行良好。z-index在IE8中不工作?

请看看我创建的样式。

http://jsfiddle.net/SnU3d/1

label 
{ 
    position:relative; 
    z-index:9999; 
} 


label:after 
{ 
    content:'?'; 
    font:11px "Consolas", monospace; 
    color:#009FDF; 
    font-size:120%; 
    pointer-events:none; 
    background: #fff; 
    border:1px solid #999; 
    width:30px; 
    height:24px; 
    margin-bottom:2px; 
    position:absolute; 
    border-left:0px; 
    right:-1px; 
    z-index:99; 
} 

我发现这方面的一些其他教程。 IE7/IE8 z-index problementer link description here

所以我把zindex设置为父标签的较高值,但仍然没有在IE8中出现after伪元素。为什么?如何显示后续内容?

+0

题外话,但你认为'font:11px ... font-size:120%'是做什么的? – 2013-02-27 20:54:39

+0

无论如何,首先要检查的是您的页面是否以标准符合模式呈现。在怪癖模式下,IE8恢复为较旧的渲染引擎,它不支持'content'和/或':after'。 – 2013-02-27 20:58:33

+0

@MrLister fontsize是为了使三角形显得稍大一点。我删除了字体:11px,在这里很抱歉。并且我正在以标准模式获取内容。唯一的问题是在z-index中。 – svk 2013-02-27 21:06:45

回答

0

:after伪元素创建你把它应用到(Label)元素的一个孩子,并分配给父(label),无论该值是z-index值,造成内,一个新的堆叠内容元素,所以最终会在堆叠上下文的级别9999中生成一个父元素(label),并在其自身堆栈上下文的级别99中生成一个子元素(label:after),父级(label)始终会为其生成作为背景(底部)。