Опубликован: 10.12.2007 | Уровень: специалист | Доступ: платный
Лекция 3:

Статическое содержимое

3.4. Альтернатива: таблицы стилей

Основные расширения для оформления в Mozilla относятся к модели представления документа в виде блоков из CSS 2. Эта модель описывает, как блоку с содержимым можно присвоить прямоугольную границу. К этой границе уже можно применить простые стили линий. Mozilla поддерживает границы ,принятые в CSS 2, однако некоторые стили для них не работают.

Расширения Mozilla позволяют создавать даже еще более интересные границы. У границ могут быть не только прямые углы, и они бывают разных цветов. Границы вдоль длины блока могут быть прозрачными. В таблице 3.1 перечислены эти расширения.

Таблица 3.1. Расширения стилей для границы блоков
Свойство или селектор Значения Описание
-moz-border-radius Как и для внешних полей, можно использовать только значения в пикселах Определяет скругленность углов границы или контура
-moz-border-radius-topleft -moz-border-radius-topright -moz-border-radius-bottomleft -moz-border-radius-bottomright В пикселах Скругленность или спрямленность одного заданного угла границы. Одноцветные границы искривляются, у многоцветных линии образуют скошенный угол
-moz-border-bottom-colors -moz-border-top-colors -moz-border-left-colors -moz-border-right-colors Список цветов, ключевое слово "transparent", особые значения цвета CSS 2 Цвета для одной заданной стороны границы. Можно указывать любое число цветов, каждому из них будет выделена полоска шириной в пиксел. Последний цвет заполняет оставшееся свободное место, если оно есть

Эти расширения требуется пояснить. В Mozilla есть два независимых расширения стилей границ, вместе они не работают. В листинге 3.3 приведены этих расширений.

#box1 {
  border:solid thick;
  border-width:20px; margin:20px; padding:20px;
  border-color:gray;
  -moz-border-radius-topright: 20px;
  -moz-border-radius-bottomright: 40px;
}
#box2 {
  border:solid thick;
  border-width:20px; margin:20px; padding:20px;
  border-top-color : gray;
  -moz-border-right-colors :
  #000000 #101010 #202020 #303030
  #404040 #505050 #606060 #707070
  #808080 #909090 #A0A0A0 #B0B0B0
  #C0C0C0 #D0D0D0 transparent #000000;
  -moz-border-bottom-colors :
  #000000 #101010 #202020 #303030
  #404040 #505050 #606060 #707070
  #808080 #909090 #A0A0A0 #B0B0B0
  #C0C0C0 #D0D0D0 transparent #000000;
}
Листинг 3.3. Примеры стилей границ в Mozilla

С помощью первого расширения мы получим скругление углов, но граница должна быть сплошного цвета. При этом поддерживаются некоторые стили границ из CSS 2 (например, double ), но не все. Второе расширение позволяет раскрашивать границы в разные цвета. В этом случае граница рисуется как несколько концентрических линий шириной в один пиксел. Каждая линия рисуется своим цветом, цвета берутся из заданного списка. Рисование начинается с внешнего края границы. Если список заканчивается, последний цвет из него используется для закрашивания оставшейся части границы. Попытки использовать для многоцветной границы скругление приведут к тому, что углы будут выглядеть обрезанными, а не скругленными. На рисунке 3.4 показаны результаты применения этих стилей.

Используя эти расширения, можно получить "зубчатые", неодинаковые углы границ, но это следствие плохого кода на XUL, а не фундаментальная ошибка в Mozilla.

Некоторые из этих стилей также применимы к контурам из CSS 2. Поддержка контуров в Mozilla описывается в "Формы и меню" , "Формы и меню".

Mozilla также содержит расширения стилей для изображений. Свойство list-style-image, упоминавшееся ранее, - не расширение, а стандартное свойство CSS 2. Список расширений приведен в таблице 3.2.

Пример собственных стилей Mozilla.

Рис. 3.4. Пример собственных стилей Mozilla.
Таблица 3.2. Расширения стилей для HTML - новые особенности
Свойство Значения Описание
-moz-background-clip border, padding Поддержка ограничения фона согласно еще не законченному CSS 3. Mozilla 1.2+
-moz-background-origin order, padding, content Поддержка начальной точки фона согласно еще не законченному CSS 3. Mozilla 1.2+
-moz-force-broken-image-icon 1=true, 0=false Показывать пиктограмму "не удалось загрузить изображение" вместо самого изображения
-moz-image-region Как и для clip Показывать только часть изображения

Помимо упомянутых выше расширений существуют и такие, которые могут применяться практически ко всем тегам, а не только к определяющим конкретное содержимое или особую разметку. Они перечислены в таблице 3.3.

Таблица 3.3.
Свойство Значение Описание
Любое свойство -moz-initial Установить в качестве значения этого свойство то, которое использовалось бы по умолчанию, если бы не было наследования
Большинство свойств inherit То же, что и в HTML/XHTML
Любое свойство шрифта Системные шрифты См. раздел "Альтернатива: таблицы стилей" "Окна и панели" , "Окна и панели".
Любое свойство цвета Системные цвета См. раздел "Альтернатива: таблицы стилей" "Окна и панели" , "Окна и панели".
-moz-binding none или url() Использовать для тега указанную связь XBL. См. лекцию про XBL
-moz-opacity От 0.0 до 1.0 Сделать содержимое полупрозрачным - то же, что и альфа-канал.

Обратите внимание, что XUL не поддерживает стиль CSS 2 text-decoration. С его помощью можно зачеркивать или подчеркивать текст.

На момент написания этого курса стандарт CSS 3 еще находился в стадии разработки, и в Mozilla реализована только частичная его поддержка. В CSS 3 будет включена модель границ блока из Internet Explorer 6.0. Вероятнее всего, Mozilla будет ее поддерживать, но пока этого нет.

Дмитрий Гуменюк
Дмитрий Гуменюк
Россия, Звенигород
Konstantin Grishko
Konstantin Grishko
Россия, Москва, Московский финансово-промышленный университет "Синергия", Москва