CSS (таблицы каскадных стилей) — что это такое, Style и Link для связывания языка Css и Html
Здравствуйте уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня я хочу начать рассказывать во всех подробностях о CSS (материалы будут накапливаться в Справочнике CSS). Самое время переходить к нему после изучения Html. В современной верстке язык стилевой разметки Css отвечает за внешнее оформление страниц сайта и без его понимания будет очень сложно что-то поправить, передвинуть или выровнять.
Конечно же, Css по сравнению с Html выглядит намного более сложным, но это если касаться вопроса кроссбраузерной верстки, а вот применительно к тому, чтобы самому поправить какую-нибудь мелочь в дизайне собственного сайта, то тут особого ума и не надо. В общем, мы попробуем в деталях разобрать основы CSS, а уже нюансы кроссбраузерной верстки останутся на факультативное изучение (по желанию). Но базовые понятия CSS нужно знать всем вебмастерам.
Что такое язык CSS и для чего это нужно
Аббревиатура CSS расшифровывается как Cascading Style Sheets или же в русском переводе — каскадные таблицы стилей. Что же это такое CSS и для чего он был в свое время придуман? Кстати, хороший вопрос, а какого рода аббревиатура CSS? Мне почему то хочется относить CSS к мужскому роду, поэтому так и буду продолжать делать. Если это ошибочно, то звиняйте.
Итак, опираясь на изученный нами чуть раньше материал по языку Html мы можем сказать, что разметка веб документа осуществляется с помощью тегов этого языка гипертекстовой разметки. Т.е. с помощью Html мы создаем структуры наших web документов. Например, в чистом Html мы можем задавать заголовки, абзацы и другие элементы структуры документов, и даже придать этим элементам нужный нам вид в браузере.
Но время диктовало необходимость использования в Html все новых и новых атрибутов визуального оформления web документов. Однако был предложен другой, более перспективный вариант развития — создание отдельного языка стилевой разметки CSS. И этот вариант имел ряд преимуществ перед простым наращиванием количества атрибутов визуального оформления у Html тэгов.
Почему? А вы вспомните, как можно в чистом Html задать цвет фрагменту текста? Правильно, с помощью Html тега Font и атрибута Color. А если вы хотите покрасить в нужный цвет сразу несколько абзацев в вашем тексте? Тогда придется внутри каждого абзаца (тег абзаца P является блочным, а значит его нельзя будет помещать внутри строчного элемента Font) вставлять элементы Font с нужным значением цвета в атрибуте Color.
Все это жутко будет загромождать код документа, что очень и очень нежелательно, ибо пострадает скорость загрузки web документов, а на коммуникационное оборудование интернета будет создаваться излишняя нагрузка. На это разработчики спецификаций из валидатора (validator) W3C «„пойтить“ не могли.
Поэтому они придумали следующий выход из создавшейся ситуации. Разработчики из W3C решили оформить все визуальные представления web документа в виде специального языка стилевой разметки, который назвали каскадными таблицами стилей или же попросту CSS (читается как си-эс-эс). В чем суть технологии CSS? А суть в следующем — подключая язык стилевой разметки к любым web документам мы сможем задавать визуальное представление всех тех элементов (создаваемых Html тегами), которые будут встречаться в этом документе.
В интернете есть ресурс, который помогает очень наглядно увидеть, как может изменять свой вид веб страница только из-за того, что к ней подключают другой файл таблицы каскадных стилей. По моему, это будет лучшим ответом на вопрос: что такое CSS и зачем это нужно. Базовый вид документа (веб страницы) вы сможете увидеть перейдя по этой ссылке:

Ничего особенного, но вот если вы перейдете по ссылке „View All Designs“ из левого меню, то сможете увидеть десятки или даже сотни вариантов оформления этой же самой веб страницы с помощью подключения другого стилевого оформления (другого файла таблиц стилей).

