@-правила в CSS

@-правила в 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». 

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

  • all — для всех, используется по умолчанию;
  • aural — речевые синтезаторы и программы для звукового воспроизведения текста;
  • braille — устройства, основанные на системе Брайля, которые предназначены для слепых людей;
  • handheld — карманные компьютеры, мобильные телефоны и аналогичные устройства;
  • print — устройства печати;
  • projection — проекторы;
  • screen — экран монитора;
  • tv — телевизоры.

@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;
}

 

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

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

Расскажите друзьям

Оцените статью:
  • 1
  • 2
  • 3
  • 4
  • 5

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

MyFreeWeb
@media не использовал нигде пока, а остальные известны.
TuTbaker
Ничего нового вы нам не поведали, только повторили то, что уже было написано и переписано 10 раз
#
TuTbaker
Motorstorm
MyFreeWeb, как ни странно я тоже еще @media не использовал, буду пробовать...
Lelik
будем пробовать)
CyberMan
Как не странно @charset, @import, @media, @font-face я знаю. Ведь я программист))). А так статья познавательная для новичков и не только)))
Motorstorm
CyberMan, ну это естественно, а я-то новичок в этом деле, поэтому буду изучать и наверстывать:)
Username
А какой смысл в @charset? Разве браузеру не всё равно в какой кодировке у меня css (или если например я укажу koi8-r, а кто-то пересохранит в utf8)
#
Username
Grin
Username, насколько я понимаю, это нужно для корректной обработки символов в том же свойстве content.
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 еще не скоро будут работать стабильно. А скорее может быть и вообще не будут работать правильно.
#
ar-
darya
Статья преинтереснейшая! Люблю читать такого рода статьи! Автор молодец!
#
darya
KruGoZor
darya

очень содержательный камент.
gus2
А возможно ли на чистом CSS выполнить пропорциональный ресайз фоновой картинки, чтобы она всегда закрывала весь фон, как здесь: http://www.alexandergusev.com/
#
gus2
Van
в FireFox, на сколько я знаю, по умолчанию стоит галочка в настройках... запрещающая работать со страницами, в которых прописан @font-face. Он просто игнорирует данную настройку.

так что, это всё до задней ручки) знать приятно, но использовать не вариант.
#
Van
Ира
Пост грамотно написан. Приятно читать.
#
Ира
asterix
Как я понял погруженный шрифт работает только в IE, интересно как обстоят дела в Хроме.
Илья
А что за расширение шрифта *.eot для IE? Впервые такой вижу.
#
Илья  

Новый комментарий

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler