Синтаксис CSS. Правила CSS
Рассмотрим основные правила CSS для оформления текстовых элементов на странице.
- font-family : семейство шрифта|тип шрифта. Один нюанс: если название шрифта будет содержать пробел, то это название нужно взять в кавычки.
- font-size : величина|%. Это размер шрифта. Его можно указать в пикселях, процентах, em. Причем проценты считаются от размера шрифта, который этот элемент получил по наследству.
- font-weight : normal|bold|bolder|lighter|число от 100 до 900. Это толщина шрифта. 400 = normal, 700 = bold.
- font-style : normal|italic. Это наклон вашего шрифта. По умолчанию - normal.
- font-variant : normal|small-caps. Это начертание строчных букв.
- сборные правила font . Они позволяют указать отдельные правила через пробелы. В большинстве сборных правил порядок не важен, а в правиле font он имеет важное значение.
- font : font-style font-variant font-weigth font-size font-family. Правила пишем только в таком порядке. Правила font-size и font-family указывать обязательно (т.к. они не имеют значений по умолчанию), остальные правила можно опускать.
Правила работы с текстом в CSS
- text-align : left|right|center|justify. Это замена атрибуту align, это горизонтальное выравнивание строк. Применяется только в блочных элементах.
- text-decoration : none|overline (|) underline (|) line-through. Это оформление горизонтальной линии (нет линии, линия над строкой текста, под строкой текста, перечеркивание).
- text-indent : величина|%. Это красная строка. Проценты считаются от размера той области, где стоит тот самый текст. Применяется только для блочных элементов.
- text-transform : none|capitalize|uppercase|lowercase (символы не меняются, каждое слово с большой буквы, трансформация в строчные или заглавные буквы). Это трансформация символов.
- letter-spacing : normal|величина. Это расстояние между символами. Нельзя указывать в процентах.
- word-spacing : normal|величина. Это расстояние между словами. Нельзя указывать в процентах.
- vertical-align : baseline|sub|super|top|text-top|middle|bottom|text-bottom|%. Вертикальное выравнивание. Это выравнивание строчных элементов между собой. Но для элементов таблицы “td” и “th” вертикальное выравнивание выравнивает весь контент, который находится внутри.
- line-height : normal|величина|%. Высота строки, где находится текст.
- white-space : normal|pre|nowrap. Как обрабатывать пробельные символы в нашем элементе (normal - они сокращаются и по ним производится автоматический перенос, nowrap - пробельные символы сокращаются, но переноса по ним не производится, pre - пробелы никак не обрабатываются, т.е. не сокращаются и переноса по ним тоже нет).
Оформление списков в CSS
Правила оформления списков в css можно применять как для всего списка, так и для отдельных элементов списка.
- list-style-type : none|circle|disc|square|decimal|lower-alpha|upper-alpha|lower-roman|upper-roman. Это тип маркирации: нет маркера, круг, диск, квадрат, арабские цифры, латинские буквы в разных регистрах, римская нумерация в разных регистрах.
- list-style-position : outside|inside (за пределами, внутри). Это размещение области с маркером. Для маркера формируется специальная область: за пределами элемента “li” или внутри него (по умолчанию - за пределами элемента).
- list-style-image : none|url. Картинка для оформления маркера. Можем указать url картинки, чтобы она отображалась вместо маркера.
- list-style : list-style-type list-style-position list-style-image. Т.е. здесь мы записываем все три правила выше в одно, сборное правило. Здесь порядок не имеет никакого значения.
Свойства цвета и фона в CSS
- color : цвет.
- background-color : цвет|transparent. Это цвет фона. По умолчанию он прозрачный.
- background-image : none|url. Фоновая картинка. Можно поставить картинку, указав ее url.
- background-position : top|bottom|center|left|right|величина|%. Позиционирование картинки в элементе.
- background-attachment : fixed|scroll (привязка к элементу, области просмотра). Это вопрос прикрепления картинки, от чего считается координата. Fixed - это считать координаты от области просмотра.
- background-repeat : repeat|repeat-x|repeat-y|no-repeat. Повторять: по обеим осям, повторять по оси x (по горизонтали), по оси y (по вертикали), не повторять.
- background : transparent background-color background-image background-repeat background-attachment background-position. Сборное правило, объединяет в себе все правила background.
Игорь . Обновление:Октябрь 30, 2018 .
В стартовой статье данного раздела была дана общая информация, касающаяся , включая описание способов подключения стилей к HTML-коду страницы вебсайта (документа), который определяет наличие тех или иных элементов на вебстранице.
В этой публикации мы рассмотрим, как правильно составлять и прописывать свойства CSS для всех элементов, чтобы браузер смог их идентифицировать и корректно отобразить на странице.
В частности, разберем, что представляет из себя в общем виде отдельно взятое стилевое правило, которое включает в себя селектор, а также свойства и их значения.
Синтаксис и варианты записи правил CSS
Поскольку каскадные таблицы стилей представляют из себя, пусть и специализированный, но все же язык, допустимо провести аналогию совокупности правил CSS с простым текстом, где каждое слово состоит из букв, предложение — из слов, а сам текстовый фрагмент — из предложений.
Учитывая эту наглядную ассоциацию, можно вывести логическую последовательность, которая касается структуры CSS (она является максимально оптимальной, на мой скромный взгляд):
- значения (или параметры) , которые выражается в числах, коде цвета, названии шрифта и т.п., в соответствии с нашей аналогий можно считать буквами;
- структурной единицей CSS является свойство , определяющее свою часть внешнего вида элемента на странице (его цвет, шрифт текста, размеры, отступы, позицию и т.д.), которому соответствуют конкретные значения (одно или несколько). Здесь совокупность названия свойства и его параметра можно сравнить со словом (которое также может состоять из одной или более букв) в стандартном текстовом фрагменте;
- правило CSS — селектор (наименование стиля) вместе с набором свойств CSS для каждого элемента полностью определяет его оформление и местоположения на странице. Структурно ассоциируется с предложением (совокупностью отдельно взятых слов в обычном тексте);
- полное собрание всех правил CSS для конкретного документа (веб-страницы) обеспечивает его корректное отображение в браузере. Сравним это с завершенным отрывком текста.
Возможно, предложенная мною ассоциация немного притянута за уши, однако, мне кажется, она все-таки поможет начинающим понять общую структуру языка CSS.
Итак, каждому свойству присваивается конкретное значение (параметр), причем, их может быть несколько. Соответствующий набор свойств (правило) применяется к определенному селектору. Схематически правило CSS можно отобразить так :
Впереди помещается селектор, затем ставятся фигурные скобки (открывающая и закрывающая), между которыми и находятся свойства CSS с присвоенными им значениями, название каждого свойства отделяется от соответствующего ему параметра двоеточием. Все свойства вместе со значениями разделяются между собой точкой с запятой. Посмотрим на живой пример:
Body { font-size: 14px; background: #00ff00 url("west.png") repeat-x; }
Обратите внимание на то, что свойство background имеет сразу несколько значений: цвет фона (#00ff00), путь до фонового изображения ("west.png") и разрешение на его повторение по горизонтали (repeat-x). Наверное, вы заметили, что подобный вариант записи несколько отличается от схемы, представленной чуть выше.
На самом деле никакого несоответствия здесь нет. Поскольку CSS не чувствителен к пробелам, переносам строк, символам табуляции, стилевые правила могут быть записаны самыми разными способами, которые используются в конкретных ситуациях.
Скажем, расширенная запись правила, образец которой только что был представлен, наиболее удобна для восприятия, а потому применяется обычно для изучения стилей, ну или в "сыром" файле style.css, который создан для нового сайта, а потому еще не доведен до ума. Есть и другая разновидность этого же самого варианта записи CSS правила:
Body { font-size: 14px; } body { background: #00ff00 url("west.png") repeat-x; }
Как видите, здесь для каждого свойства повторяется один и тот же селектор. Это не является ошибкой по причинам, упомянутым выше, однако такой формат записи правила засоряет код и усложняет его восприятие, а потому практически не используется.
Расширенный вариант записи можно представить и без переносов:
Body { font-size: 14px; background: #00ff00 url("west.png") repeat-x; }
Но это не все. Все пробелы, как и разделительный символ (точку с запятой) после последнего свойства (перед закрывающей фигурной скобкой), можно опустить. Это также вполне легитимная форма CSS правила, менее объемная, что хорошо для оптимизации сайта, но менее читабельная:
Body{font-size:14px;background:#00ff00 url("west.png") repeat-x}
После того, как дизайн сайта готов и внесены все необходимые изменения в файлы стилей CSS, их соответствующим образом в целях оптимизации веб-ресурса, при этом автоматически удаляются все пробелы. Это можно сделать и вручную, но для чего тратить драгоценное время настолько нерационально? Ведь даже для небольшого сайта файл style.css может содержать немало стилевых правил.
Селекторы, свойства и применение стилей
Я уже отмечал, что с течением времени происходит все более тесное сближение HTML и CSS. Если на заре зарождения интернета в его сегодняшнем виде внешний вид элементов на веб-странице описывался с помощью атрибутов тегов гипертекстовой разметки, то в наши дни слишком частое использование такого метода считается , поскольку перегруженный ХТМЛ-код часто не способствует должной оптимизации страниц сайта, что в том числе вредит его SEO продвижению.
CSS (перед идентификатором ставится значок решетки):
#area {color: green; border: 2px solid #d6c99a}
Последующие ниже варианты могут содержать как селекторы тегов, так и классы с идентификаторами.
Для чего нужны такие варианты задания размеров? Дело в том, что далеко не всегда наилучшим решением является использование стандартных относительных величин, включая проценты. Порой выгоднее связать величину шрифта с высотой и шириной окна браузера. Скажем, ежели область просмотра по высоте равна 800px, то 1vh = 8px, а при ширине 1500px — 1vw = 15px.
Единицы vmin и vmax определяются соответственно минимальными и максимальными размерами области по высоте и ширине. Образец: высота окна браузера 700px, а ширина — 1300px. В этом случае vmin = 7px, а vmax = 13px.
При установке размеров нужно обязательно указывать единицы (например, height: 55px), иначе браузер некорректно будет отображать соответствующие элементы. Значения, равные нулю, к данному правилу не относятся, их можно обозначать двумя способами (padding: 0 или padding: 0px), по понятным причинам с подавляющим преимуществом лидирует первый вариант.
Проценты
Этот вид единиц я решил упомянуть отдельно. Выше я уже сказал о преимуществе использования относительных значений при задании свойств. Это в полной мере относится и к процентам.
Table {width: 100%; /* Ширина таблицы в процентах */}
Записи в процентах применяются довольно часто, особенно тогда, когда необходимо установить значение относительно родителя или когда размеры находятся в зависимости от неких внешних обстоятельств. К примеру, ширина элемента, равная 100%, будет подстраиваться под экраны самых разных устройств и корректно там отображаться.
Ключевые слова
Разберем некоторые слова, которые играют роль параметров свойств и определяют то или иное положение либо внешний вид элемента. Вот несколько наглядных примеров.
1. Значения свойства text-align , которые способствуют выравниванию текста по горизонтали: center | justify | left | right | start | end. Вот пример c параметром justify :
P {text-align: justify}
Эта запись означает, что текст абзаца выравнивается одновременно по левому и правому краю :
2. CurrentColor — соответствует значению свойства color текущего элемента и указывает цвет для областей, которые по умолчанию его не получают. Допустим, контейнер с классом «bl-2» вложен в «bl-1»:
И для обоих прописаны стили:
Bl-1 { padding: 10px; /* Поля вокруг внутреннего контейнера */ background: currentColor; /* Цвет фона */ } .bl-2 { color: blue; /* Цвет текста */ padding: 10px; /* Поля вокруг текста */ background: #ccc; /* Цвет фона */ }
Если в отношении элемента не указан цвет текста (свойство «color»), то по умолчанию текстовый фрагмент будет окрашен в черный (в большинстве популярных браузеров). В нашем примере для внешнего контейнера («bl-1») color как раз отсутствует. Вследствие этого при указании значения «currentColor» фон этого контейнера примет черный окрас :
3. Inherit — это ключевое слово в роли параметра соответствующих значений родительских элементов. Образец:
И CSS правила для него:
Bl-1 { border: 4px solid red; padding: 10px; } .bl-2 { border: inherit; padding: inherit; }
В итоге оформление рамок (border) и размеры полей (padding) перенесены с родительского блока (bl-1) на внутренний (bl-2) :
4. Initial — применяется в тех случаях, когда требуется установить исходные параметры свойств. Скажем, помогает восстановить значения, установленные браузером по умолчанию, либо определить начальные параметры, которые были изменены в результате наследования. Пример:
Параметры свойств CSS
Существуют самые разнообразные значения, которые определяют те или иные стили, определяющие внешний вид элементов на веб-странице.
Читайте подробности далее
И стили для него:
H2 { color: #2e15d1; font-family: Verdana, sans-serif; } p { color: green; } .init { color: initial; font-family: initial; }
С помощью класса «init» внешний вид фрагмента абзаца p, заключенного в тег span, и нижнего заголовка H2, изменен в соответствии с настройками их стилей по умолчанию.
5. Unset — это параметр, являющийся по сути "гибридом" inherit и initial. Определяет параметр свойства как inherit, ежели свойство наследуется от родителя, в противном случае — как initial.
Пример 1 (действует как inherit):
Цвет текста зеленый (green) - наследует значение свойства "color" для класса "zzz"
Цвет текста красный (red) в соответствии со значением свойства "color" для тега p
P {color: red} .zzz {color: green} .xxx p {color: unset}
В соответствии с правилами CSS свойство color наследуется , поэтому «unset» в нашем примере возвращает зеленый цвет текста для контейнера «xxx», который является потомком «zzz» :
Пример 2 (работает как initial):
Цвет рамки черный - значение по умолчанию
Цвет рамки (blue - синий) задан в свойствах контейнера div
Div { border: 2px solid blue; margin-bottom: 10px; margin-top: 10px; padding: 10px; } .xxx { border-color: unset; }
Так как по правилам таблиц стилей свойство border не наследуется , то «border-color: unset» возвращает цвет рамки к значению по умолчанию, то есть она приобретает черный оттенок.
URL, или адрес
Этот параметр содержит в себе и применяется, когда нужно, например, указать к файлу с изображением (читайте с помощью HTML тега img). При этом используется ключевое слово url () , где между скобками и указывается путь до графического файла:
Body { background: url(https://сайт/images/star.jpg) no-repeat; /* Абсолютный путь */ } div { background: url(images/globus.jpg) no-repeat; /* Относительный путь */ }
Время
Используется, например, при реализации анимационных эффектов (да-да, на чистом CSS можно создавать теперь и такие вещи), где параметры указываются в секундах (s) или миллисекундах (ms). Значения могут быть как в виде целых, так и дробных чисел. При этом надо помнить, что нельзя допускать пробела между числом и единицей измерения (2s, 50ms)./p>
Рассмотрим пример.