можно ли все содержимое css написать в строчку вида селектор свойство значение свойство2 значение2
Селекторы. Свойства. Значения. 3 кита CSS.
Для того, чтобы освоить CSS, нам нужно разобраться в трех базовых понятиях. Я бы назвал эти понятия как «3 кита CSS».
Что же это за 3 базовых понятия?
Давайте в этом видео разберемся, что значит каждое из этих понятий.
Селекторы
Свойства
Значения
Каждое свойство имеет значение в CSS. Например, цвет имеет значение конкретного цвета, который будет выставлен, например, красный цвет. Свойство размер имеет конкретное значение, например, 18 пикселей. Это и есть то самое понятие «значение».
В итоге, что пользоваться CSS, нам нужно взять какой-то селектор и в фигурных скобках просто прописать набор данных свойств и их значений. С помощью селектора мы говорим к какому элементу нужно придать те или иные стили оформления, а в фигурных скобках мы с вами указываем какие именно свойства на какие именно значения нужно установить.
Разделителем между свойством и значением является знак двоеточие. А разделителем между парой свойством и значением является знак точка с запятой.
Выглядеть это может следующим образом:
В этом случае селектор нам не понадобиться, т.к. и так уже известно к какому элементу на веб-странице будут применены эти самые стили. К тому элементу, к которому добавлен этот атрибут style.
Вот такие вот 3 кита CSS работу с которыми мы с вами будем рассматривать на протяжении всего этого курса и более детально уже будем погружаться в то, как работать с селекторами, свойствами и значениями. Освоив это мастерство вы сможете самостоятельно находить нужные свойства, которые вы будете применять к каким-то элементам и находить решения для того или иного оформления, которое вы хотите применить к элементам на веб-странице.
Синтаксис CSS — правила, селекторы, свойства, их значения (параметры) и комментарии в языке каскадных таблиц стилей
В стартовой статье данного раздела была дана общая информация, касающаяся языка каскадных таблиц стилей, включая описание способов подключения стилей к HTML-коду страницы вебсайта (документа), который определяет наличие тех или иных элементов на вебстранице.
В этой публикации мы рассмотрим, как правильно составлять и прописывать свойства CSS для всех элементов, чтобы браузер смог их идентифицировать и корректно отобразить на странице.
В частности, разберем, что представляет из себя в общем виде отдельно взятое стилевое правило, которое включает в себя селектор, а также свойства и их значения.
Синтаксис и варианты записи правил CSS
Поскольку каскадные таблицы стилей представляют из себя, пусть и специализированный, но все же язык, допустимо провести аналогию совокупности правил CSS с простым текстом, где каждое слово состоит из букв, предложение — из слов, а сам текстовый фрагмент — из предложений.
Учитывая эту наглядную ассоциацию, можно вывести логическую последовательность, которая касается структуры CSS (она является максимально оптимальной, на мой скромный взгляд):
Возможно, предложенная мною ассоциация немного притянута за уши, однако, мне кажется, она все-таки поможет начинающим понять общую структуру языка CSS.
Итак, каждому свойству присваивается конкретное значение (параметр), причем, их может быть несколько. Соответствующий набор свойств (правило) применяется к определенному селектору. Схематически правило CSS можно отобразить так:
Впереди помещается селектор, затем ставятся фигурные скобки (открывающая и закрывающая), между которыми и находятся свойства CSS с присвоенными им значениями, название каждого свойства отделяется от соответствующего ему параметра двоеточием. Все свойства вместе со значениями разделяются между собой точкой с запятой. Посмотрим на живой пример:
Обратите внимание на то, что свойство background имеет сразу несколько значений: цвет фона (#00ff00), путь до фонового изображения («west.png») и разрешение на его повторение по горизонтали (repeat-x). Наверное, вы заметили, что подобный вариант записи несколько отличается от схемы, представленной чуть выше.
На самом деле никакого несоответствия здесь нет. Поскольку CSS не чувствителен к пробелам, переносам строк, символам табуляции, стилевые правила могут быть записаны самыми разными способами, которые используются в конкретных ситуациях.
Скажем, расширенная запись правила, образец которой только что был представлен, наиболее удобна для восприятия, а потому применяется обычно для изучения стилей, ну или в «сыром» файле style.css, который создан для нового сайта, а потому еще не доведен до ума. Есть и другая разновидность этого же самого варианта записи CSS правила:
Как видите, здесь для каждого свойства повторяется один и тот же селектор. Это не является ошибкой по причинам, упомянутым выше, однако такой формат записи правила засоряет код и усложняет его восприятие, а потому практически не используется.
Расширенный вариант записи можно представить и без переносов:
Но это не все. Все пробелы, как и разделительный символ (точку с запятой) после последнего свойства (перед закрывающей фигурной скобкой), можно опустить. Это также вполне легитимная форма CSS правила, менее объемная, что хорошо для оптимизации сайта, но менее читабельная:
После того, как дизайн сайта готов и внесены все необходимые изменения в файлы стилей CSS, их соответствующим образом сжимают с помощью специальных программ в целях оптимизации веб-ресурса, при этом автоматически удаляются все пробелы. Это можно сделать и вручную, но для чего тратить драгоценное время настолько нерационально? Ведь даже для небольшого сайта файл style.css может содержать немало стилевых правил.
Селекторы, свойства и применение стилей
Я уже отмечал, что с течением времени происходит все более тесное сближение HTML и CSS. Если на заре зарождения интернета в его сегодняшнем виде внешний вид элементов на веб-странице описывался с помощью атрибутов тегов гипертекстовой разметки, то в наши дни слишком частое использование такого метода считается моветоном, поскольку перегруженный ХТМЛ-код часто не способствует должной оптимизации страниц сайта, что в том числе вредит его SEO продвижению.
В этом смысле пятая версия языка разметки не только позволяет соблюсти чистоту кода, но и предоставляет практически неограниченные возможности по максимуму реализовывать все свои задумки, которые базируются на современных технологиях.
Кстати, в том числе и по этой причине из всех способов привязки стилей к HTML коду документа наиболее востребованным является вынесение всех стилевых свойств в отдельный файл style.css.
При этом браузер должен понимать, к какому элементу прописано то или иное правило CSS. Вот здесь и становится понятна роль селекторов, среди которых различают несколько видов.
1. Базовые (селекторы тегов) — самый простой для понимания, название которого совпадает с именем соответствующего тега в ХТМЛ коде документа.
Возьмем в качестве примера горизонтальную линию как элемент дизайна страницы сайта. Мы уже знаем, что эта линия создается с помощью тега hr, который прописывается в HTML-коде. Если вы перейдете по только что данной ссылке, то сможете отследить, как меняется внешний вид этого элемента при применении атрибутов тега hr, которые задаются в ХТМЛ-документе вместе с ним.
Однако, как я уже говорил, современные тенденции направлены на разгрузку HTML кода за счет использования оформления с помощью стилей CSS, представленных в отдельном файле. Поэтому приведенные в той статье атрибуты тега hr (width, size, color, noshade) заменяем на свойства стилей, прописанные в style.css:
Которые позволяют получить точно такой же результат:
2. Классы (class) и идентификаторы (id) — имеют некоторую общность, поскольку являются атрибутами тегов, к которым они добавляются в HTML-коде, и одновременно селекторами, кои и указываются в файле CSS, каждый со своим набором свойств.
Cвязь элементов, описываемых тегами с классами и идентификаторами, осуществляется тем, что параметрами id и class являются названия селекторов. Примеры ниже.
Тег с классом «text-x» в HTML-коде:
Стили для этого класса в CSS (впереди обязательно нужно поставить точку):
То же самое для идентификаторов (пример с контейнером див). HTML:
CSS (перед идентификатором ставится значок решетки):
Последующие ниже варианты могут содержать как селекторы тегов, так и классы с идентификаторами.
3. Дочерние селекторы — как известно, в HTML различают родительские элементы (теги) и дочерние (их потомки), которые в них вложены. Весьма логично, что в CSS точно такое же разделение существует между соответствующими этим элементам селекторами.
Правило дочернего селектора указывает, что свойства стилей будут применены к конкретному элементу (в ниже следующем примере это тег гиперссылки a) только в том случае, если он является непосредственным потомком (1-й уровень вложенности) определенного родителя (li):
4. Контекстные селекторы — очень напоминают дочерние селекторы с той лишь разницей, что здесь свойства CSS будут применены ко всем потомкам относительно указанного родителя, вне зависимости от степени вложенности (родительский селектор в правиле стилей идет первым и отделен от дочернего пробелом):
5. Соседние селекторы — данное CSS правило справедливо для элементов, описанных тегами, которые идут друг за другом в HTML-документе, причем, не имеют родственных отношений, иными словами, не вложены друг в друга. Соответствующие им селекторы отделяются друг от друга знаком «+», причем, свойства будут применены ко второму элементу лишь в том случае, если он располагается непосредственно рядом с первым:
6. Универсальный селектор — применяется в тех случаях, когда нужно задать единый стиль оформления для тех или иных элементов на веб-странице, расположенных в различных ее областях. Например, определить вид и размер шрифта. Этот селектор обозначается звездочкой:
7. Селекторы атрибутов — позволяет присваивать одни и те же стили всем элементам на веб-странице, имеющим одинаковые атрибуты:
Либо определенным элементам:
И в том, и в другом случае значение атрибута не имеет никакого значения. Но есть еще большое количество вариантов, которые предполагают применение прописанных свойств в зависимости от содержания параметра конкретного атрибута. Все подробности вы можете узнать из публикации, к которой можете перейти по предоставленной ссылке.
По тем или иным причинам встречаются случаи, когда для селектора заданы различные значения одного и того же свойства. В этом случае к нему будет применяться значение, указанное ниже в стилевом файле CSS. Вот конкретный пример:
Здесь заданы последовательно два цветовых оттенка для горизонтальной линии blue (синий) и green (зеленый). Поскольку значение green находится ниже, горизонтальная линия в браузере будет окрашена в зеленый цвет. В идеале, конечно, до такой ситуации лучше не доводить, так как это приводит к засорению кода, но, в принципе это не смертельно и легко исправляется. Главное, вы теперь знаете, что такая ситуация возможна.
Виды значений (параметров) свойств
Теперь что касается значений стилевых свойств. Здесь все регламентировано и каждому свойству CSS соответствуют свой набор параметров, выраженных в определенных единицах измерения либо тех или иных терминах. Вот как их можно классифицировать.
Числа
Роль значения того или иного свойства может играть целое число, в котором содержаться цифры от 0 до 9, либо десятичная дробь, где целая и дробная часть разделяются точкой:
Размеры в абсолютных и относительных единицах
Для указания размера того или иного элемента в CSS применяются абсолютные и относительные единицы измерения. Абсолютные отображают размер вне зависимости от устройства, в котором просматривается документ (скажем, монитор компьютера), а относительные единицы определяют размер элемента относительно какого-то иного размера.
Некоторые абсолютные единицы известны из реальной жизни (те же сантиметры, миллиметры и дюймы), о пикселях вы, наверное, уже имеете некое представление.
Единица | Краткое описание |
---|---|
px | Пиксель |
in | Дюйм (1 in = 2,54 cm) |
cm | Сантиметр |
mm | Миллиметр |
pt | Пункт (1 pt = 1/72 дюйма) |
pc | Пика (1 pc = 12 pt) |
К слову, cm, mm, pt, pc практически не используются в практической деятельности вебмастеров и разработчиков, а потому нет смысла их подробно разбирать. А вот на остальные мы обратим внимание в той или иной степени.
Пиксель — самый мелкий элемент двухмерного цифрового изображения в растровой графике. Выражаясь простым языком, можно констатировать, что это просто точка.
Важно отметить, что реальные единицы часто сопоставляются с теми же пикселями при указании разрешения, которое измеряется в dpi (dots per inch), являющемся специальным показателем, который отражает количество пикселей на дюйм.
Можно сказать, что чем выше этот показатель, тем более качественное и детальное изображение мы получим. Кроме этого, дисплей любого современного электронного устройства имеет подобную характеристику (пример: монитор компьютера с разрешением 1280 × 1024 px).
Относительные единицы используются гораздо чаще, чем абсолютные. Это связано с тем, что параметры, выраженные в относительных единицах, позволяют оптимизировать расположение элементов вебстраницы при просмотре в различных веб-браузерах и при использовании разных мониторов, это помогает достичь идентичности, то есть, страница с этими элементами будет выглядеть максимально одинаково для всех пользователей.
Единица | Краткое описание |
---|---|
em | Размер шрифта текущего элемента (изначально получен из ширины заглавной литеры «M» определенного шрифта) |
ex | Размер, основанный на высоте буквы «x» в нижнем регистре |
ch | Для текущего элемента (основан на ширине символа «0») |
rem | Размер шрифта для корневого элемента |
Сначала подробнее остановимся на основных относительных параметрах. Единица em позволяет задать, например, величину шрифта (когда она явно не установлена) по отношению к размеру, указанному в браузере по умолчанию, или относительно размера родительского элемента.
Размер шрифта в em, который может быть задан изначально при верстке сайта, устанавливается через свойство стилей font-size. То есть, 1 em равен дефолтному размеру шрифта либо размеру шрифта родителя. Запись в процентах тождественна em в том плане, что 1 em = 100%.
Для ex действуют точно такие же правила, что и в отношении em. Иными словами, существует привязка ex к размеру, установленному в веб-браузере по умолчанию, либо к величине размера шрифта родителя. Аналогично работает и «ch».
Стоит сделать акцент на различии между em и rem. Оно заключается в том, что em находится в полной зависимости от размера шрифта родителя и изменяется одновременно с ним, а вот rem строго привязан к корневому элементу, определяемому тегом html.
Далее еще несколько вспомогательных относительных единиц, которые находятся в связке с высотой и шириной окна браузера (областью просмотра).
Единица | Краткое описание |
---|---|
vw | 1% от ширины области просмотра |
vh | 1% от высоты области просмотра |
vmin | 1% от меньшего значения области просмотра по ширине и высоте |
vmax | 1% от большего значения области просмотра по ширине и высоте |
Для чего нужны такие варианты задания размеров? Дело в том, что далеко не всегда наилучшим решением является использование стандартных относительных величин, включая проценты. Порой выгоднее связать величину шрифта с высотой и шириной окна браузера. Скажем, ежели область просмотра по высоте равна 800px, то 1vh = 8px, а при ширине 1500px — 1vw = 15px.
Единицы vmin и vmax определяются соответственно минимальными и максимальными размерами области по высоте и ширине. Образец: высота окна браузера 700px, а ширина — 1300px. В этом случае vmin = 7px, а vmax = 13px.
При установке размеров нужно обязательно указывать единицы (например, height: 55px), иначе браузер некорректно будет отображать соответствующие элементы. Значения, равные нулю, к данному правилу не относятся, их можно обозначать двумя способами (padding: 0 или padding: 0px), по понятным причинам с подавляющим преимуществом лидирует первый вариант.
Проценты
Этот вид единиц я решил упомянуть отдельно. Выше я уже сказал о преимуществе использования относительных значений при задании свойств. Это в полной мере относится и к процентам.
Записи в процентах применяются довольно часто, особенно тогда, когда необходимо установить значение относительно родителя или когда размеры находятся в зависимости от неких внешних обстоятельств. К примеру, ширина элемента, равная 100%, будет подстраиваться под экраны самых разных устройств и корректно там отображаться.
Ключевые слова
Разберем некоторые слова, которые играют роль параметров свойств и определяют то или иное положение либо внешний вид элемента. Вот несколько наглядных примеров.
1. Значения свойства text-align, которые способствуют выравниванию текста по горизонтали: center | justify | left | right | start | end. Вот пример c параметром justify:
И для обоих прописаны стили:
Если в отношении элемента не указан цвет текста (свойство «color»), то по умолчанию текстовый фрагмент будет окрашен в черный (в большинстве популярных браузеров). В нашем примере для внешнего контейнера («bl-1») color как раз отсутствует. Вследствие этого при указании значения «currentColor» фон этого контейнера примет черный окрас:
3. Inherit — это ключевое слово в роли параметра устанавливает наследование соответствующих значений родительских элементов. Образец:
И CSS правила для него:
4. Initial — применяется в тех случаях, когда требуется установить исходные параметры свойств. Скажем, помогает восстановить значения, установленные браузером по умолчанию, либо определить начальные параметры, которые были изменены в результате наследования. Пример:
С помощью класса «init» внешний вид фрагмента абзаца p, заключенного в тег span, и нижнего заголовка H2, изменен в соответствии с настройками их стилей по умолчанию.
5. Unset — это параметр, являющийся по сути «гибридом» inherit и initial. Определяет параметр свойства как inherit, ежели свойство наследуется от родителя, в противном случае — как initial.
Пример 1 (действует как inherit):
В соответствии с правилами CSS свойство color наследуется, поэтому «unset» в нашем примере возвращает зеленый цвет текста для контейнера «xxx», который является потомком «zzz»:
Пример 2 (работает как initial):
Так как по правилам таблиц стилей свойство border не наследуется, то «border-color: unset» возвращает цвет рамки к значению по умолчанию, то есть она приобретает черный оттенок.
URL, или адрес
Этот параметр содержит в себе унифицированный указатель ресурса и применяется, когда нужно, например, указать относительный или абсолютный путь к файлу с изображением (читайте вот эту статью о вставке картинок на страницу с помощью HTML тега img). При этом используется ключевое слово url (), где между скобками и указывается путь до графического файла:
Время
Используется, например, при реализации анимационных эффектов (да-да, на чистом CSS можно создавать теперь и такие вещи), где параметры указываются в секундах (s) или миллисекундах (ms). Значения могут быть как в виде целых, так и дробных чисел. При этом надо помнить, что нельзя допускать пробела между числом и единицей измерения (2s, 50ms)./p>
И, соответственно, стили для него:
На этой странице можете не только посмотреть результат, но и попытаться отредактировать некоторые свойства, так сказать, на практике, в общем, поэкспериментировать. Естественно, начинающим изучать каскадные таблицы стилей пока трудно осознать и принять к сведению тонкости анимации, но продолжение обязательно последует, поэтому подписывайтесь на свежие материалы обязательно, чтобы вовремя получить желаемое. Но продолжим.
Строки
Этот вид параметра позволяет добавлять фрагменты текста. Строки нужно обязательно заключать в кавычки (одинарные или двойные). Причем, если внутри строки требуется взять в кавычки слово или фразу, то эти виды кавычек можно комбинировать.
Скажем, ежели всю строку вы берете в одинарные кавычки, то внутренний текстовый фрагмент — в двойные, и наоборот. Разрешается также применять один и тот же вид, только в этом случае необходимо экранировать внутренние кавычки, добавляя перед ними обратный слеш «\»:
Далее рассмотрим конкретный пример, чтобы было понятнее.
Для начала ХТМЛ-код:
С целью обозначения цветов для свойств при составлении правил CSS могут использоваться различные параметры. Остановимся вкратце на каждом из них:
1. Название. Правда, задавать таким способом можно не все, а только часть оттенков («red» — красный, «green» — зеленый, «black» — черный, «orange» — оранжевый, «yellow» — желтый, «olive» — оливковый и некоторые другие). Их также можно отнести к ключевым словам.
2. Hex (шестнадцатеричный код). Основой шестнадцатеричной системы, в отличии от известной всем десятеричной, являются 16 символов: 10 цифр (от 0 до 9) и 6 первых букв латинского алфавита (A, B, C, D, E, F). Буквы от A до F соответствуют числам от 10 до 15.
3.1. RGB — можно задавать значение цвета, исходя из десятеричной системы. Название данного метода является аббревиатурой трех основных задействованных в ней цветов: Red (красный), Green (зеленый), Blue (синий). Оттенки каждого из них находятся в диапазоне от 0 до 255. Для применения этой системы необходимо впереди прописать rgb, а в скобках указать каждый из компонентов цвета: rgb (240, 0, 180). Также не возбраняется использовать проценты:
3.2. RGBA — расширенный вариант предыдущего метода RGB, содержащий альфа-канал, который устанавливает прозрачность элемента в диапазоне от 0 до 1. Параметр «0» соответствует полной прозрачности, а «1» — совершенной непрозрачности.
4.1. HSL — наименование этого метода также представляет из себя не что иное как аббревиатуру, которая включает первые буквы трех слов: Hue (оттенок), Saturate (насыщенность) и Lightness (светлота). Именно эти характеристики в совокупности определяют конечный цвет. При этом оттенок расположен на конкретном месте цветового круга:
Поскольку весь круг составляет 360°, то каждому оттенку (hue) соответствует вполне конкретное значение в градусах в диапазоне от 0° до 359°. При этом параметры основных оттенков таковы: 0° — красный, 120° — зеленый, 240° — синий.
Насыщенность и светлота измеряются в процентах (от 0 ло 100%). Для saturate параметр 0 значит отсутствие цветовой гаммы, а 100% — максимально насыщенный цвет. Чем больше значение lightness, тем светлее тон, 0 соответствует черному, а 100% — белому.
4.2. HSLA — по аналогии с RGBA является расширенным вариантом HSL, к которому добавлен показатель прозрачности.
Угол поворота или наклона
В CSS в качестве параметров тех или иных свойств может применяться угловые характеристики (основа — круг). Вот какие единицы при этом используются:
Немаловажно отметить, что могут использоваться отрицательные значения. Ниже даны наглядные примеры с параметрами некоторых углов (поворотов):
Для наглядности применим характеристики поворота для реализации градиентной заливки фона и в качестве одной из составляющих нашего образца поместим на страницу определенный текст:
А теперь составим и правило CSS для такого фона:
Результат можете оценить на этой странице и там же поупражняться, отредактировав стили по своему желанию. Это тоже будет полезным для приобретения практических навыков.
Комментарии в CSS
Ну и, наконец, комментарии в правилах со свойствами CSS. На этой странице я уже неоднократно пользовался ими, разъясняя действие того или иного свойства. Комментарии вставляются прямо в коде стилей, напротив соответствующего свойства. Их текст располагается между символами «*», которые в свою очередь находятся между двумя знаками слэша «/».
Не забывайте точно использовать правила написания комментариев, так как только в этом случае веб-браузер правильно их воспринимает, то есть игнорирует. В противном случае отображение элементов на веб-странице будет некорректным.
Комментарии обычно используются в учебных целях для наглядного объяснения действия соответствующего свойства. Однако, появление дополнительного текста увеличивает время загрузки страницы, что не является оптимальным с точки зрения продвижения проекта.
По этой причине при оптимизации файлов CSS действующего веб-ресурса комментарии обычно удаляются, в том числе c помощью дополнения Google Page Speed, служащего неплохим инструментом для увеличения скорости сайта.
Ну, вот, на сегодня, пожалуй, все. Пост получился объемным, однако вся информация, которая касается синтаксиса CSS и его базовых понятий, таких как свойства, селекторы, правила стилей, поверьте, является очень важной для постижения основ каскадных таблиц стилей.