Я в настоящее время в недоумении с этой конкретной проблемой HTML / CSS. У меня есть карусель, которая имеет два абсолютно расположенных элемента li с каждой стороны, чтобы обеспечить навигацию (предыдущее изображение / и следующее изображение). Эти два элемента li отображаются правильно во всех браузерах, кроме всех версий IE (7-9), однако в IE элементы li отображаются за основным элементом, даже если я даю им z-index.
Я, наверное, что-то упустил, так как это был конец дня, и я очень устал, но я не могу понять, почему это так.
Что делает эту проблему еще более странной, так это то, что элементы li отображаются правильно, если я дам им фон! Как только я даю им цвет фона, они появляются перед элементом
Я подозреваю, что это может быть ошибка в IE, так как я редко могу отладить файл CSS, однако, как я уже сказал, я очень устал.
Пожалуйста, игнорируйте значения непрозрачности и отображаемые значения, они изменяются с помощью jQuery. Они совершенно не имеют значения.
HTML:
<header id="carousel">
<div id="carousel-holder">
<div id="carousel-canvas" style="width: 2364px; ">
<figure id="more-business" class="">
<img>
</figure>
<figure id="more-money" class="active">
<img>
</figure>
</div>
</div>
<nav>
<ul id="arrow-nav">
<li id="carousel-arrow-previous"><a href="#previous" title="Previous" class="sprite">Previous</a></li>
<li id="carousel-arrow-next"><a href="#next" title="Next" class="sprite">Next</a></li>
</ul>
</nav>
</header>
CSS:
header#carousel {position:relative;width:790px;height:275px;margin:10px auto 0;padding:0;overflow:hidden;}
header#carousel div#carousel-holder {width:788px;height:250px;background:#fff;border:1px solid #999;border-radius:10px;margin:auto;padding:0;overflow:hidden;}
header#carousel div#carousel-canvas {position:static;height:250px;}
header#carousel div#carousel-canvas figure {display:block;position:static;float:left;width:788px;height:250px;border-radius:10px;margin:0;padding:0;overflow:hidden;}
header#carousel div#carousel-canvas figure img {width:788px;height:250px;}
header#carousel nav ul#arrow-nav {position:absolute;top:1px;left:1px;width:788px;height:250px;padding:0;margin:0;list-style-type:none;}
header#carousel nav ul#arrow-nav li {position:absolute;display:block;width:200px;height:250px;z-index:10;}
header#carousel nav ul#arrow-nav li#carousel-arrow-previous {top:0;left:0;}
header#carousel nav ul#arrow-nav li#carousel-arrow-next {top:0;right:0;}
header#carousel nav ul#arrow-nav li a {position:absolute;top:50%;margin-top:-35px;display:none;width:50px;height:70px;overflow:hidden;opacity:0;text-indent:-1000px;}
header#carousel nav ul#arrow-nav li#carousel-arrow-previous a {left:20px;background-position:-95px -156px;}
header#carousel nav ul#arrow-nav li#carousel-arrow-next a {right:20px;background-position:-153px -156px;}
EDIT
Я хотел сказать «li», а не «div»
UPDATE
Возможно, проблема не в HTML / CSS, так как мне удалось определить, что элемент отображается в передней части страницы. Проблема, кажется, происходит с jQuery. Функция mouseenter не срабатывает, когда я перемещаю мышь над элементом. Это известная ошибка в jQuery?
РЕШЕНИЕ
Я понял, в чем проблема. Это связано с hasLayout элементов, которые я упомянул. Поскольку у них прозрачный фон, событие jQuery не регистрируется, когда я на них наведу курсор мыши. Решением этой проблемы является установка прозрачного фона с изображением.
Пожалуйста, обратитесь к:
Mouseenter срабатывает только на границе прозрачного div в IE9
Спасибо за все ваши советы, и извините, что потратили ваше время.