IE6 + IE7 CSS проблема с переполнением: скрытый; - позиция: относительная; комбо
поэтому я создал слайдер для домашней страницы, который скользит по некоторым изображениям с заголовком и текстом тизера с помощью jQuery. Все работает нормально, и я пошел проверить IE и обнаружил, что IE 6 и 7 полностью убивает мой слайдер css. Я не могу понять, почему, но по какой-то причине я не могу скрыть неактивные слайды с overflow: hidden; я попытался настроить css взад и вперед, но не смог выяснить, что вызывает проблему.
я воссоздал проблему в более изолированном виде HTML-страница.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da" dir="ltr">
<head>
<style>
body {
width: 900px;
}
.column-1 {
width: 500px;
float: left;
}
.column-2 {
width: 200px;
float: left;
}
.column-3 {
width: 200px;
float: left;
}
ul {
width: 2000px;
left: -499px;
position: relative;
}
li {
list-style: none;
display: block;
float: left;
}
.item-list {
overflow: hidden;
width: 499px;
}
</style>
</head>
<body>
<div class="column-1">
<div class="item-list clearfix">
<ul>
<li class="first">
<div class="node-slide">
<img src="http://www.hanselman.com/blog/content/binary/lolcats-funny-pictures-leroy-jenkins.jpg" />
<div class="infobox">
<h4>Title 1</h4>
<p>Teaser 1</p>
</div>
</div>
</li>
<li>
<div class="slide">
<img src="http://www.hanselman.com/blog/content/binary/lolcats-funny-pictures-leroy-jenkins.jpg" />
<div class="infobox">
<h4>Title 2</h4>
<p>Teaser 2</p>
</div>
</div>
</li>
<li class="last">
<div class="slide">
<img src="http://www.hanselman.com/blog/content/binary/lolcats-funny-pictures-leroy-jenkins.jpg" />
<div class="infobox">
<h4>Title 3</h4>
<p>Teaser 3</p>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="column-2">
...
</div>
<div class="column-3">
...
</div>
</body>
</html>
я отследил, что это
ul {
position: relative;
}
на элементе ul, который вызывает переполнение: скрытый не работает, но почему это так, я не знаю. Также это необходимо, чтобы заставить слайдер javascript работать, используя левый атрибут на ul, чтобы сдвинуть его. Любые идеи о том, как вы можете это исправить, приветствуются.
2 ответа:
Это хорошо известная ошибка в IE6 и IE7. Чтобы решить ее, нужно добавить положение: относительно контейнера. Поскольку в вашем случае тело является контейнером, я бы предложил вам добавить div непосредственно под телом и дать ему положение:относительное. Это должно решить вашу проблему.
эта проблема, видимо,известная ошибка для IE 6 + 7, который был исправлен в IE8.
чтобы избежать этого, в этом случае можно заменить:
ul { left: -499px; position: relative; }
С:
ul { margin-left: -499px; }
это, однако, дало некоторые проблемы с фоном, который я использовал на infobox div, но ничего я не мог решить с помощью нескольких хаков стиля.