Что такое CSS, основные понятия. Что такое CSS, подключение CSS файла Применение css

CSS расшифровывается, как «каскадные таблицы стилей» (от англ. Cascading Style Sheets). CSS представляет собой совокупность параметров, с помощью которых отображается тот или иной элемент на веб-странице. Эти параметры могут указываться, как в отдельном файле, так и быть прописаны непосредственно в HTML-коде страницы. Например, на нашей веб странице могут быть такие элементы: заголовок статьи, абзацы, цитаты, сноски, картинки, видео ролики, ссылки. Можно задать конкретный стиль отображения — размер, цвет, толщину рамок и др.

При работе с сайтом рекомендуется использовать именно отдельный файл со стилями, а не внедрять код со стилевыми настройками в отдельные страницы. Это заметно сократит время — когда знаешь место нахождения таблицы стилей, всегда можно оперативно найти конкретный стиль и отредактировать. Файл стилей имеет расширение .css , название у него, как правило, style.css .

Подключение CSS файла

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

1. Связывание. Этот способ используется когда необходимо задать стили для всех страниц сайта в одном файле. Данный способ часто используется при создании сайта. Чтобы подключить таблицу стилей используется команда , которую необходимо разместить в теле тега .

Первые два свойства указывают браузеру, что на сайте используется CSS, затем указывается адрес файла со стилями.

2. Встраивание в теги документа. При этом способе стиль для конкретного элемента страницы задается непосредственно в HTML коде. Например:

Здесь мы прописали стили соответственно для контейнеров

и . Данные стили будут применяться исключительно для них.

Приведем пример таблицы стилей — создадим файл style.css и пропишем стили:

