Продолжая тему, затронутую в предыдущей заметке, я приведу один пример из книги А.Хоумера "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>