Итак, вот еще одна проблема с z-индексом в IE7, с которой я столкнулся. Я нашел объяснение проблемы еще где, но без исправления.IE возвращает неверный индекс z
Когда у вас есть позиционированный элемент с встроенным z-индексом 0, javascript не возвращает правильный z-индекс. Если z-index установлен в элемент в таблице стилей, он вместо этого вернет z-index. Я получаю тот же результат, используя jQuery.
Сделать HTML-файл со следующим:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('button').click(function(){
alert($('#mainBox').css('zIndex'));
});
});
</script>
<style type="text/css">
#mainWr {
position: relative;
z-index: 2;
border: 1px solid #333;
width: 200px;
height: 200px;
}
#mainBox {
z-index: 1;
border: 1px solid #555;
width: 100px;
height: 100px;
position: absolute;
top: 50px;
left: 50px;
}
</style>
<div id="mainWr">
<div id="mainBox" style="z-index: 0;"></div>
</div>
<br />
<button type="button">Show #mainBox z-index</button>
Open, что в IE7. Проблема не существует в IE8.
Я jsfiddled, если у вас есть IE7, в противном случае вам нужно будет использовать код и отобразить его с любым методом, который используется для эмуляции IE7:
http://jsfiddle.net/dalelarsen/DndnM/
Я не знаю ни решений. Любые комментарии приветствуются.
Я не заметил эту ошибку. Да, вы должны передать точное имя стиля так же, как и записать его в файле CSS. Была ли причина, по которой вы считали, что 'zIndex' будет работать? – Brad
@Brad, выше это новый сценарий, который я написал. Прежде чем я использовал jcuery .css(), что позволяет принимать zIndex, потому что camelCase - это то, что использует javascript. Javascript не может иметь дефисы в именах переменных и объектов. Мой скрипт не полагается на браузер, возвращающий текущий текущий стиль, он получает только то, что находится в атрибуте style для элемента. В моем сценарии у меня просто не было времени для регистрации camelCase. – UpHelix