Обратите внимание, что Html код веб страницы при этом остается в точности таким же, а изменяется лишь CSS оформление. Поражает, не правда ли? Это не только наглядно отвечает на вопрос „что такое CSS“, но и стимулирует к началу изучения основ каскадных таблиц стилей и применению полученных знаний на практике. Во всяком случае, у меня было так.
Язык CSS не является языком разметки как, например, Html. CSS — это язык стилевой разметки. У него свой синтаксис, свое внутреннее содержание и во многом он будет сильно отличаться от уже изученного нами ранее языка гипертекстовой разметки (см. Учебник Html).
Кроме того, по сравнению с Html, язык стилевой разметки CSS намного сложнее. В CSS очень много нюансов, которые нужно будет знать окромя базовых понятий. У языка Html никаких особых нюансов не было — изучили все элементы и можете спокойно работать с кодом. Мне кажется, что CSS можно сравнить с шахматами — мало знать как ходят все фигуры, надо еще и уметь играть.
Итак, что же такое язык CSS и из чего он состоит. Язык стилевой разметки можно разделить на две части:
- Правила CSS, которые говорят браузеру как должен выглядеть элемент на экране.
- Селекторы CSS — метки, которые позволяют браузеру понять, к каким именно элементам Html кода нужно будет применять данные правила.

Теперь давайте посмотрим, как язык стилевой разметки CSS подключается к другому языку (гипертекстовой разметки Html). Существуют три основных способа использования CSS совместно с Html:
- Вложение — CSS код прописывается непосредственно в нужном теге Html элемента с помощью атрибута Style
- Встраивание — весь CSS код для web документа прописывается в шапке этого документа (внутри тегов Head) с помощью элемента Style
- Связывание — весь CSS код размещается в отдельном внешнем файле, который подключается к web документу с помощью элемента Link в шапке этого документа
Ну вот, видите как мы уже много узнали о языке стилевой разметки. Теперь самое время поговорить о синтаксисе CSS. В общем то, синтаксис CSS довольно прост:

