Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Min-width в IE6 без JavaScript

Для меня оказалось сюрпризом, что min-width в Internet Explorer 6 и ниже можно эмулировать стилями, без обычного, в данном случае, JavaScript (в IE7 min-width работает). Оцените фокус:

CSS-файл:

/* min-width для остальных браузеров */
body {margin:0;padding:0;}
.outer {
  background-color:red;
  margin:0 auto;
  min-width:600px
}

/* стили для IE6 */
* html .outer {padding-left:600px}
* html .minwidth {height:0} /* holy hack для IE, что бы включить свойство hasLayout */
* html .container {margin-left:-600px;position:relative; height:0}

HTML:

<div class="outer">
<div class="minwidth">
<div class="container">
Блок с min-width 600 пикселей.
</div>
</div>
</div>

Первоисточником решения, по всей видимости, является статья Stu Nicholls на сайте CSSPlay.

8 комментариев
gluek.info 2007

Спасибо, положил в копилку

enternet.livejournal.com 2007

Holly hack. 8-)

Евгений Степанищев (bolknote.ru) 2007

Угу, он так и называется :) Просто долгое время никто не знал почему это работает :)

evildoerizm.livejournal.com 2008

Спс. =-)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для evildoerizm.livejournal.com:

Welcome :)

voro.mp 2009

Спасибо за пример и ссылку. В IE6 данный способ не заработал, а вот способ Stu Nicholls’а как раз да.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для voro.mp:

Пожалуйста :)

savvateev.org 2010