Team Zodios
75 повідомлень
#16 років тому
Вопрос к опытным верстальщикам.
Используете ли вы expression для фикса багов IE6(min-widht,max-width)?
Какая альтернатива?
Константин Д.
390 повідомлень
#16 років тому
Привет, Zodios.
Исользовал пару раз. Это не вариант на мой взгляд.
Альтернатива, если можно так сказать, это использование margin, и width в %%.
Могу дать ссылку, на реализованный проект таким образом.
Стучи в icq.
Team Zodios
75 повідомлень
#16 років тому
Цитата:
Альтернатива, если можно так сказать, это использование margin, и width в %%.

Если это то о чем я подумал, то в ситуации когда есть резиновый колоночный дизайн и нужно чтоб при разрешении экрана меньше 1024 появлялась горизонатальная полоса прокрутки, этот способ создает кучу нежнужных блоков и не всегда работает. Или это не то?
Михаил В.
2195 повідомлень
#16 років тому
При правильном использовании (одноразовые expressions кроме min-/max-, conditional comments) - быть. Альтернативы - теговый мусор.
Кроме min-width/max-width еще одна причина - :after/:before/:first-child.
Константин Д.
390 повідомлень
#16 років тому
Вот пожалуйста, Zodios использование expression только для IE, все остальное теговый мусор, как выразился Sir_Michael
Сайт:
Стили:
Дмитрий П.
441 повідомлення
#16 років тому
Присоединяюсь к Sir Michael - при правильном использовании быть.

Я, правда, :after/:before/:first-child стараюсь не использовать в данный момент, предпочитаю подзагадить HTML-код соответствующим классом, если очень нужно. А вот для min-width и max-width в IE 6 другого (столь же удобного и лаконичного) решения не знаю.
Естественно, в этом случае экспрешн прячется за css-фильтром (* html ...).

Насколько я помню, полноценная эмуляция min-width и max-width в IE6 требует адовых плясок с бубном вокруг отрицательных margin'ов и избыточного HTML-кода. Еще и в макетах из реальной жизни, а не из примеров, не всегда применима.
Team Zodios
75 повідомлень
#16 років тому
2franky
Мне больше нравится способ через !important


2Sir_Michael
Одноразовое использование подразумевает эксперешен который один раз выполняется и не пересчитывается при любых изменениях?
Буду благодарен за ссылку где показано как это реализовать.

2sukebe
Экспрешен лучше прятать в отельный стиль который выдается через условный комментарий.
Зачем скармливать остальным браузерам ненужные вещи?

2sytrus
min/max-width через експрешен имеет свои недостатки:
Дмитрий П.
441 повідомлення
#16 років тому
Цитата ("Zodios"):
2sukebe
Экспрешен лучше прятать в отельный стиль который выдается через условный комментарий.
Зачем скармливать остальным браузерам ненужные вещи?

Чтобы не плодить сущности. Когда одна и та же директива (но для разных браузеров) находится в нескольких местах - это pain in the ass при модификации верстки.
Дмитрий П.
441 повідомлення
#16 років тому
Вдогонку. Чтобы экспрешн не подвисал, надо делать вот так:
width: expression((document.getElementById('my-element-id').clientWidth) > 699 ? "700px": "100%");

В примере приведена эмуляция max-width, если кому-то не совсем ясно.
Сергеевич А.
791 повідомлення
#16 років тому
Быть!

используем
Михаил В.
2195 повідомлень
#16 років тому
Zodios
Цитата:
Буду благодарен за ссылку где показано как это реализовать.

+ по ссылкам оттуда. Какие-то идеи были и на webo.in

Цитата:
min/max-width через експрешен имеет свои недостатки:

Какие?

Чтобы ничего не падало:


Практика:
1. Каким бы "резиновым" не был макет, если есть min-width - всегда задавать и max-width, чтобы контент был читаемым на больших разрешениях.
2. Верстка "плохих" макетов. Пример - криворукий "дизайнер" сделал psd с статической шириной 1024px (сплошь и рядом), прямого контакта с разумом "дизайнера" нет, лечим:

#page {width:expression((document.compatMode && document.compatMode == 'CSS1Compat') ? (document.documentElement.clientWidth < 996 ? "996px" : (document.documentElement.clientWidth > 1024 ? "1024px" : "100%")) : (document.body.clientWidth < 996 ? "996px" : (document.body.clientWidth > 1024 ? "1024px" : "100%")));}