Одно правило CSS состоит из двух элементов — свойство (в нашем примере это color — цвет текста и background — цвет фона) и его значение (в нашем примере это Html код цветов red и #CCCCCC). Обязательным условием является отделение свойства от его значения двоеточием.
Далее. Одно правило CSS отделяется от другого в обязательном порядке точкой с запятой. После последнего правила можно будет точку с запятой уже не ставить, но во избежании эксцессов лучше всего будет взять за правило ставить точку с запятой после окончания любого правила в CSS коде. Пробелы (равно как переносы строки и знаки табуляции) в CSS коде не имеют никакого значения и ставить вы их можете по своему усмотрению.
Style Css — атрибут и тег для подключения таблиц каскадных стилей к Html коду
Ну, а теперь давайте рассмотрим на примерах все те способы применения правил CSS к нашему web документу, которые существуют и которые в общих чертах были описаны чуть выше. Первый способ называется метод вложения CSS в Html с использованием атрибута Style:

Давайте посмотрим, как можно будет использовать данный метод вложения CSS для задания цвета и фона абзацу текста:
<p style="color:red;background:#cccccc">Что такое CSS и метод вложения с помощью атрибута Style</p>
Что такое CSS и метод вложения с помощью атрибута Style
Как вы можете видеть, одним легким движение мы окрасили текст абзаца в красный цвет (color:red) и одновременно подложили под него серый фон (background:#cccccc). Style относится к тем шести глобальным атрибутам в Html, которые могут использоваться совместно с абсолютно любыми тегами (они перечислены внизу приведенного скриншота):

В Css мы так же активно будем применять универсальные атрибуты Id и Class, но об этом разговор пойдет уже в последующих статьях, а пока что мы рассмотрели возможность использования атрибута Style для подключения правил CSS к определенным элементам Html кода. Атрибут Style позволяет использовать в качестве своего значения набор правил CSS (в неограниченном количестве).
Метод вложения CSS в Html с помощью атрибута Style очень просто реализовать на практике, но тем не менее используется он в реальной верстке очень редко. Но зато с помощью него можно очень просто что-то попробовать и поэкспериментировать, а уже потом перенести все эти правила в отдельный файл с таблицами CSS стилей.
Следующий способ подключения языка стилевой разметки к языку гипертекстовой разметки называется методом встраивания CSS в Html. Этот способ принципиально отличается от рассмотренного ранее метода вложения. Вместо того, чтобы включать в каждый тег Html кода на странице атрибут Style, содержащий правила языка стилей, мы теперь будет прописывать все нужные нам для этого web документа правила CSS внутри одного единственного тега Style (надеюсь вы помните отличие Html тега от атрибута), который в свою очередь будет размещаться в шапке этого документа (между тегами Head).
Вы помните, что такое тег Head и где он прописывается в структуре Html документа? Если не помните, то посмотрите это на данной блок-схеме:

Т.е. в коде это могло бы выглядеть так:
<head> ... <style type=”text/css”> ... "CSS правила, применяемые ко всему Html документу" ... </style> ... </head>
Не совсем понятно? Ну, сейчас я попробую это проиллюстрировать:

Для того, чтобы браузер не принимал CSS правила за язык гипертекстовой разметки Html в элементе Style нужно будет прописать обязательный атрибут Type со значением ”text/css” (заголовок медиа контента для таблиц каскадных стилей). Т.о. заключенный внутри тега Style код будет интерпретирован браузером как правила языка стилевой разметки CSS.
Смотрим дальше на приведенный чуть выше пример. Как вы можете видеть, правила CSS заключены в фигурные скобки, а перед ними прописан так называемый селектор в виде латинской буквы „P“. Зачем нужен это селектор? А как иначе мы можем указать браузеру, что данные правила CSS нужно будет применить только к тега абзацам (селектор P) данного web документа и ни к чему другому.
Тут мы опять коснулись вопроса синтаксиса CSS. При использовании методов встраивания и вложения CSS в Html все правила языка стилевой разметки должны быть заключены в фигурные скобки, а перед ними должен обязательно стоять селектор или же несколько селекторов:
Селектор CSS {Свойство: Значение; Свойство: Значение}
При использовании метода вложения CSS с Html селектор и фигурные скобки мы не использовали, т.к. браузеру было уже и так понятно, что данные правила CSS нужно применять именно к тому тегу, внутри которого и прописан атрибут Style.
При использовании метода встраивания или вложения, ситуация с определением того, кому адресованы данные Css правила усложнилась и понадобилось использование фигурных скобок и селекторов. Т.о. мы указываем браузеру, что вот этот набор CSS правил (заключенный в фигурные скобки) ты уж будь любезен применить ко всем абзацам, а этот набор правил — для чего то там еще.
В простейшем случае в качестве селектора может использовать название тега, к которому должны быть применены CSS правила заключенные в фигурные скобки, которые будут открываться сразу после названия селектора. В нашем примере в качестве селектора используется название тега абзаца „P“. Уже более подробно про селекторы в языке стилевой разметки мы с вами поговорим в следующей статье.
Подведем итог для метода встраивания CSS кода в Html документ — все нужные для этого документа CSS правила будут описаны в одном единственном теге Style, а не во многих разных тегах, как это было бы в случае использования метода вложения.
Таблицы стилей CSS в отдельном файле (Link)
Последний способ интеграции CSS кода в Html документ называется методом связывания. Проще всего будет проиллюстрировать метод связывания CSS и Html:

Основное отличие способа связывания от рассмотренных чуть выше способов (вложения и встраивания CSS в Html код) заключается в том, что при использовании метода связывания все правила CSS выносятся в отдельный внешний файл. Файл этот будет опять же текстовым (как и любой Html документ) и ему обычно присваивают расширения .css, чтобы для его открытия на локальном компьютере под управлением Windows можно было бы назначить специальную программу (я советую использовать для этого лучший Html и CSS редактор Notepad++).
При использовании метода связывания (внешнего CSS файла с Html документом) используется специальных тег Link, который прописывается опять же между открывающим и закрывающим тегам Head в Html коде. Элемент Link относится к разряду служебных гиперссылок в Html не видимых в браузере.

Браузер в этом случае найдет указанный файл таблиц стилей (относительный или абсолютный путь до него указан в атрибуте Href тега Link), загрузит его и применит указанные в нем правила CSS для вешнего оформления текущего Html документа. Вообще, связывание CSS и Html очень похоже на описанное чуть раньше использование тега Style, но связывание позволяет очень существенно ускорить загрузку страниц сайта и снизить нагрузку на коммуникационное оборудование интернета.
При использовании элемента Style (метод встраивания) браузер должен будет каждый раз подгружать вместе с кодом Html документа и зашитый в нем CSS код, а в случае использования внешнего файла таблиц стилей, браузеру достаточно будет один раз загрузить файл Style.css и уже потом брать его из собственного кеша (области на жестком диске компьютера пользователя) при открытии других страниц вашего сайта.
Атрибут type=”text/css” тега Link означает, что данный медиа контент будет ничем иным, как языком стилевой разметки CSS. Но так же при связывании файла CSS и Html документа используется атрибут Rel со значением Stylesheet. Дело в том, что элемент Link (служебная гиперссылка) может использоваться для абсолютно разных целей. Если вы посмотрите исходный код этой страницы в браузере, то увидите, что в области Head имеется целая россыпь различных тегов Link:

И назначение каждого из этих элементов служебной гиперссылки Link определяется значением атрибута Rel. Например, rel=»shortcut icon" используется для указания пути до файла иконки Favicon, а rel="alternate" может использоваться для указания альтернативной версии web страницы (примером альтернативного представления Html документа может служить RSS лента).
Ну, и в случае использования атрибута rel="stylesheet" в служебной гиперссылке Link, мы задаем браузеру путь до файла таблиц стилей CSS (в атрибуте Href этот путь можно указать в абсолютном или относительном виде). Т.е. с помощью атрибута Rel мы говорим браузеру, что будет из себя представлять файл, путь к которому указан в атрибуте Href служебной гиперссылки Link (stylesheet — соответствует таблицам стилей CSS).
На сайтах почти всегда используется метод связывания CSS и Html (внешний файл таблиц стилей). Атрибуты и теги Style применяют обычно только для тестирования, хотя могут найтись и такие специфические задачи, когда использование Style будет оправдано (например, при оформлении почтовой рассылки). Но в реальной работе на сайтах используются именно внешние файлы с таблицами CSS, т.е. метод связывания.
За сим позволю себе откланяться и клятвенно пообещать вам, что продолжение последует в самое ближайшее время. Еще раз повторюсь, что обучение CSS обычно проходит гораздо труднее нежели изучении Html, поэтому постараюсь быть максимально подробным и наглядным.
У Евгения Попова имеется видекурс по PHP+MySQL, который стоит того, чтобы с ним ознакомиться.
Можете посмотреть бесплатные видеоуроки по Html и CSS, а так же можете ознакомиться с другими статьями:
- Учебник Html
- Что такое язык Html, валидатор W3C и Html тэги
- Doctype и комментарии в html
- Спецсимволы (мнемоники) в Html, символ неразрывного пробела
- Коды цвета в Html и CSS коде (RGB палитра)
- Как в Html код вставить картинку и html ссылку
- Img и обтекание картинки текстом
- Гиперссылки (a, target blank, href, якоря)
- Html список (UL, OL, DL и LI)
- Html таблица (Tr, Th, Td, Table)
- Html формы - теги Form и Input
- Справочник CSS для начинающих
- Блочная Div верстка сайта в Html и CSS
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
-
- List style ( type, image, position) — Css правила для настройки внешнего вида списков в Html коде
- Css свойства Font (Weight, Family, Size, Style) и Line Height для оформления шрифтов в Html коде
- CSS правило Display (block, none, inline) — задаем тип отображения Html элементов на вебстранице
- Единицы размеров (пикселы, Em и Ex) в CSS для шрифтов, цвет и наследование правил в CSS
- Background в CSS (color, position, image, repeat, attachment) для задания цвета фона или фоновой картинки Html элементов
- Height, width и overflow — CSS правила для описания области контента при блочной верстке
- CSS селекторы тега, класса (class), Id, универсальный селектор и селекторы атрибутов



Дмитрий, вы как луч света в темном царстве. И хоть до CSS я, наверное, не сразу дорасту, но даже небольшие поправки в наших блогах по вашим рекомендациям, уже улучшили общую картину.;)
Понравились объяснения в схемах, сам их рисовал? =-)
Как всегда на высоте Дмитрий. Для начинающих само то, да и для многих хорошая памятка.
Как всегда, куча полезной информации. Для новичков в HTML/CSS верстке порекомендую сервис, который дизайн, созданный в фотошоп, автоматически конвертит в psd2htmlconverter. Потом остается тока немного доработать
vawsan: это скриншоты обработанные в редакторе Snagit
Дмитрий,только опечаток много в текстах на картинках...
Сергей: увы и ах — это моя ахиллесова пята (не вижу ошибок в упор). В институт из-за этого поступал очень трудно и долго (проклятое сочинение), но закончил его с отличием (ибо технический).
А я и сам тоже часто ошибаюсь и только потом,в уже опубликованных материалах,замечаю это... Кстати,за ваш блог-большое спасибо! Я очень многое почерпнул из ваших статей и применил на практике.
Отлично оформленная статья, но в ней нет логического завершения.
На самом деле при оформлении веб-страниц иногда используют все 3 способа (или в сочетаниях) взаимодействия CSS и Html и что бы не возникло конфликта, каждый способ имеет свой приоритет, т.е. очерёдность выполнения (наименьший у команд в вынесенном файле).
Соответственно, при отображении такой страницы, браузер будет последовательно (в соответствии с приоритетом) выполнять CSS-команды для художественного оформления страницы.
Именно последовательно, т.е. по очереди и определяют смысл слова «каскадные(следующие друг за другом)» в названии этого языка.
Вот на этих определениях и нужно было завершить статью.
Сергей: спасибо за отзыв.
Yagron: совершенно справедливо, но это только начало большого цикла статей и про приоритет CSS правил в атрибуте Style перед остальными способами подключения CSS к Html коду будет написано и про все остальное. Спасибо, что высказали свое мнение.
Дим, привет, это офтом. А ты тут с длинной юрла не пересторался:
ktonanovenkogo.ru/html/ur...yk-css-html.html ? ^_^
Здравствуйте !
Я правильно понимаю, что если я пока не разбираюсь в CSS, а таблицы стилей в теме wordpress нет, то скачать эту таблицу на стороне не получится и можно тему выбрасывать «в топку» ?
Александр: без основ Html и CSS Вам будет тяжко и будут очень часто возникать «совершенно неразрешимые проблемы». Знания — это сила, поверьте.
Здравствуйте,Дмитрий! Спасибо за этот урок!Я хочу найти решение своей проблемы. У меня новостной блог lubovm.ru. При опубликовании записи исчезает сетка таблицы. Иногда, с сеткой таблицы информация более удобоварима. У меня есть внешний файл Style.css. И хотя,в HTMLе я указываю в записи BORDER="1", но, как я поняла, подставляется значение из внешнего файла стилей. Большая просьба к Вам, в следующих уроках привести практический пример, как решить эту проблему,с помощью Link ?