min-width для IE
02 Sep, 2005ДваТри способа как это можно сделать в ИЕ...
min-width по нормальному
Это очевидно, так должно быть, это должно работать:- #min-width {
- min-width:600px;
- }
Вступление
Здесь и дальше я буду укрощать(задавать минимальную ширину) блок #min-width.Метод 1: JavaScript
Вот такой простенький кусок CSS (перемешанного с JS) решает проблему..- #min-width {
- min-width:800px;
- width:expression(document.body.clientWidth < 770? "770px": "auto" );
- }
- * html #min-width {
- width:expression(document.body.clientWidth > 770? "100%" :"770px");
- }
ВАЖНО
Однако помните, что первый метод при некоторых Доктайпах вызывает подвисание IE WinXP SP1 при ресайзах окон. Смена доктайпа и еще пару примочек помогает. Например переход XHTML на HTML спасает. Вот тут читайте подробнее - min-width, max-width re-hacked.Метод второй: два обертывающих DIV
Этот метод потребует добавления в код двух дополнительных DIV. Примерно так:- <div id="min-width">
- <div class="minwidth">
- <div class="container">
- tut ku4a texta
- </div>
- </div>
- </div>
- /*для всех броузеров что понимают min-width */
- #min-width {
- width:50%;
- min-width:400px;
- }
- /* для IE */
- * html .minwidth {
- border-left:400px solid #fff;/*min-width*/
- position:relative;
- float:left;
- z-index:1;
- }
- * html .container {
- margin-left:-400px; /*-min-width*/
- position:relative;
- float:left;
- z-index:2;
- }
Update: Метод 3: JavaScript
Для простоты приводимого кода я сделаю min-width для тэга body. Если необходимо реализовать для какого то блока - достаточно задать ID и использвать getElemetById.Вобщем достаточно проинклюдить в страницу вот такой скрипт:
- var d = document;
- var winIE = (navigator.userAgent.indexOf("Opera")==-1 && (d.getElementById && d.documentElement.behaviorUrns)) ? true : false;
- function bodySize(){
- if(winIE && d.documentElement.clientWidth) {
- sObj = d.getElementsByTagName("body")[0].style;
- sObj.width = (d.documentElement.clientWidth<760) ? "760px" : "100%";
- }
- }
- function init(){
- if(winIE) { bodySize(); }
- }
- onload = init;
- if(winIE) { onresize = bodySize; }
51 комментариев к “min-width для IE”