Максим Покровский

— Привет, меня зовут Максим Покровский. Вы находитесь в моем рабочем кабинете. Поскольку я фрилансер, будем считать, что именно так он и выглядит. Здесь я пишу много интересных вещей, и если вы почувствовали, что я именно тот человек, который вам нужен, то я всегда открыт для контакта.

Сейчас работаю над:


  • Разработка одного стартапа

    Текущий статус - разработка дизайн.

  • Много всего для popsop.com

Заказать мне работу
16.10

Некоторые моменты эмуляции min-width и max-width для IE 6

Комментарии (5) CSS

Момент один

Это самый распространенный и рабочий вариант:

#block{
  width:expression((document.documentElement.clientWidth< =1000)?'1000px':'auto');
  }

Аналогично эмулируется и max-width.
Если же вы используете метод document.body вместо documentElement, то следите за тем чтобы у этого самого body были обнулены padding и margin, иначе вы рискуете сильно сжечь мозг IE. Хотя я пока не нашел моментов, в которых бы не работал documentElement.

Момент 2

В обсуждении поста neutrino uggallery предложил заменить expression на JavaSrcipt и привязать его обработку на конкретные события . Лично я против таких шаманств, но все же лучше иметь несколько вариантов.

<!--[if lte IE 6]>
<script type="text/javascript">
window.attachEvent('onload', mmwidth);
window.attachEvent('onresize', mmwidth);
function mmwidth(){
  document.getElementById('wrap').style.width = ((document.documentElement.clientWidth || document.body.clientWidth) < 990) ? '190px' : ((document.body.clientWidth > 1280) ? '1000px' : '1000px');
};
</script>
< ![endif]-->

Момент три

И напоследок находка месяца - решение найденное ifman. Полностью на css.
к сожалению ссылки ни источник он не указал.

<div id="outer">
   <div class="minwidth">
         <div class="container">
            Контент
         </div>
   </div>
</div>
#outer{
   background:red;
   min-width: 900px;
   }

* html #outer {
   padding-left: 900px;
   }

* html .minwidth {
   height: 1%;
   }

* html .container {
   margin-left: -900px;
   position: relative;
   height: 0;
   }

Рабочий пример

Метки:,

Комментарии

  1. 1
    Dimox (19.10.2007) #

    Последний вариант я уже где-то встречал, и, как и в прошлый раз, это не работает в ИЕ - текст прибит к левому краю. Покажите работающий он-лайн пример.

  2. 2
    gordi (20.10.2007) #

    Как продолжение к “моменту три”

    max-width и min-width в IE6. Решить за 60 секунд

  3. 3
    le`Mur (21.10.2007) #

    Dimox

    Последний вариант я уже где-то встречал

    Было бы неплохо найти линк на оригинал. В IE работает, скоро выложу пример.

    gordi
    Надо потестить и с вашего позволения тогда сделаю апдейт с ссылкой на первооткрывателя :)

  4. 4
    gordi (21.10.2007) #

    Нет проблем :)

  5. 5
    Sir Michael (04.11.2007) #

    Первоисточник решения с div’ами:
    http://www.cssplay.co.uk/boxes/minwidth.html

Оставить комментарий

Вы можете использовать простые теги форматирования HTML (вроде <a>, <ul> and others). Чтобы вставить пример код, используйте
<code lang="php">$a = "hello";</code> (поддерживаемые языки: ruby, php, yaml, html, css, csharp, javascript). Также Вы можете использовать <code>$a = "hello";</code>, синтаксис не будет подсвечен. Если вы не хотите использовать тег <code>, замените символ < на &lt;

Canon объектив фотоаппарат continent штатив.

— Как предоплата мобилизует отоношения - так и и гибкость в отношениях позволяет зарабатывать больше
комментарий заказчика к статье http://pokrovskii.com/predoplata-i-druzya

Rambler's Top100