Я боролся с проблемой z-index в проекте и одна вещь, которую я заметил, что современные браузеры будут запускать поведение z-index для плавающих элементов, а также для элементов, которые имеют позицию: относительную или абсолютную.Это, кажется, противоречит спецификации W3C, которая гласит:
"Применяется к: элементам со свойством 'position' типа 'absolute' или'lative '."
Вот тестовый пример:
CSS:
#tabContent{
border:1px solid #ccc;
padding:15px;
margin-top:-1px;
margin-bottom: 1.5em;
background: #fff;
}
p.tabHolder {
overflow: hidden;
height: 1%;
margin: 14px 0 0px 0;
}
p.tabHolder a {
display: block;
margin:0 2px 0 0;
padding: 6px 11px;
float: left;
background: #eee;
border:1px solid #bbb;
}
p.tabHolder a.active {
background-color: #fff;
border-bottom-width:0px;
color:#333;
padding-top: 7px;
z-index: 100;
}
HTML:
<p class="tabHolder">
<a class="active" href="#">Foo</a>
<a href="#">Bar</a>
</p>
<div id="tabContent">
<p>Lorem ipsum</p>
</div>
Если вы загрузите его в IE8 и переключите кнопку просмотра совместимости, вы увидите, что в IE8 работает z-index, но в IE-7 это не так.
Может кто-нибудь объяснить это?