Что такое CSS?
Что такое CSS
CSS (Cascading Style Sheets — каскадные таблицы стилей) – одна из базовых технологий в современном Интернете. Нечасто можно встретить сайт, свёрстанный без примененения CSS.
CSS-код – это
список инструкций для
В печатном деле вопрос оформления книги решается на ранних этапах её производства. От выбранных шрифтов, отступов и красок зависит буквально всё. И после повлиять на дизайн, увы, невозможно.
В случае с сайтами всё не так. Содержимое страницы почти не связано с дизайном её внешнего вида. Изменив всего одну строку в css-стилях, дизайнер сайта может радикально изменить оформление многих тысяч страниц сайта, сделав все заголовки, скажем, зелёными, переместив блок новостей в угол или изменив фон страниц.
Инструкции CSS удобно хранить в виде отдельного текстового файла с расширением .css, либо в виде отдельного текстового фрагмента в начале XHTML/HTML-документа (см. Включение CSS в HTML документ).
Основная идея CSS в том, чтобы отделить дизайн документа от его содержимого. CSS отвечает за оформление и внешний вид, а XHTML/HTML — за содержание и логическую структуру документа.
Посмотрим на фрагмент XHTML-документа:
Из служебной XHTML разметки мы видим только элемент заголовка h1 и абзаца p, и ни слова об оформлении — шрифтах, цвете текста, фоне, отступах и прочем дизайне. Всё это возложено на CSS:
История
CSS — одна из широкого спектра технологий, одобренных консорциумом W3C и получивших общее название «стандарты Web».[1] В 1990-х годах стала ясна необходимость стандартизировать Web, создать какие-то единые правила, по которым программисты и веб-дизайнеры проектировали бы сайты. Так появились языки HTML 4.01 и XHTML и стандарт CSS.
В начале 1990-х различные браузеры имели свои стили для отображения веб-страниц. HTML развивался очень быстро и был способен удовлетворить все существовавшие на тот момент потребности по оформлению информации, поэтому CSS не получил тогда широкого признания.
Термин «каскадные таблицы стилей» был предложен Хокон Виум Ли в 1994 году. Совместно с Бертом Босом он стал развивать CSS.
В отличие от многих существовавших на тот момент языков стиля, CSS использует наследование от родителя к потомку, поэтому разработчик может определить разные стили, основываясь на уже определенных ранее стилях.
В середине 1990-х Концорциум Всемирной паутины (W3C) стал проявлять интерес к CSS, и в декабре 1996 года была издана рекомендация CSS1.
Уровень 1 (CSS1)
Рекомендация W3C, принята 17 декабря 1996 года, откорректирована 11 января 1999 года.[2] Среди возможностей, предоставляемых этой рекомендацией:
- Параметры шрифтов. Возможности по заданию гарнитуры и размера шрифта, а также его стиля — обычного, курсивного или полужирного.
- Цвета. Спецификация позволяет определять цвета текста, фона, рамок и других элементов страницы.
- Атрибуты текста. Возможность задавать межсимвольный интервал, расстояние между словами и высоту строки (то есть межстрочные отступы)
- Выравнивание для текста, изображений, таблиц и других элементов.
- Свойства блоков, такие как высота, ширина, внутренние (padding) и внешние (margin) отступы и рамки. Так же в спецификацию входили ограниченные средства по позиционированию элементов, такие как float и clear.
Уровень 2 (CSS2)
Рекомендация W3C, принята 12 мая 1998 года.[3] Построена на CSS1 с сохранением обратной совместимости. Добавление к функциональности:
- Блочная вёрстка. Появились относительное, абсолютное и фиксированное позиционирование. Позволяет управлять размещением элементов по странице без табличной вёрстки.
- Типы носителей. Позволяет устанавливать разные стили для разных носителей (например монитор, принтер, КПК).
- Звуковые таблицы стилей. Определяет голос, громкость и т. д. для звуковых носителей (например для слепых посетителей сайта).
- Страничные носители. Позволяет, например, установить разные стили для элементов на чётных и нечётных страницах при печати.
- Расширенный механизм селекторов.
- Указатели.
- Генерируемое содержание. Позволяет установить текст или картинку, который будет отображаться до или после нужного элемента.
Уровень 2.1 (CSS2.1)
Рабочая версия
W3C от 8
сентября 2009
года.[4] Построена на CSS2, содержит
исправления ошибок.
Спецификация CSS2 определяет Каскадные таблицы Стилей, уровень 2 (CSS2). CSS2 - это язык таблиц стилей, позволяющий авторам и пользователям подключать стили (например, шрифты, пробелы и звуковые сигналы) в структурированные документы (например, документы HTML и приложения XML). CSS2 упрощает создание и обслуживание Web-сайта путём разделения структуры и стиля представления документов.
CSS2 построен на основе CSS1 (см. [CSS1]), и, с очень небольшими исключениями, все таблицы стилей CSS1 остаются действующими в CSS2. CSS2 поддерживает таблицы для конкретных носителей, так что авторы могут создавать представление своих документов для визуальных браузеров, звуковых устройств, принтеров, брайль-устройств, ручных портативных устройств и т.д. Данная спецификация поддерживает также позиционирование содержимого, загружаемые шрифты, отображение таблиц, возможности интернационализации, автоматические счётчики и нумерацию и некоторые свойства, относящиеся к пользовательскому интерфейсу.
В чём разница между CSS и HTML?
HTML используется
для структурирования
Согласен, это звучит как-то заумно. Но, пожалуйста, читайте дальше. Вскоре всё начнёт проясняться.
Давным-давно, когда Мадонна была девой, а парень по имени Tim Berners Lee изобрёл World Wide Web, язык HTML использовался только для вывода структурированного текста. Автор мог только размечать текст: "это - заголовок" или "это - параграф", используя HTML-тэги, такие как <h1> и <p>.
По мере развития Web дизайнеры начали искать возможности форматирования онлайновых документов. Чтобы удовлетворить возросшим требованиям потребителей, производители браузеров (тогда - Netscape и Microsoft) изобрели новые HTML-тэги, такие, например, как <font>, которые отличались от оригинальных HTML-тэгов тем, что они определяли внешний вид, а не структуру.
Это также привело к тому, что оригинальные тэги структурирования, такие как <table>, стали всё больше применяться для дизайна страниц вместо структурирования текста. Многие новые тэги дизайна, такие как <blink>, поддерживались только одним браузером. "Вам необходим браузер X для просмотра этой страницы" - такой отказ стал обычным явлением на web-сайтах.
CSS был создан
для исправления этой ситуации
путём предоставления web-дизайнерам
возможностей точного дизайна,
поддерживаемых всеми
Какие преимущества даст мне CSS?
Появление CSS стало революцией в мире web-дизайна. Конкретные преимущества CSS:
- управление отображением множества документов с помощью одной таблицы стилей;
- более точный контроль над внешним видом страниц;
- различные представления для разных носителей информации (экран, печать, и т. д.);
- сложная и проработанная техника дизайна.
Включение CSS в HTML документ
Для того, чтобы применить таблицу стилей к HTML-документу, мы можем избрать один из трёх способов, либо комбинировать их:
- применить внешние стили (в виде отдельного текстового .css-файла) с помощью элемента
- встроить стили непосредственно в HTML-документ (в виде блока css-текста) с помощью элемента
- применить inline-стиль, то есть назначить стиль конкретному HTML-элементу непосредственно в документе, с помощью HTML-атрибута
Разберём эти способы подробнее.
Внешние стили (external style sheets)
Применяются с помощью элемента , который должен располагаться внутри элемента и нигде более.
.
Встретив в HTML-документе этот тег, браузер загрузит с сайта CSS-файл (в нашем случае это mystyle.css) и применит к документу содержащиеся в нём стили. Файл не должен содержать ничего, кроме CSS-инструкций.
Внешний файл со стилями удобен тем, что одни и те же стили можно применять ко множеству документов на сайте — в каждом из них достаточно лишь вписать одну строку с элементом .
Таблицы стилей документа (document style sheets)
Называются так потому, что располагаются непосредственно в HTML-документе и применяются только к нему. Иногда называются embedded style sheet (встроенный стиль).
CSS-стили и
комментарии располагаются
Сам тег (в отличие от ) может находиться в любой части документа, но обычно его размещают внутри элемента .
Стили, подставляемые в строку (inline styles)
Иногда нужно назначить стиль отдельному элементу на странице, не применяя внешних стилей и элемента . Типичный случай — элемент встречается единожды в документе или на сайте, но требует особого оформления. Воспользуемся атрибутом style (именно атрибутом элементов, а не элементом!):
Атрибут есть почти у всех HTML-элементов. Кроме тех, что располагаются вне элемента body.
Внутри атрибута можно написать несколько CSS объявлений, разделённых точкой с запятой, фигурные скобки не используются.
Замечание: Стоит избегать использования вышеописанного способа. Inline-стили смешивают содержимое документа и его дизайн, в то время как идеологически более правильно отделять содержимое документа и информацию о его оформлении.
Синтаксис CSS
Все CSS-правила состоят из селектора и блока объявлений (заключённого в фигурные скобки). Внутри блока объявлений (внутри фигурных скобок, проще говоря) может находиться одно или несколько объявлений, разделённых точкой с запятой. Объявление – это строка, составленная из css-свойства и его значения.
Как обычно выглядит css-правило
Как это может выглядеть на практике? Вот три примера CSS-правил:
Каждое правило начинается с селектора (по-русски – указателя), указывающего на те html-элементы, к которым мы собираемся применить css-правило.
В блоке
объявлений происходит самое интересное
– мы устанавливаем правила
Селекторы
Чтобы применить css-оформление к HTML-элементу или множеству элементов, обычно используются селекторы – специальные указатели на HTML-объекты, к которым мы планируем применить css-правило.
Вот три основных вида селекторов.
HTML селекторы
Это простейший случай – в качестве селектора мы используем имя того html-элемента, который хотим изменить. Например, для тега селектором будет . Соответственно, для тега селектором будет , и так далее. Теперь мы можем переопределить внешний вид всех таких элементов в нашем документе:
Селекторы класса
«Класс» - это некое имя, строка, которое мы можем применить к любым HTML-тегам, чтобы впоследствии ссылаться на них по имени класса. В качестве имени класса вы можете использовать практически любую строку. Удобство таких селекторов в том, что можно присвоить одно имя класса множеству html-тегов в документе и затем управлять их внешним видом, обращаясь к ним по имени класса:
ID селекторы (или идентификаторы)
Любой идентификатор (ID) – это некое имя, которое вы, так же, как и в случае с классами, можете применить к любому HTML-тегу. Основное отличие – ID должен быть уникален в рамках html-документа:
Как применить один стиль к нескольким селекторам
Очень распространённая задача – применить один набор правил к нескольким разным селекторам. Это делается элементарно – достаточно перечислить селекторы через запятую:
Впоследствии оформление для селекторов можно переопределить индивидуально:
Селекторы, зависящие от контекста
Мы научились
устанавливать стили для
Вот, посмотрите:
Это самый распространённый метод создания контекстуальных селекторов, который называется «селектором потомков». Разберём его подробнее.
Селекторы потомков
«Потомками» элемента HTML называются любые вложенные в него элементы: это его «дети» (то есть непосредственно вложенные), дети его детей, и так далее, вглубь иерархии тегов.
Правильно используя селекторы, мы можем прицельно применить CSS стили к нужным элементам, сославшись на их родительский элемент. Для этого перед селектором искомого элемента надо вставить селекторы его «предков», разделив их пробелом.
В приведённом примере мы вроде бы создали список селекторов, разделённый пробелами. На самом деле это один селектор потомков. Он указывает на все гиперссылки (элементы A) вложенные в списки (элементы LI), в свою очередь находящиеся внутри элемента с идентификатором footer. У всех таких гиперссылок мы меняем толщину шрифта на bold (полужирный шрифт).
Селекторы детей
«Детьми» или «дочерними элементами» элемента HTML называются непосредственно вложенные в него элементы, он для них является «родительским» элементом. Элементы, находящиеся на 2-м и более глубоких уровнях вложенности, «детьми» не являются – это дети детей, то есть «потомки» (см. предыдущий раздел).
CSS позволяет
нам создать селектор для
В приведённом примере мы находим все элементы B, вложенные непосредственно в элементы I, и выключаем для них полужирный шрифт. Все остальные элементы B в документе останутся без изменений.
Селекторы смежных элементов (Adjacent Sibling Selectors)
Иногда нам
надо выбрать элемент, расположенный
в HTML-документе
Важно: будет
выбран только первый (!) заголовок H1, расположенный
непосредственно после P. Если между элементами
P и H1 встретится любой элемент, хоть один
(даже если это
) – то селектор не сработает и правило
не применится.
Важно: селекторы смежных элементов появились в CSS v2 и поддерживаются, увы, не во всех браузерах. В Internet Explorer они появились только с 7-й версии, в Opera – с 5-й версии.
Обзор свойств CSS
Справочник опирается на актуальную сейчас спецификацию CSS 2.1, соответственно, приведенный ниже список css-свойств ограничен рамками спецификации.
Основные свойства
Список базовых свойств, которые должен знать даже начинающий веб-мастер:
margin, padding, border, background-color, color, font-family, font-size, float
Фон
background
Сокращенный вариант записи для свойств background-color, background-image, background-repeat, background-attachment и background-position.
background-attachment
Устанавливает, должна ли фоновая картинка скролиться или должна быть зафиксирована в окне браузера.
background-color
Устанавливает цвет фона для элемента.
background-image
Устанавливает фоновую картинку для элемента.
background-position
Устанавливает первоначальное положение для фоновой картинки.
background-repeat
Управляет циклическим повторением фоновой картинки.
Рамка (граница, бордюр)
Влияют на все четыре рамки
border
Краткий вариант записи для свойств border-width, border-style и border-color. Влияет на все четыре границы элемента.
border-color
Устанавливает цвет рамки со всех сторон элемента.
border-width
Устанавливает толщину рамки со всех сторон элемента.
border-style
Определяет стиль оформления рамки вокруг элемента.
border-collapse
Указывает ячейкам таблицы, иметь ли собственный бордюр или общий с соседней ячейкой.
border-spacing
Устанавливает расстояние между ячейками таблицы.
Верхняя рамка
border-top
Краткий вариант доступа к свойствам border-top-width, border-top-style и border-top-color.
border-top-color
Устанавливает цвет верхнего бордюра.
border-top-style
Устанавливает стиль линии верхнего бордюра.
border-top-width
Устанавливает ширину верхнего бордюра.
Нижняя рамка
border-bottom
Краткий вариант доступа к свойствам border-bottom-width, border-bottom-style и border-bottom-color.
border-bottom-color
Устанавливает цвет нижнего бордюра.
border-bottom-style
Устанавливает стиль линии нижнего бордюра.
border-bottom-width
Устанавливает ширину нижнего бордюра.
Левая рамка
border-left
Краткий вариант доступа к свойствам border-left-width, border-left-style and border-left-color.
border-left-color
Устанавливает цвет левого бордюра.
border-left-style
Устанавливает стиль линии левого бордюра.
border-left-width
Устанавливает ширину левого бордюра.
Правая рамка
border-right
Краткий вариант доступа к свойствам volume, border-right-style и border-right-color.
border-right-color
Устанавливает цвет правого бордюра.
border-right-style
Устанавливает стиль линии правого бордюра.
volume
Устанавливает ширину правого бордюра.
Шрифт
font
Краткий вариант записи свойств font-style, font-variant, font-weight, font-size, line-height и font-family.
font-family

- Что такое OpenMP
- Что такое PDM-система?
- Что такое RAID-массивы и зачем они нужны
- Что такое автомобильный аккумулятор?
- Что такое активность радиоактивного вещества и единицы активности в СИ и внесистемные
- Что такое аллергия
- Что такое база данных
- Что составляет энергетический баланс биосферы
- Что способствовало и что мешало экономическому росту в России за последние 100 лет
- Что справедливее в налогообложении: пропорциональное или прогрессивное налогообложение доходов физических лиц?
- Что справедливее в налогообложении: пропорциональное или прогрессивное налогообложение доходов физических лиц
- Что такое 3D графика и где она применяется
- Что такое Borland Delphi
- Что такое Business Intelligence (BI)?