@-правила в CSS

23 апреля 2010, 10:45 Павел Марковнин HTML и CSS рейтинг +14-

«Собачьи» правила в CSSПривет,

Сегодня у нас небольшая заметка (основанная на статье «Demystifying CSS At-Rules»), в которой речь пойдет о применении в CSS правил, содержащих в себе символ «@».

В статье будут рассмотрены правила @import, @media, @charset и популярный сейчас @font-face, который позволяет использовать собственные шрифты на страницах сайта (про сторонние шрифты у нас уже была статья «Как использовать любой шрифт на сайте»).

@charset

Это правило указывает на то, какую кодировку использует ваш файл стилей. Правило необходимо объявлять в самом начале файла, на первой строке без каких-либо других символов перед ним, указываемая кодировка дожна быть в соответствующем формате. Например, вот так будет выглядеть код для кодировки UTF-8:

@charset "UTF-8"

@import

С помощью этого правила можно включать один CSS файл в другой. Это правило нужно опять же указывать в самом верху страницы. Используя различный синтаксис, можно скрыть подключаемый файл о какой-то версии браузера. Например, если указать тип медиа в правиле, то ИЕ6 и ниже не подключат указанный файл:

@import (/not-for-ie.css) screen;

Так же советую прочитать статью о скорости загрузки стилей при использовании @import — «Не используйте @import». 

Раз уж заговорили о медиатипах, то давайте рассмотрим, какие в принципе бывают:

@media

С помощью этого правила в общем файле стилей можно указать правила, которые следует использовать на конкретных типа устройств. Например, вот это правило сработает только для печати: 

@media print {
#sidebar {
display: none;
}
}

К счастью, все современные браузеры корректно обрабатывают это правило. Но существуют хаки CSS с использованием этого правила.

@font-face

Данное правило позволяет вам подключать и применять на своем сайте отличные от стандартных шрифты. Замечательно то, что на данный момент браузеры IE 6-8, Firefox 3.5+ (Mac и PC), Safari (Mac и PC), Chrome 4+ и Opera 10+ поддерживают это правило полностью. Незамечательно то, что IE имеет некоторые ограничения на подключаемые шрифты.

Кроссбраузерное использование правила выглядит следующим образом:

@font-face {
font-family: "Название_вашего_шрифта";
src: url(путь_до_файла/файл_шрифта.eot); /* специально для IE */
src: local("Действительное_название_шрифта"), url(путь_до_файла/файл_шрифта.ttf ) format("truetype"); /* для всех остальных */
}

/* Использование шрифта */
.yourFontName {
font-family: "Название_вашего_шрифта", verdana, helvetica, sans-serif;
}

 

На этом все. Надеюсь, что статья окажется для вас полезной.

Какие из этих правил вы используете? О каких не знали?

Рекламное место, которое может стать вашим

Понравилась статья?

Тогда подпишись на обновления через RSS или воспользуйся
другими способами подписки.

Читать в Яндекс.Ленте Добавить в Google Добавить в Netvibes
  •  

Комментарии — 12

RSS
  • Аватарка
    23 апреля в 14:44 ]]>MyFreeWeb]]>
    @media не использовал нигде пока, а остальные известны.
  • Аватарка
    23 апреля в 17:07 TuTbaker
    Ничего нового вы нам не поведали, только повторили то, что уже было написано и переписано 10 раз
  • Аватарка
    23 апреля в 17:43 ]]>Motorstorm]]>
    MyFreeWeb, как ни странно я тоже еще @media не использовал, буду пробовать...
  • Аватарка
    24 апреля в 22:21 ]]>Lelik]]>
    будем пробовать)
  • Аватарка
    24 апреля в 23:30 ]]>CyberMan]]>
    Как не странно @charset, @import, @media, @font-face я знаю. Ведь я программист))). А так статья познавательная для новичков и не только)))
  • Аватарка
    25 апреля в 0:14 ]]>Motorstorm]]>
    CyberMan, ну это естественно, а я-то новичок в этом деле, поэтому буду изучать и наверстывать:)
  • Аватарка
    25 апреля в 15:46 Username
    А какой смысл в @charset? Разве браузеру не всё равно в какой кодировке у меня css (или если например я укажу koi8-r, а кто-то пересохранит в utf8)
  • Аватарка
    25 апреля в 15:48 ]]>Grin]]>
    Username, насколько я понимаю, это нужно для корректной обработки символов в том же свойстве content.
  • Аватарка
    25 апреля в 18:42 ar-
    интересная статья, сейчас работаю с @font-face над новым проектом. Полное ПИ и извращение. К вашей статье о @font-face не хватает еще пару ссылок на дополнительные темы:
    1. http://lovtsevich.com/2009/10/26/font-face-ili-nazad-v-budushhee/
    подробное описание подключение шрифтов через CSS

    2. http://www.fontsquirrel.com/fontface/generator
    гернератор шрифтов, конвертирует туда-сюда и все отдает в архиве + создает CSS, что заметно упрощает работу над подключением шрифтов и поддержки кроссбраузерности :)

    P.S. Люди не надо извращением заниматься с @font-face, потому что эти новые фишки CSS еще не скоро будут работать стабильно. А скорее может быть и вообще не будут работать правильно.
  • Аватарка
    25 апреля в 22:31 ]]>darya]]>
    Статья преинтереснейшая! Люблю читать такого рода статьи! Автор молодец!
  • Аватарка
    23 мая в 3:32 ]]>KruGoZor]]>
    darya

    очень содержательный камент.
  • Аватарка
    10 августа в 11:02 gus2
    А возможно ли на чистом CSS выполнить пропорциональный ресайз фоновой картинки, чтобы она всегда закрывала весь фон, как здесь: http://www.alexandergusev.com/
  • Эл. почта (используется для Граватарки)
  • Домашняя страница
  • Имя в Твиттере
  • Разрешенные теги Текст сообщения (надо бы заполнить это поле)
  • как выглядит какой тег
    жирный текст <b>жирный текст</b>
    курсивный тект <i>курсивный тект</i>
    зачеркнутый текст <s>зачеркнутый текст</s>
    подчеркнутый текст <u>подчеркнутый текст</u>
    ссылка <a href="адрес">ссылка</a>
    function foo() { ... }
    <pre><code>function foo() { ... } </code></pre>