body { font-family: Arial, Verdana, Sans-serif; /* Семейство шрифтов */ font-size: 12pt; /* Размер основного шрифта в пунктах */ background-color: #f0f0f0; /* Цвет фона веб-страницы */ color: #000000; /* Цвет основного текста */ } h1 { color: #a52a2a; /* Цвет заголовка */ font-size: 24pt; /* Размер шрифта в пунктах */ font-family: Georgia, Times, serif; /* Семейство шрифтов */ font-weight: normal; /* Нормальное начертание текста */ }

Здесь мы задали стили для тела страницы и для заголовка

. Также можно задать конкретные стили для любых других элементов страницы веб-сайта.

Теперь подключим нашу таблицу стилей к сайту:

Подключение CSS к сайту

Привет, Мир!

Это моя первая страница со стилями CSS

Таким образом, мы разобрались, что такое CSS, зачем данная технология используется, научились подключать стили к сайту. Данный урок является, своего рода, введением в каскадные таблицы стилей. В других уроках мы будем говорить о технологии CSS более детально.

Назначение CSS

Дизайн Web-узлов - это точное размещение компонентов HTML-страниц относительно друг друга в рабочей области окна браузера.

Недостатки такого определения Web-дизайна очевидны. В нем не учтены ни цвет, ни форма, ни другие свойства компонентов HTML-страниц. Главное в этом определении - показать ограниченность возможностей HTML-разметки. Позиционирование компонентов на странице является одним из самых слабых мест в HTML.

К компонентам страницы относятся: блоки текста, графика и встроенные приложения. Размер и границы каждого из этих компонентов в рамках HTML-разметки задаются с разной степенью точности. Размер графики и приложений можно задать с точностью до пиксела. Размеры текстовых блоков в HTML задать нельзя: они вычисляются браузером исходя из относительного размера шрифта по умолчанию.

Нельзя сказать, что разработчики браузеров не пытались изменить данную ситуацию. В ранних версиях браузеров CERN для платформы NEXT и в браузерах WWWC автор страницы имел возможность переопределять настройки браузера по умолчанию через HTML-разметку. Но этот подход не получил продолжения в коммерческих продуктах.

Другой способ управления настройками браузера - программирование на JavaScript. Бурное развитие этого языка позволяет говорить о возможности полного контроля над процессом отображения HTML-страниц. Недостаток JavaScript - отказ от декларативного характера разметки и относительно большой объем кода для переопределения свойств элементов разметки .

Спецификация CSS (Cascading Style Sheets) позволяет остаться в рамках декларативного характера разметки страницы и полностью контролировать форму представления элементов HTML-разметки .

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

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

Наличие подобных возможностей позволяет говорить о CSS как о средстве разделения логической структуры документа и формы его представления. Логическая структура документа определяется элементами HTML-разметки , в то время как форма представления каждого из этих элементов задается CSS-описателем элемента.

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

А теперь переопределим стиль отображения для элемента разметки I (открыть):

Рис. 8.1.

Этот пример показывает, что привычный стиль отображения элементов может быть полностью изменен при помощи CSS. В данной технологии HTML-разметка носит чисто декларативный характер.

Практическое значение CSS для Web-инжиниринга (совокупности технологий разработки и сопровождения Web-узлов) заключается в том, что процесс создания узла можно формализовать и представить в виде последовательности действий:

  • необходимо определиться с номенклатурой страниц, т.е. все страницы проектируемого Web-узла разбить на типы, например домашняя страница, навигационные страницы, информационные страницы, коммуникационные страницы и т.п. У каждого узла этот перечень может быть свой;
  • для каждого типа страниц требуется разработать определенную логическую структуру (стандартный набор компонентов страницы);
  • следует создать навигационную карту узла и форму ее реализации на страницах;
  • для каждого стандартного компонента страницы нужно разработать стиль его отображения (CSS-описатель);
  • теперь остается только рисовать картинки, создавать анимацию, писать программы, вручную вводить текст и графику или генерировать содержимое страниц автоматически при обращении к ним.

Объяснив таким образом роль и назначение CSS среди многообразия Web-технологий, мы переходим непосредственно к обсуждению применения каскадных таблиц стилей .

Способы применения CSS

Под способами применения CSS мы в данном разделе понимаем форму декларирования стиля на HTML-странице и форму связывания описания стиля отображения элемента разметки с самим элементом. Речь идет о том, где и в какой форме автор страницы (или дизайнер) описывает стиль, и как и в какой форме на него ссылается.

Итак, различают четыре способа применения стилей:

  • переопределение стиля в элементе разметки ;
  • размещение описания стиля в заголовке документа в элементе STYLE ;
  • размещение ссылки на внешнее описание через элемент LINK ;
  • импорт описания стиля в документ.

Здесь мы следуем за Джорджем Янгом из Microsoft (Cascading Style Sheets in Internet Explorer 4.0. Microsoft, 1997). Важно отметить, что в браузерах других производителей импорт стиля не поддерживается. Однако, поскольку патент на CSS1 принадлежит Microsoft, опустить импорт в нашем описании было бы неправильно.

Переопределение стиля

Заголовок первого уровня

Атрибут style можно применить внутри любого элемента разметки . Например, мы можем через style определить ширину и выравнивание элемента hr (горизонтальное отчеркивание):

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

Здесь же нужно отметить следующее: стили разработаны в первую очередь для управления отображением текста. Не следует увлекаться стилями при управлении отображением нетекстовых элементов HTML-разметки .

Элемент STYLE

Применение элемента STYLE - это основной способ внедрения каскадных таблиц стилей в ткань HTML-документа. Помимо управления отображением элементов разметки , элемент STYLE позволяет описывать стилевые свойства элементов, которые можно изменять при программировании на JavaScript.

Элемент STYLE дает возможность определить стиль отображения для:

  • стандартных элементов HTML-разметки ;
  • произвольных классов (селектор CLASS );
  • НTML-объектов (селектор ID ).

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

Понятие селектора , применение селекторов и формальный синтаксис CSS мы обсудим в разделах "Синтаксис" и "Наследование и переопределение ".

Стандартные элементы разметки описываются в элементе STYLE следующим образом:

...

Этот параграф мы используем как пример применения описания стиля для стандартного элемента HTML-разметки.

...

Теперь все параграфы документа будут отображаться стилем из элемента STYLE , если только стиль не будет каким-либо способом переопределен. В STYLE можно определить стиль любого элемента разметки .

Ссылка на внешнее описание

Ссылка на описание стиля , расположенное за пределами документа, осуществляется при помощи элемента LINK , который размещают в элементе HEAD . Внешнее описание может представлять собой файл, содержащий описание стилей. Описание стилей в этом файле будет по синтаксису в точности совпадать с содержанием элемента STYLE .

Здесь важны значения атрибутов REL и TYPE . Атрибут REL должен иметь значение stylesheet . Type может принимать значения text/css или text/javascript . Второй тип описания стилей введен Netscape. Его мы в данном учебном курсе не обсуждаем.

Атрибут HREF задает универсальный локатор ресурса (URL) для внешнего файла описания стилей. Это может быть ссылка на файл с любым именем, а не только на файл с расширением *.css .

Импорт описания стилей

Импорт описателей стилей в некотором смысле составляет конкуренцию представленному выше указанию на внешний описатель стиля.

Импортировать стиль можно либо внутрь элемента STYLE , либо внутрь внешнего файла , который представляет собой описатель стиля. Оператор импорта стиля должен предшествовать всем прочим описателям стилей:

Импортируемый стиль можно переопределить либо через описатель элемента в STYLE , либо через атрибут элемента STYLE .

Синтаксис

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

selector[, selector[, ...]] { attribute:value; }

selector selector { attribute:value; }

В первом варианте перечислены селекторы , для которых действует данное описание стиля. Второй вариант задает иерархию вложенности селекторов , для совокупности которых определен стиль. Напомним, что речь в данном случае идет об описаниях стилей в нотации text/css . Описания стилей размещаются либо внутри элемента STYLE , либо во внешнем файле .

В качестве селектора можно использовать имя элемента разметки , имя класса и идентификатор объекта на HTML-странице.

Атрибут (attribute) определяет свойство отображаемого элемента, например левый отступ параграфа (margin-left) , а значение (value) - значение этого атрибута, например, 10 типографских пунктов (10 pt).

Селектор - имя элемента разметки

Когда автор Web-узла хочет определить общий стиль всех страниц, он просто прописывает стили для всех элементов HTML-разметки , которые будут использоваться на страницах. Это дает возможность скомпоновать страницы из логических элементов, а стиль отображения элементов описать во внешнем файле .

Внешний файл при этом может выглядеть следующим образом:

I, EM {color:#003366;font-style:normal} A I {font-style:normal;font-weight:bold; text-decoration:line-through}

В первой строке этого описания перечислены селекторы-элементы, которые будут отображаться одинаково:

Последняя строка определяет стиль отображения вложенного в гипертекстовую ссылку курсива:

intuit

В данном случае переопределение состоит в том, что текст отображается внутри гипертекстовой ссылки перечеркнутым, причем жирным шрифтом.

Селектор - имя класса

Имя класса не является каким-либо стандартным именем элемента HTML-разметки . Оно определяет описание класса элементов разметки , которые будут отображаться одинаково. Для того, чтобы отнести элемент разметки к тому или иному классу, нужно воспользоваться его атрибутом CLASS (открыть):

...

Этот параграф мы отобразим белым цветом по черному фону

...


Рис. 8.2.

Таким образом в любом элементе разметки можно сослаться на описание класса отображения. При этом совершенно необязательно, чтобы элементы разметки были однотипными. В примере к одному классу отнесены и параграф, и гипертекстовая ссылка в другом параграфе.

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

a.menu { color:red;background-color:white; text-decoration:none; } a.paragraph { color:navy; text-decoration:underline; }

В данном примере класс гипертекстовых ссылок menu имеет одно описание стиля, а класс гипертекстовых ссылок paragraph - совершенно другое. При этом каждый из этих классов нельзя применить к другим элементам разметки , например, параграфу или списку. Если имя элемента разметки не задано, это означает, что класс можно отнести к любому элементу разметки - корневой класс описания стилей. Это очень похоже на обозначение имени корневого домена в системе доменных имен. Собственно ничего удивительного здесь нет, т.к. система классов объектов на HTML-странице представляет собой дерево. Элементы разметки - это узлы дерева.

Селектор - идентификатор объекта

Объектная модель документа (Document Object Model) описывает документ как дерево объектов. Объектами являются: сам документ, его разделы (элемент DIV ), картинки, параграфы, приложения и т.п. Каждый из объектов можно поименовать и обращаться к нему по имени. Данная возможность используется при программировании страниц на стороне клиента.

Применение идентификатора объекта оправдано еще и в случае модификации атрибута описания стиля для данного объекта в его CSS-описании. Вместо двух описаний классов, которые отличаются только одним из параметров, можно создать одно описание класса и описание идентификатора объекта . Описание стиля для объекта задается строкой, в которой селектор представляет собой имя этого объекта с лидирующим символом "#" :

a.mainlink { color:darkred; text-decoration:underline; font-style:italic; } #blue { color:#003366 } ... основная гипертекстовая ссылка модифицированная гипертекстовая ссылка

Следует отметить, что интерпретация идентификаторов объектов в Internet Explorer и Netscape Navigator различна. Существует еще атрибут name у элемента разметки . При идентификации объекта Netscape Navigator обычно имеет дело именно с этим атрибутом, а Internet Explorer - с атрибутом ID .

Различия в интерпретации ID в браузерах при декларативном использовании CSS не очень страшны. Другое дело, если автор решится программировать стили, т.е. изменять значения атрибутов описателей стилей. В этом случае разница объектных моделей документов в Netscape Navigator и Internet Explorer проявится в полной мере. Фактически, придется для каждого из браузеров разрабатывать совершенно разные страницы.

Наследование и переопределение

При обсуждении технических спецификаций часто бывает полезно вникнуть в смысл названия. В названии принято точно определять суть и назначение стандарта или спецификации. Описание стилей отображения элементов HTML-разметки носит название "Каскадные таблицы стилей" . Со словом "стилей" все более-менее понятно. Под словом "таблицы" следует понимать набор свойств элемента разметки , который можно представить в виде строки в таблице свойств, т.е. элементы разметки - строки, а свойства - столбцы. А вот слово "каскадные" требует пояснения.

Во-первых, существует иерархия элементов разметки (дерево объектов на странице). Во-вторых, свойства этих объектов могут наследоваться. Таким образом в дереве объектов образуется ветвь, которая ведет к листу дерева - элементу разметки , например, элементу списка или параграфу. Его свойства определяются элементами разметки , в которые вложен элемент, и описателями стиля для данного элемента:


Предыдущий текст закодирован в терминах разделов и списка следующим образом:

Это начало первого раздела, который сдвинут на 10 пикселов вправо относительно левого края параграфа и на 10 пикселов вниз относительно стандартной границы параграфа.
Это начало второго раздела, который сдвинут относительно предыдущего раздела на 10 пикселов, а относительно параграфа - на 20 пикселов. Данный раздел имеет красную строку с отступом в 10 пикселов и смещен относительно предыдущего раздела на 20 пикселов.
  • первый элемент списка
  • второй элемент списка
Список сдвинут относительно второго раздела на 10 пикселов, а относительно текущего параграфа - на 30 пикселов. Первая строка не является строкой начала параграфа, поэтому на нее отступ не распространяется (только в Netscape).

  • стили браузера по умолчанию переопределяются прилинкованными стилями (элемент LINK заголовка документа);
  • прилинкованные стили переопределяются описаниями стилей в элементе STYLE ;
  • стили элемента STYLE переопределяются атрибутом STYLE в любом из элементов разметки .
  • Не все атрибуты стиля могут наследоваться. Например, "набивка" (отступ содержания элемента от его границ) элемента BODY не наследуется вложенными в него элементами и определяется по умолчанию или прописывается для каждого элемента отдельно. Алгоритмы наследования в Internet Explorer и в Netscape Navigator разные, поэтому для единства отображения элементов следует прописывать стиль по максимуму атрибутов.

    Что такое CSS, основы css и html

    Как вы помните HTML - это язык разметки, но его создатели так хотели улучшить жизнь сайтостроителей, что добавляли в него элементы и параметры, отвечающие за внешний вид страницы: теги , , , и так далее.

    Но на какой-то момент код страниц стал таким громоздким и нечитабельным, что стало ясно - этот путь ведет "в никуда". Тогда было принято решение разделить разметку страницы (HTML) и ее визуальное оформление (CSS). В совокупности HTML и CSS позволяют творить чудеса и в этом вы скоро убедитесь.

    Что такое CSS

    CSS (Cascading Style Sheets) - каскадные таблицы стилей.

    Стиль - набор параметров, задающий внешнее представление объекта. Например, пусть мы хотим, чтобы все заголовки первого уровня (теги

    ) на одной странице имели красный цвет, размер - 24 и были написаны курсивом, а на другой странице были бы синего цвета, размера - 12. Наш заголовок - это объект, а цвет, размер и начертание - это параметры. Просто параметры нашего объекта для разных страниц разные, т.е. они отличаются стилем.

    Каждый элемент на странице может иметь свой стиль (параграфы, заголовки, линии, текст...). Набор стилей всех элементов называют таблицей стилей .

    Если для одного элемента задано несколько стилей (как в примере с заголовками), то применяется каскадирование , которое определяет приоритет того или иного стиля.

    Преимущества CSS

    • CSS позволяет значительно сократить размер кода и сделать его читабельным.
    • CSS позволяет задавать такие параметры, которые нельзя задать только языком HTML. Например, убрать подчеркивание у ссылок.
    • CSS позволяет легко изменять внешний вид страниц. Представьте, вы сделали сайт из 50 страниц, на которых все заголовки синего цвета. Через какое-то время, вы захотели поменять синий цвет на зеленый. Вам придется пройтись по всем 50 страницам и поменять цвет в соответствующем атрибуте. С CSS вам придется сделать это лишь один раз, в таблице стилей.
    • С CSS связана так называемая блочная верстка сайта.
    Пора переходить от слов к делу, в следующем уроке и начнем.

    Приветствую, дорогие друзья! В этом уроке вы узнаете что такое CSS , для чего нужен и как его правильно использовать. Это базовый урок из серии "Для самых маленьких", в котором я постараюсь объяснить наиболее понятным языком основы стилизации документов посредством CSS - Каскадных таблиц стилей (C ascading S tyle S heets).

    Класснуть

    Запинить

    Часть 1. Основы CSS

    Данный урок является логическим продолжением урока "Основы HTML для начинающих ", в котором я подробно объяснял, что такое язык разметки HTML, как он устроен и работает, базовые теги и правила верстки. В данном же уроке мы затронем стилизацию документа, созданного с использованием языка разметки, т.е. придание определенной формы, определенного цвета, последовательности, размеров различных элементов и текста на странице, рассмотрим наиболее эффективные приемы работы с каскадными таблицами стилей. Поняв основы, вы сможете самостоятельно правильно и эффективно стилизовать HTML документы.

    Обращаю ваше внимание, что в данном руководстве мы будем рассматривать CSS только в контексте использования с HTML документами в веб-браузере. С помощью CSS можно стилизовать и другие документы, использующие различные языки разметки. Например, стилизовать XML в Android приложениях, SVG или различные Desktop Environment в Unix-подобных операционных системах.

    Вообще, CSS довольно элементарный формальный язык, который придумали для описания внешнего вида документов. Это говорит о том, что он довольно прост и состоит из самобытных примитивных конструкций, которые не так сложны для изучения. Самое сложное не синтаксис, не правила написания конструкций, а огромное количество CSS свойств для запоминания, которые выполняют различные задачи. Благо, все правила англоязычные с соответствующей смысловой нагрузкой. Простой перевод на наш язык дает понятие о том, что это правило делает и наоборот - при переводе того, что мы хотим добиться определенным свойством на английский язык, велика вероятность того, что мы получим правильное свойство. Это значительно упрощает запоминание CSS правил на интуитивном уровне. Например, если нужно задать фоновый цвет достаточно сделать перевод на английский, в результате чего получаем background-color (отдельные слова в CSS пишутся через дефис).

    1.1 Использование CSS в HTML документах

    CSS довольно просто использовать в HTML документах. Его можно:


    Как я уже говорил ранее, CSS имеет довольно простой синтаксис. Давайте разберем его.


    Правила объявлений настолько просты, что их можно описать в одном предложении. Сначала пишется селектор , который выбирает конкретный элемент на странице, после фигурных скобок пишутся свойства со значениями после двоеточия, а сами свойства отделяются друг от друга точкой с запятой . Это всё.

    Просто, не правда ли?

    Самое сложное в CSS объявлении - селектор. Подробнее узнать о том, как формируются и как используются селекторы вы можете в уроке Все CSS селекторы в одном уроке - это очень важная тема, так как здесь раскрывается вся магия выборки элементов на странице, рекомендую посмотреть этот урок в обязательном порядке всем новичкам.

    Вкратце CSS селектор - (от слова select - выбирать) - это конструкция, с которой начинается каждый блок объявлений и которая служит для выборки элемента или однотипных элементов на странице для дальнейшей стилизации. Чаще всего в качестве селектора используется определенный класс тега, например:

    //HTML:

    //CSS: .my-class { background-color: #999; }

    Здесь селектором выступает класс my-class тега div, который получает необходимое оформление в CSS файле. В данном случае фоновый цвет - серый. Соответственно, если на странице есть несколько тегов (не только div) с классом my-class , все эти элементы получат одинаковое оформление - серый фон цвета #999.

    1.3 Каскадирование, наследование и приоритет

    Понять принцип каскадирования несложно. Давайте взглянем на пример:

    //HTML

    Далеко-далеко за словесными горами в стране.
    Далеко-далеко за словесными горами.
    //CSS .parent .children { color: #666; } .parent { padding: 10px; color: #999; }

    Из примера мы видим, что в CSS написан каскад, в котором класс .parent стоит на первом месте, после него через пробел указан дочерний класс .children , который отвечает уже за стилизацию только дочернего элемента. Дочерний тег обязательно должен быть вложен в тег с классом .parent . Если в HTML документе мы вынесем тег .children из тега div с классом .parent , он потеряет свое оформление, так как каскад уже не будет работать, структура нарушена.

    Что мы получим в результате нашего примера. Тег с классом.children получит цвет текста #666, так как имеет более длинный каскад, а.parent покрасится в цвет #999. Родительский класс будет иметь внутренние отступы 10px, в то время, как дочерний этих отступов иметь не будет, так как свойство padding не распространяется на дочерние элементы. Однако если мы уберем color: #666; у селектора .parent .children , то его текст покрасится в цвет родителя color: #999;


    Каскадирование и наследование позволяют стилизовать конкретные элементы на странице и определять приоритет применяемых стилей. Давайте рассмотрим иерархию приоритетов.

    1. Самым высоким приоритетом обладают свойства, в конце объявления которых указана конструкция !important . Не важно, какую вложенность имеет селектор, каким образом используются стили - инлайново или подключением внешнего файла, у них будет наибольший приоритет. Я крайне не рекомендую использовать !important при стилизации, так как в процессе поддержки или даже в процессе разработки в дальнейшем обязательно возникнет путаница, которую спасет только рефакторинг стилей. Как показывает практика, всегда есть способ не использовать!important .
      Пример использования!important: .my-class { background-color: #999!important; }
    2. Следующим по значимости приоритетом обладают инлайновые стили, прописанные в самом теге через атрибут style , которые мы рассмотрели ранее:
    3. Стили, заданные в теге style в самом документе имеют меньший приоритет;
    4. Ещё меньшим приоритетом обладают стили, подключенные к документу как внешний CSS файл посредством тега
    5. Самый низкий приоритет, окромя стандартных стилей браузера имеют стили родительских селекторов перед дочерними, например:
      //HTML

      Далеко-далеко за словесными горами.

      //CSS .my-class { margin: 10px; } будет иметь меньший приоритет для дочернего p , чем: .my-class p { margin: 15px; } В результате тег

      Находящийся в теге с классом.my-class получит значение свойства margin: 15px.

    Стоит также отметить, что количество классов или идентификаторов, а также наличие дополнительных псевдоклассов и конструкций в селекторе повышают приоритет для стилизации:

    My-class.class-2 { margin: 10px; } будет иметь больший приоритет, чем: .my-class { margin: 15px; }

    И т.д. по логической цепочке.

    И в завершение по приоритетам важно отметить, что стили, идущие в последующих объявлениях ниже по документу также имеют наибольший приоритет. Например:

    My-class { margin: 10px; } будет иметь меньший приоритет, чем идущий после него точно такой-же селектор: .my-class { margin: 15px; }

    В результате последний селектор в потоке документа получит значение свойства margin: 15px, так как является наиболее приоритетным. Однако если бы селектор первого объявления был длиннее, значния его свойств несомненно бы превалировали.

    Что касается наследования, здесь всё просто. Все дочерние элементы наследуют некоторые свойства родителя. Какие именно свойства наследуются предстоит выяснить вам в процессе изучения различных свойств и применении их на практике. Например, цвет текста всегда наследуется потомками, а отступы - нет.

    Часть 2. CSS свойства

    Я думаю нет смысла перечислять все CSS свойства, так как их очень много и практичней обратиться к справочнику всех CSS свойств. Я рекомендую изучить CSS свойства в справочнике на HTMLBook .

    Однако рассмотрим 10 самых используемых CSS свойств в верстке. Я взял 10 больших CSS файлов из своих проектов и отсортировал свойства по частоте использования.

    CSS Свойство

    Частота использования

    Описание

    color 960 раз Цвет текста элемента:
    background-color 755 раз Цвет фона элемента:
    font-size 524 раза Размер шрифта:
    opacity 435 раз Уровень прозрачности элемента:
    padding 372 раза Размер полей внутри элемента:
    width 356 раз Ширина блочного элемента, не включая размеры границ и полей:
    margin 311 раз Внешние отступы элемента:
    height 305 раз Высота блочного элемента, не включая размеры границ и полей:
    font-weight 280 раз Насыщенность шрифта:
    text-align 245 раз Горизонтальное выравнивание текста:

    Часть 3. Медиа-запросы

    Медиа-запросы в CSS - это база для создания отзывчивой верстки, позволяющая стилизовать элементы в зависимости от размера экрана или устройства, на котором отображается веб-сайт. Технически Медиа-запрос - это простое логическое выражение, которое может быть или истинным или ложным. Условиями для такого выражения являются либо параметры устройства, на котором отображается веб-страница, либо размер экрана в пикселах.

    В данном руководстве мы рассмотрим базовые возможности медиа-запросов, которые необходимы для адаптивной верстки сайтов и практически полезны.

    Медиа-запрос пишется в самом файле стилей или в теле документа (тег style) и начинается с объявления правила @media . Структура медиа запроса довольно проста:


    Условием может выступать либо устройство - all (все устройства), screen, print, tv и т.д., либо медиа-функции, которые задают параметры устройства или разрешение экрана, на котором отображается документ.

    Наиболее часто используемые медиа-функции определяют именно максимальное и минимальное разрешение экрана устройства:


    Здесь устройства с максимальным разрешением экрана 480px или минимальным разрешением 320px будут отображать текст тега с классом.my-class серым. Данное условие я привел для примера, практически оно бесполезно. Чаще всего требуется указать либо только максимальное разрешение, либо только минимальное, в пределах которого будет прменяться свойство.

    Кроме всего прочего, как мы видим из примера, функции могут содержать условия and (И) , not (НЕ) и only (Для старых браузеров, не поддерживающих медиа-запросы) . Нет логического оператора or (ИЛИ) , его роль выполняет запятая. Медиа-функции, как мы видим заключают в обычные круглые скобки.

    Размещение свойств в медиа-запросе не дает никакого приоритета, поэтому логичней размещать медиа-запросы в конце CSS документа, либо загружать тегом link внешний CSS файл с медиа-запросами после загрузки основных стилей сайта для правильного переопределения последних на разных разрешениях или на различных устройствах.

    1. Старайтесь использовать только внешние подключаемые CSS файлы . Внутреннюю стилизацию применяйте только если это необходимо для корректного функционирования веб-сайта;
    2. Старайтесь стилизовать только классы . Не стилизуйте идентификаторы (задаются через id="решетку" и пишутся через #решетку). Старайтесь меньше стилизовать теги без классов. Например, если вы стилизуете тег h3, а в дальнейшем SEO специалист решит, что заголовок здесь не уместен, обычный div должен иметь такие-же свойства с классом заголовка и отображаться также. Как вариант можно сделать дубликаты HTML тегов в классы, например, .h1, .h2, .h3, .footer, .header, .aside и стилизовать их соответствующим образом;
    3. Старайтесь стилизовать элементы максимально автономно, сокращайте цепочку каскада до одного блока, чтобы было меньше зависимостей от родительских элементов. Это необходимо для максимально эффективного повторного использования блоков на странице и их модификации в других местах верстки. Но без фанатизма. Не стоит задавать отдельные классы каждому тегу в блоке, если не предполагается его автономное использование. Если вы перенесете блок в другое место страницы, он должен отображаться также и не зависеть от родителя. В этом вам поможет использование какой-либо методологии именования классов. Не важно, будет это БЭМ, методология, либо разработанная на основе вашего личного опыта или простые правила, предложенные мной - это лучше, чем называть классы как попало и строить нелогичные и длинные цепочки классов;
    4. Старайтесь называть классы тегов в зависимости от того, какую функцию выполняет блок, а не от того, какое в нем будет содержание. Например, если у вас есть секция с отзывами в виде карусели, не стоит называть селекторы, используя слова reviews , otzivy и т.д. Лучше назвать carousel-once , если планируется выводит по одному пункту карусели на странице. В дальнейшем, возможно вы будете использовать эту карусель не только для оформления отзывов, а задействуете этот код например, для вывода списка коллег компании. В таком случае наименование класса reviews будет несколько неуместным;
    5. Используйте CSS препроцессоры, в этом нет ничего сложного. Мой выбор пал на препроцессор Sass уже довольно давно и я его рекомендую к использованию. У нас есть неплохой урок, в котором я рассказываю как легко пользоваться препроцессором и как он упрощает жизнь: ;
    6. Используйте сброс стандартных стилей браузера или нормализацию, которая приводит стандартные стили к общему для всех браузеров знаменателю. Я использую в своих проектах Normalize.css , который входит в состав CSS фреймворка Bootstrap;
    7. Когда почувствуете, что выполняете слишком много однообразной работы в процессе верстки - переходите к использованию какого-либо CSS фреймворка или разработайте свой с наиболее часто используемыми элементами, это ускорит вашу работу. Я использую в работе только сетку Bootstrap без стилистического оформления кнопок, панелей и прочих элементов. Этого вполне достаточно для эффективной работы. Хорошая адаптивность Bootstrap сетки по-умолчанию также радует;
    8. Самостоятельно экспериментируйте со свойствами. Открывайте CSS справочник и пробуйте. Только так можно наработать опыт, запомнить какое свойство что делает и довести написание стилей документа до автоматизма.

    CSS - это технология, позволяющая управлять внешим видом содержимого html-документа. Аббревиатура CSS расшифровывается как Cascading Style Sheets, а переводится это так: каскадные таблицы стилей.

    Изучение CSS подразумевает знание HTML. Если вы не изучили HTML, то начинать изучение CSS вам ещё рано. Сначала освойте язык разметки гипертекста, а потом приступайте к изучению каскадных таблиц стилей.

    Ближе к делу.

    Каждый элемент html-документа имеет свой внешний вид по умолчанию. Например, текст взятый в тег

    , будет иметь поределённый размер, цвет и шрифт. Так и все теги по умолчанию как-то отображаются образуя стиль.

    Стиль html документа - это, говоря по простому, всё, что относится к отображению документа в браузере: шрифты, размеры, цвета, разрядки заголовков и текста, отступы и т.д. При помощи CSS мы можем управлять параметрами форматирования элементов документа.

    Как именно это делается?

    Опишу для начала один способ присоединения CSS к документу. Хотя способов существует несколько, но нужно начать с чего-то одного.

    Итак, в корне сайта создаёте текстовый файл, но с расширением не.txt, а.css. Корень сайта выбран просто так, можно создать папку /css/ и разместить файл там.

    Назовём этот файл css-file.css . В этот файл вписывается программный код таблицы стилей. Таблица стилей - это шаблон, который управляет форматированием тэгов HTML в Web-документе.

    Таблица стилей представляет собой набор правил форматирования тегов HTML. Синтаксис их следующий:

    тег { свойство: значение }

    Например сделаем этот заголовок синим и величиной 16pt. Для этого в файл вписывается строка:

    h1 { color : blue ; font-size : 16pt }

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

    В html документе теперь теги

    будут синие и величиной 16pt.

    Другой способ

    Есть и другой способ прописать в html-документе правило CSS. Нужно в разделе прописать таблицу стилей в теге

    Сейчас я приведу пример того, как это работает. Вот образец кода:

    Пример CSS

    Привет!

    Заголовок h2!

    Ещё один способ добавления CSS

    Существует еще один способ добавить стиль к тегу - прописать нужные параметры стиля в самом теге в атрибуте style . Данные стили называются внутренние, или встроенные. По сути эти стили - это расширение одного тега. Вот пример использования такого стиля:

    Пример CSS

    Заголовок h1 без стилей

    Заголовок h1 с внутренним стилем

    Промежуточные итоги

    Итак, мы познакомились с тремя способами добавления таблиц стилей к документу.

    1. Связывание - хранение таблицы CSS в отдельном файле и происходит подключение его в html-документам. Этот способ позволяет использовать одну таблицу стилей для форматирования многих документов. Стили из таких файлов называют связанные стили.
    2. Внедрение - позволяет задавать все правила таблицы стилей непосредственно в заголовке документа. Такие стили также называют глобальные стили.
    3. Встраивание в тэги документа - позволяет изменять параметры стиля конкретных тегов страницы. Это также называют внутренний или встроенный стиль.

    Есть ещё четвертый способ - импортирование , но его мы пока упустим.

    Сейчас нас интересует следующий вопрос. Как будет вести себя браузер, если тегу

    указаны стили всеми тремя способами.

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

    Наверно именно из-за этой иерархии таблицы стилей назвали каскадными.

    Удобный способ

    Самый удобный способ задания стилей - это подключение css файла в документу, или связывание . Именно он используется наиболее часто, так как позволяет изменяя стили в одном месте, влиять на большое число страниц.

    Подробнее про синтаксис CSS и используемые термины

    Как я написал выше, таблица стилей представляет собой набор правил форматирования тегов HTML. Синтаксис этих следующий:

    тег { свойство: значение }

    Правило CSS - это указание браузеру как отображать тег.

    Любое правило каскадных таблиц стилей состоит из двух частей: селектора и определения. То есть наш пример синтаксиса можно написать так:

    селектор { определение }

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

    селектор { свойство: значение }

    В одном правиле CSS можно задавать несколько определений, в таком случае их разделяют символом точка с запятой (;), именно так и было сделано в примерах выше.

    селектор
    {
    свойство: значение;
    свойство: значение
    }

    После последнего определения ставить точку с запятой (;) не обязательно.

    В качестве селектора могут выступать не только теги, но и классы и идентификаторы. Но это тема отдельной статьи.

    CSS не чувствителен к регистру и пробельным символам, поэтому переносы строки, знаки табуляции и пробелы можно использовать на собственное усмотрение для удобства чтения кода.

    Пример CSS

    Заголовок h1

    Заголовок h2

    В этом примере первое правило (для селектора h1 ) записано в одну строку, второе правило (для селектора h2 ) прописано по другому - каждой определение селектора прописано в новой строке. Второй вариант кода более удобен для чтения.

    В CSS допустимо для одного селектора каждое свойство указывать по отдельности, вот пример такого кода:

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

    Может получиться так, что для одного селектора было два раза задано одно стилевое свойство.

    В этом примере для селектора h1 сначала указали синий цвет, потом красный. В таком случае будет присвоено стилевое свойство, правило с которым прописано ниже по коду. В нашем случае тег h1 будет отображаться красным цветом.

    Такие ситуации обычно возникают случайно, но также могут иметь место при подключении к документу разных стилевых файлов, в которых прописаны одинаковые селекторы. Этот принцип полезно помнить при неверной работе таблиц CSS.

    Очевидная вещь: у каждого свойства может быть только соответствующее ему значение. У свойства color это будет цвет, а не размер.