Продолжая тему, затронутую в предыдущей заметке, я приведу один пример из книги А.Хоумера "Dynamic HTML: справочник", которая сейчас активно продвигается издательством Piter-Press. Речь идет о совместимости шрифтов для браузеров NN и MSIE при использовании тега <DIV>.
Небезызвестный в моем городе вебмастер сервера jeo.ru в своем комментарии справедливо заметил, что Netscape понимает тег DIV в сочетании с CSS-позиционированием, но при этом теряются свойства шрифта. Однако, решить эту проблему оказалось довольно просто.
Рассмотрим пример создания рельефной надписи.
<html> <head><title>3D title</title> <style> P { font-family: "Impact, sans-serif"; font-size:96; color=red } P.highlight { color:silver } P.shadow { color:darkred } </style>
<body bgcolor=#408080>
<div style="position:absolute; top:5; left:5; width:600; height:100; margin:10"> <P class=shadow>Be happy!</P> </div>
<div style="position:absolute; top:0; left:0; width:600; height:100; margin:10"> <P class=highlight>Be happy!</P> </div>
<div style="position:absolute; top:2; left:2; width:600; height:100; margin:10"> <P>Be happy!</P> </div>
</body> </html>
В Internet Explorer все выглядит именно так, как и было задумано,
но вот в Netscape куда-то пропадают заданные свойства шрифта (размер
и гарнитура).
Эта проблема касается только тех свойств, которые пишутся через дефис:
font-size, font-family. Кроме того, Netscape требует, чтобы шрифты
задавались по отдельности. Следовательно тег <STYLE> должен
выгдядеть так:
P { fontfamily: "Impact", "sans-serif"; fontsize:96; color=red }
Правда такую конструкцию не понимает уже Internet Explorer. Для достижения совместимости, нужно создать универсальный набор стилей. В нижеследующем примере первая часть работает в обоих браузерах и определяет цвет шрифта, вторая задает свойства для NN и третья для MSIE.
<style> P { color:red } P { fontfamily: "Impact", "sans-serif"; fontsize:96 } P { font-family: "Impact", "sans-serif"; font-size:96 } P.highlight { color:silver } P.shadow { color:darkred } </style>