Кроссбраузерный min-width, max-width и min-height, max-height}
min-width - позволяет установить минимальную ширину элемента.
Суть проблемы в том, что наш "любимый" Ie6 не понимает эти свойства. Ниже опишем несколько кроссбраузерных способов.
Первый способ
Второй способ
Третий способ
<div class="minwidth">
<div class="container">
Блок с min-width 100 пикселей.
</div>
</div>
</div>
body {margin:0;padding:0;}
.outer {
background-color:red;
margin:0 auto;
min-width:100px
}
/* стили для IE6 */
* html .outer {padding-left:100px}
* html .minwidth {height:0} /* holy hack для IE, что бы включить свойство hasLayout (можно zoom:1) */
* html .container {margin-left:-100px;position:relative; height:0}
Четвертый способ
Четвертый способ предполагает использовать Javascript (данный скрипт поддерживает min-width; max-width; min-height; max-height)
Что касается max-width; min-height; max-height, - эти свойства работают точно по такому же принципу. Единственное,стоит упомянуть об одновременном использовании максимальной и минимальной ширины и высоты. Обычно в таких случаях используются expression (для IE6). Как всегда могут возникнуть подвисания браузера. Ниже приведены 2 варианта реализации.
window.attachEvent("onload", mmwidth);
window.attachEvent("onresize", mmwidth);
function mmwidth(){ document.getElementById("wrap").style.width = (document.body.clientWidth < 400 ? "400px" : (document.body.clientWidth > 800 ? "800px" : "100%")) };
</script>
Вариант через Javascript более предпочтительный с точки зрения производительности, но заставляет писать лишние строчки кода.
Какой способ выбрать? Хороший вопрос? Конечно стоит смотреть на задачу и однозначно сказать очень трудно. В большинстве случаев используем expression. Но Все способы имеют право на жизнь:)
Дерзайте))) А лучше ВЕРСТАЙТЕ)))
Комментарии:

