.counterclockwise
Доброго времени суток! Не подскажете ли...

Допустим, мы определяем в css для элемента (допустим, для заголовка) цвет фона или рамки. Если содержимое этого элемента пусто (нет текста), то ie ничего не выводит - пустое место. firefox же, допустим, выводит пустой закрашенный указанным фоном квадратик, который довольно неопрятно выглядит. Вопрос, можно ли заставить ff действовать в подобной ситуации как ie?

Комментарии
22.01.2007 в 15:21

Cogito ergo sum
насколько знаю, ie и ff работают по разным алгоритмам. это разные броузеры. поэтому, скорее всего, не получится.
22.01.2007 в 20:34

Неисправимый оптимист
Главное правильно увидеть суть проблемы. Конечно IE, FF и Opera - имеют в своей основе различные платформы, посему к сожалению, а по мне - так к счастью, FF не поддерживает команду "работать как IE", за что его собственно и любят :)

Теперь к делу: вся разница в интерпретации значений внешних и внутренних отступов элементов (margin & padding) - IE и FF имеют разлчные значения этих параметров по-умолчанию. Кроме того - эти браузеры по-разному исчисляют ширину и высоту элементов, что также может быть причиной возникшей у вас нестыковки.

Как бороться: попробовать обнулить значения margin и padding для проблемного элемента, не задавать конкретную ширину или высоту - это как самое простое решение.
22.01.2007 в 21:29

fail better
Если проблема не исчезла, поставь вопрос конкретнее.



Есть спецификация CSS2.0, которая вышла почти 9 лет назад, а CSS1 недавно стукнуло 10. Если очень которко: отображение страничек Firefox и Opera намного более соответствует этой спецификации, чем IE. Обычный процесс вёрстки начинается со стандартов и заканчивается обточкой под конкретные версии браузеров.



Например, есть славный хак: если перед правилом поставить символ подчёркивания или пару слешей, это правило воспримет только IE — {margin:0;//margin:10px} — во всех кроме IE будет ноль.

22.01.2007 в 23:02

.counterclockwise
Tex, bokonist, Katze Спасибо!

Вообще да, проблема в отступах. В ie элемент без текста не показывается, ff показывает кусочек фона, обнесённый рамкой, как будто внутри есть пробел. (здесь, например, с заголовком поста: http://pay.diary.ru/~491/?comments&postid=21634819) Если убрать padding, проблема исчезнет, но появится другая - текст, если заголовок с текстом, будет налезать на края фона, некрасиво)) Как я понял, выходов (в рамках @d) два - избегать пустых элементов)) или применить хак со слешами... буду думать, надо попробовать последний вариант) Ещё раз спасибо.

23.01.2007 в 21:13

«...в памяти save'ом одно лишь признание, но форматирует наше сознание может быть вирус, а может - другая любовь...»(с)
bokonist, anesthesia: ещё именно для IE значение атрибута можно заключить в скобки, например margin: "0px";