Проблема: все браузеры кроме IE отображают второй бокс этой страницы правильно (правый край бокса должен быть возле правого края окна браузера). А этот долбаный Internet Explorer не хочет воспринимать свойство "right: 0;" или чего еще он там не воспринимает. В итоге в IE нормально отображаются только боксы, текст в которых расположен более чем на одну строке. Боксы, в которых текста мало (как в приведенном выше примере) отображаются в IE криво.
Вопрос: Можно ли решить эту проблему не прибегая к табличной разметке? Скажу сразу, что поиски в Интернет особо ни к чему не привели - в статьях про CSS, косяки браузеров и т.п. редко затрагивается тема верстки HTML-страниц нефиксированной ширины, да и Google не дает ничего хорошего.
Заранее спасибо за ответы...
Тоже неоднократно сталкивался с кривостью CSS в IE15.01.04 13:10 Автор: amirul <Serge> Статус: The Elderman
> Проблема: все браузеры кроме IE > отображают второй бокс этой страницы правильно (правый край > бокса должен быть возле правого края окна браузера). А этот > долбаный Internet Explorer не хочет воспринимать свойство > "right: 0;" или чего еще он там не Он не воспринимает два разных позиционирования (left и rigth) по горизонтали. То бишь он может позиционировать или так или так, но не одновременно (а то что можно просто растянуть - в микрософте не знают). По моему единственный нормальный выход - пользоваться свойством width. Если задать ширину в процентах - будет не так уж и рогато, в крайнем случае можно сделать JS, который будет вычислять фиксированную (в px) ширину поля. Пара right/width работает нормально
По поводу ширины в процентах, то я это уже пробовал...15.01.04 13:20 Автор: alien <Андрей> Статус: Member
По поводу ширины в процентах, то я это уже пробовал. Поскольку левый бокс имеет фиксированную ширину, то при разных размерах окна получается, что правый бокс либо уходит за границы окна, либо не дотягивается до нее. Вобщем очень некрасиво получается.
Насчет JavaScript у меня уже была мысль, но не хотелось бы в самом начале создания сайта начинать все делать через %опу.
А в чем состоит кривость?15.01.04 12:28 Автор: Ktirf <Æ Rusakov> Статус: Elderman
IE5, IE6, Firebird 0.7, Opera 7.23 - во всех раскладка очень похожа. И во всех right:0 воспринимается почему-то как сколько-то пикселов (165?) правее правой границы клиентской области браузера.
Цитата из спецификации CSS2:15.01.04 13:11 Автор: alien <Андрей> Статус: Member Отредактировано 15.01.04 13:12 Количество правок: 1
> IE5, IE6, Firebird 0.7, Opera 7.23 - во всех раскладка > очень похожа. И во всех right:0 воспринимается почему-то > как сколько-то пикселов (165?) правее правой границы > клиентской области браузера.
Цитата из спецификации CSS2:
'right'
...
Это свойство специфицирует, насколько смещён влево правый край содержимого бокса относительно правого края содержащего блока.
Именно так и делают Opera, Mozilla и т.п.
IE @#$ит это свойство. По идее, эта проблема могла бы быть решена чем-нибудь, вроде width: 100% - 140px. Но к сожалению вычисление выражений недоступно в CSS2.
Вот и вопрос состоит в том, есть ли какой-нибудь прием, который все же заставит IE отображать правильно страницу.
Есть одна мысля - кривовато, но все же...15.01.04 13:40 Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 15.01.04 13:42 Количество правок: 1
> Это свойство специфицирует, насколько смещён влево правый > край содержимого бокса относительно правого края > содержащего блока. > Именно так и делают Opera, Mozilla и т.п. Гм. Я, наверное, чего-то не понимаю, но у меня они делают не так :(
Update: все, я понял что у меня было не так, я уже успел покорежить код, в частности добавить в него width:100%; %-)
Мысля же состоит в следующем: сделать один DIV с position:absolute; width: 100%; left: 0px;, а в него положить те DIV'ы, которые у тебя, уже без position:absolute;, но левый - с float:left;. Проблема в том, что при этом, если в левом слое строк меньше, чем в правом, то правый "выльется" налево там, где закончится левый слой. В случае конкретного контента это может не проявляться.