css тильда что значит
CSS: родственные селекторы (
При помощи родственного селектора можно выбрать все указанные элементы, идущие в коде за указанным элементом. Родственный селектор указывается символом «
Давайте на простом примере разберём работу этого селектора:
В этом примере родственный селектор h1
p сработал на все теги
, следующие за тегом
Теперь другой пример использования родственных селекторов:
Тут видно, что стиль сработает только для тегов
, которые являются потомками тега
То есть родственные элементы должны иметь общего родителя и находиться на одном уровне.
Родственные селекторы похожи на соседние селекторы, но отличаются тем, что стиль применяется ко всем выбраным элементам, а не только к первому из них.
Pодственный селектор и псевдокласс :hover
Результат будет таким:
Рисунок 1. Родственные селекторы и :hover.
Более реальный и сложный пример
Сейчас мы рассмотрим немного сложный пример, если вы только начали изучение CSS, то вам может он показаться непонятным. Для понимания его работы нужно знать некоторые данные из CSS, которых вы, возможно, ешё не знаете. В таком случае пока просто пропустите его, вернётесь к нему позже.
Давайте рассмотрим код формы, в которой при активации поля формы появляется подсказка. Вот так она выглядит:
Рисунок 2. Поле формы с подсказкой.
Если поместить курсор в поле «Имя пользователя», то появится одна подсказка, если в поле «Пароль», то другая.
Для определения стиля появляющегося блока тут использован селектор input:focus
Сама подсказка состоит из трёх блоков div :
Руководство по селекторам в CSS
CSS-селектор — это шаблон, соответствующий элементам на веб-странице. Стилизационные правила, связанные с этим селектором, будут применяться к элементам, которые соответствуют шаблону селектора.
Селекторы являются одним из наиболее важных аспектов CSS, так как они позволяют вам выбирать определенные элементы на веб-странице различными способами, чтобы их можно было стилизовать.
В CSS доступно несколько типов селекторов, давайте рассмотрим их подробнее:
Универсальный селектор
Универсальный селектор, обозначенный звездочкой ( * ), выбирает все элементы на странице.
Универсальный селектор может быть опущен, если для элемента применяется класс ( class ). Этот селектор часто используется для удаления полей ( margin ) по умолчанию или созданию отступов ( padding ) для быстрого тестирования.
Давайте рассмотрим следующий пример, чтобы понять, как это в основном работает:
Правила стиля внутри селектора * будут применяться ко всем элементам в документе.
Не рекомендуется использовать универсальный селектор ( * ) слишком часто в целях производительности. Так как этот селектор применяется ко всем элементам на веб-странице, это создает чрезмерную нагрузку на браузер. Вместо него используйте тип элемента или селектор класса.
Селекторы типов элементов
Селектор типа элемента соответствует всем выбранным элементам в документе с соответствующим именем типа элемента. Давайте рассмотрим пример, чтобы увидеть, как это работает:
Правила для селектора p будут применяться ко всем элементам
(абзацам) в документе и окрашивать их в синий цвет, независимо от их положения в дереве документа.
Id Селекторы
Селектор идентификатора ( id ) используются для определения стилей для одного уникального элемента на странице.
Селектор идентификатора определяется знаком хештега ( # ), за которым сразу следует значение идентификатора.
Значение id атрибута должно быть уникальным в текущем документе — нельзя использовать одинаковые значения id в одном HTML-документе.
Class Селекторы
Селекторы класса могут использоваться для выбора группы HTML-элементов, которые имеют одинаковый класс. Все элементы, имеющие этот класс, будут отформатированы в соответствии с заданным правилом.
Правило стиля внутри селектора p.blue отображает текст синим цветом только тех элементов
Селекторы с потомками
Аналогично, правила стиля внутри селектора h1 em будут применяться только к тем элементам , которые содержатся внутри элементов
Дочерние селекторы
Дочерние селекторы используются для выбора только тех элементов, которые являются прямыми потомками указанного элемента.
Дочерний селектор может состоять из двух и более селекторов, разделенных символом «больше» ( > ). Вы можете использовать этот селектор, например, для выбора первого уровня элементов во вложенном списке, который имеет больше одного уровня. Лучше рассмотрим пример, чтобы понять, как это работает:
Смежные селекторы
Селектор h1 + p в следующем примере выберет элемент
имеют одного и того же родителя в дереве документа, и
находится непосредственно перед элементом
. Это означает, что только для абзаца, который идет сразу после каждого заголовка
, будет изменен цвет и размер шрифта.
Общие смежные селекторы
Общий смежный селектор похож на предыдущий ( element-1 + element-2 ), но он менее строг. Он так же состоит из двух простых селекторов, но разделенных символом тильды ( ∼ ). Запись может иметь вид: element-1
Селектор h1 ∼ p в приведенном ниже примере выберет все элементы
, а + выберет только первый элемент
Есть более сложные селекторы, такие как селекторы атрибутов, псевдоклассы, псевдоэлементы. Мы подробно обсудим эти селекторы в следующих главах.
Группировка селекторов
Часто несколько селекторов в таблице стилей используют одни и те же стилизационные правила. Вы можете сгруппировать их в список через запятую, чтобы минимизировать код в вашей таблице стилей. Это также даст вам возможность повторять одни и те же правила снова и снова. Посмотрим:
Похожие посты
Руководство по свойству opacity в CSS
Руководство по таблицам в CSS
Руководство по свойству margin в CSS
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 4 / 5. Количество оценок: 2
Оценок пока нет. Поставьте оценку первым.
Разработка сайтов для бизнеса
Если у вас есть вопрос, на который вы не знаете ответ — напишите нам, мы поможем разобраться. Мы всегда рады интересным знакомствам и новым проектам.
Комплексные селекторы
Селекторы являются одной, если не самой важной частью CSS. Они формируют каскад и определяют, как стили должны применяться к элементам страницы.
До недавнего времени внимание CSS никогда действительно не обращалось на селекторы. Время от времени появлялись небольшие обновления в пределах спецификации селекторов, но никогда не было никаких реальных новаторских улучшений. К счастью, в последнее время всё больше внимания уделяется селекторам, так что взглянем на то, как выбирать разные типы элементов и элементы в разных состояниях.
CSS3 принёс новые селекторы, открывая целый новый мир возможностей и улучшений существующей практики. Здесь мы обсудим селекторы, как старые так и новые, а также как наилучшим образом их использовать.
Типовые селекторы
Перед глубоким погружением в некоторые более сложные селекторы и те, которые предлагаются в CSS3, давайте взглянем на некоторые наиболее типовые селекторы на сегодня. Эти селекторы включают в себя селекторы типа, классы и идентификаторы.
Дочерние селекторы
Дочерние селекторы обеспечивают способ выбора элементов, которые находятся один в другом, что делает их детьми своего родительского элемента. Такой выбор может быть сделан двумя разными способами, с помощью селектора потомка либо прямого дочернего селектора.
Селектор потомка
Наиболее распространённым дочерним селектором является селектор потомка, который соответствует каждому элементу, который следует за определённым предком. Потомок не обязательно должен идти сразу после предка в дереве документа, вроде отношения родитель-ребёнок, но может находиться в любом месте внутри предка. Селекторы потомка создаются пробелом между отдельными элементами в селекторе, создавая новый уровень иерархии для каждого элемента списка.
Селектор article h2 является селектором потомка и выбирает только элементы
за пределами элемента не будет выбран.
Ниже приведены заголовки, из которых выбраны строки 3 и 5.
Прямой дочерний селектор
Порой селекторы потомка заходят слишком далеко, выбирая больше, чем хотелось бы. Иногда должны быть выбраны только прямые дети родительского элемента, а не каждый экземпляр элемента вложенный глубоко внутри предка. В этом случае может быть использован прямой дочерний селектор путём размещения знака больше (>) между родительским и дочерним элементом в селекторе.
Например, article > p является прямым дочерним селектором только когда элементы
Пример | Название | Описание |
---|---|---|
article h2 | Селектор потомка | Выбирает элемент, который находится в любом месте внутри определённого предка. |
article > p | Прямой дочерний селектор | Выбирает элемент, который находится непосредственно внутри определённого родителя. |
Родственные селекторы
Знать, как выбрать дочерние элементы, в значительной степени полезно и встречается довольно часто. Однако родственные элементы, т. е. элементы, у которых общий предок, также может потребоваться выбрать. Такая выборка может быть сделана с помощью общего родственного селектора и соседних селекторов.
Общий родственный селектор
Общий родственный селектор позволяет выбрать элементы, которые будут отобраны на основе их родственных элементов, т. е. те, у которых один и тот же общий родитель. Они создаются с помощью символа тильды (
) между двумя элементами внутри селектора. Первый элемент определяет, что второй элемент должен быть родственным с ним, и у обоих должен быть один и тот же родитель.
p — это общий родственный селектор, он ищет элементы
, которые следуют после любых элементов
в том же родителе. Чтобы элемент
был выбран, он должен идти после любого элемента
Абзацы в строках 5 и 9 выбраны, поскольку они идут после заголовка в дереве документа и у них тот же родитель, что и у родственного заголовка.
Соседние селекторы
Иногда может быть желательно иметь немного больше контроля, в том числе возможность выбрать родственный элемент, который следует непосредственно за другим родственным элементом. Соседний селектор будет выбирать только родственные элементы, непосредственно следующие за другим родственным элементом. Вместо символа тильды, как в случае с общим родственным селектором, соседний селектор использует символ плюс (+) между двумя элементами в селекторе. Опять же, первый элемент определяет, что второй элемент должен непосредственно следовать после него и быть ему родственным и у обоих элементов должен быть один и тот же родитель.
идущие непосредственно после элементов
. У обоих также должен быть один и тот же родительский элемент.
Абзац на строке 5 выбирается, так как непосредственно следует после его родственного заголовка и у них один общий родительский элемент.
Пример соседних селекторов
p
Селекторы атрибутов
Селектор наличия атрибута
Первый селектор атрибута определяет элемент на основе того, включен ли этот атрибут или нет, независимо от его фактического значения. Чтобы выбрать элемент основываясь на том, присутствует атрибут или нет, просто включите имя атрибута в квадратных скобках ([]) в селекторе. Квадратные скобки могут идти после любого селектора типа или класса, в зависимости от желаемого уровня специфичности.
Селектор атрибута =
Для идентификации элемента с определённым и точно заданным значением может быть использован тот же селектор что и раньше, однако на этот раз внутри квадратных скобок после имени атрибута включают желаемое значение. Внутри квадратных скобок должно быть имя атрибута идущее после знака равно (=), где внутри кавычек и пишется желаемое значение атрибута.
Селектор атрибута *=
Когда мы пытаемся найти элемент на основе части значения атрибута, но не точного совпадения, может быть использован символ звёздочки (*) в квадратных скобках селектора. Звёздочка должна идти сразу после имени атрибута, непосредственно перед знаком равенства. Это означает, что следующее за ним значение только должно появиться или содержаться в значении атрибута.
Селектор атрибута ^=
В дополнение к выбору элемента на основе того, что значение атрибута содержит указанный текст, можно также выбрать элемент, основанный на том, с чего начинается значение атрибута. Использование символа циркумфлекса (^) в квадратных скобках селектора между именем атрибута и знаком равенства означает, что значение атрибута должно начинаться с указанного текста.
Противоположностью предыдущего селектора является селектор атрибутов, где значение оканчивается определённым текстом. Вместо использования символа ^ применяется знак доллара ($) в квадратных скобках селектора между именем атрибута и знаком равенства. Использование знака доллара означает, что значение атрибута должно заканчиваться указанным текстом.
Селектор атрибута
Иногда значения атрибутов могут быть расположены через пробел друг от друга, в которых только одно из слов должно подходить для создания выборки. В этом случае использование символа тильды (
) в квадратных скобках селектора между именем атрибута и знаком равенства означает значение атрибута разделённое пробелами, из которых одно слово точно соответствует указанному значению.
Селектор атрибута |=
Когда значение атрибута разделено дефисом, а не пробелами, может быть использован символ вертикальной линии (|) в квадратных скобках селектора между именем атрибута и знаком равенства. Вертикальная линия означает, что значение атрибута может быть разделено дефисом, однако слова должны начинаться с указанного значения.
Пример селекторов атрибутов
=»tag»]
=
Псевдоклассы
Псевдоклассы похожи на обычные классы в HTML, однако они непосредственно не указаны в разметке, вместо этого они поселяются динамически как результат действий пользователя или структуры документа. Наиболее распространённый псевдокласс, и его вы, вероятно, видели раньше, это :hover. Обратите внимание, что этот псевдокласс начинается с двоеточия (:), как и все остальные псевдоклассы.
Псевдоклассы ссылок
Псевдоклассы действия пользователя
Псевдоклассы состояния интерфейса
Последние два элемента состояния интерфейса, псевдоклассы :checked и :indeterminate вращаются вокруг флажков и переключателей. Псевдокласс :checked выбирает флажки или переключатели, которые, как вы можете ожидать, помечены. Когда ни один флажок или переключатель не помечен и не выбран, то он живёт в неопределённом состоянии, для которого может быть использован псевдокласс :indeterminate для нацеливания на подобные элементы.
Псевдоклассы структуры и положения
Несколько псевдоклассов относятся к структуре и положению на основе того, где элементы находятся в дереве документа. Эти псевдоклассы приходят в разных формах и размерах, каждый из которых обеспечивает свою собственную уникальную функцию. Некоторые псевдоклассы существуют уже дольше других, однако CSS3 принёс целый новый набор псевдоклассов в дополнение к существующим.
:first-child, :last-child и :only-child
Здесь селектор li:first-child определяет первый пункт списка, в то время как li:last-child определяет последний пункт списка, таким образом, выбираются строки 2 и 10. Селектор div:only-child ищет
:first-of-type, :last-of-type и :only-of-type
Псевдокласс :first-of-type выберет первый элемент своего типа внутри родителя, в то время как псевдокласс :last-of-type выберет последний элемент этого типа внутри родителя. Псевдокласс :only-of-type выберет элемент, если он является единственным такого типа в родителе.
В приведённом ниже примере псевдоклассы p:first-of-type и p:last-of-type выберут, соответственно, первый и последний абзацы в статье, независимо от того, являются ли они на самом деле первыми или последними детьми в статье. Строки 3 и 6 выбраны этими селекторами. Селектор img:only-of-type определяет изображение в строке 5, как единственное изображение появляющееся в статье.
Число или выражение, которое находится в круглых скобках точно определяет, какой элемент или элементы, должны быть выбраны. Использование конкретного числа вычислит отдельный элемент с начала или с конца дерева документа, а затем выберет его. Использование выражения вычислит множество элементов с начала или с конца дерева документа и выберет их группу или повторения.
Использование чисел и выражений в псевдоклассах
Как уже упоминалось, использование конкретного числа в псевдоклассе вычисляет с начала или с конца дерева документа и выбирает один соответствующий элемент. Например, селектор li:nth-child(4) выберет четвёртый пункт в списке. Подсчёт начинается с первого пункта списка и увеличивается на единицу для каждого пункта списка, пока, наконец, не обнаружит четвёртый пункт и выберет его. При указании конкретного числа оно должно быть положительным.
Например, селектор li:nth-child(3n) будет определять каждый третий элемент пункта списка. Использование этого выражения соответствует 3×0, 3×1, 3×2 и так далее. Как вы можете видеть, результаты этого выражения выбирают третий, шестой и каждый элемент кратный трём.
Селектор li:nth-child(4n+7) определит каждый четвёртый пункт списка, начиная с седьмого пункта. Опять же, использование этого выражения эквивалентно (4×0)+7, (4×1)+7, (4×2)+7 и так далее. Результаты этого выражения приведут к выбору седьмого, одиннадцатого, пятнадцатого и каждого четвёртого элемента.
При использовании аргумента n без числа впереди, переменная a расценивается как равная 1. Селектор li:nth-child(n+5) выберет каждый пункт списка, начиная с пятого, оставив первые четыре пункта списка не выбранными. В выражении это разбирается как (1×0)+5, (1×1)+5, (1×2)+5 и так далее.
:nth-child(n) и :nth-last-child(n)
Очередное изменение выражения, на этот раз с отрицательным значением, даст новый выбор. Здесь селектор li:nth-child(-n+4) определяет четыре верхних пункта списка, оставляя остальные пункты не выделенными, таким образом будут выбраны строки со 1 по 4.
Добавление отрицательного числа перед аргументом n снова изменяет выбор. Здесь селектор li:nth-child(-2n+5) определяет каждый второй пункт списка из первых пяти пунктов, таким образом, будут выбраны пункты в строках 2, 4 и 6.
:nth-of-type(n) и :nth-last-of-type(n)
Используя псевдокласс :nth-of-type(n) в селекторе p:nth-of-type(3n) мы можем определить каждый третий абзац в родителе, независимо от других родственных элементов внутри родителя. Здесь выбираются абзацы в строках 5 и 9.
Псевдокласс :target
Псевдокласс :empty
Псевдокласс :empty позволяет выбрать элементы, которые не содержат детей или текст. Комментарии, инструкции по обработке и пустой текст не считаются детьми и не рассматриваются как таковые.
Использование псевдокласса div:empty определит
Псевдокласс :not
Пример с псевдоклассами
Псевдоэлементы
Псевдоэлементы — это динамические элементы, которые не существуют в дереве документа и при использовании с селекторами эти псевдоэлементы дают уникальные части страницы, которые можно стилизовать. Один важный момент следует отметить — только один псевдоэлемент может быть использован в селекторе в определённое время.
Текстовые псевдоэлементы
Демонстрация текстовых псевдоэлементов
Псевдоэлементы, генерируемые содержимое
Псевдоэлемент :before создаёт псевдоэлемент до или впереди выбранного элемента, в то время как :after создаёт псевдоэлемент после или позади выбранного элемента. Эти псевдоэлементы выводятся вложенными внутри выбранного элемента, а не за его пределами. Ниже псевдоэлемент :after используется для отображения значения атрибута href у ссылок в круглых скобках после самой ссылки. Такая информация полезна, но, в конечном итоге, не всякий браузер поддерживает эти псевдоэлементы.
Демонстрация псевдоэлементов, генерируемых содержимое
Псевдоэлемент ::selection
Двоеточие (:) и двойное двоеточие (::)
Псевдоэлемент ::selection был добавлен в CSS3 в попытке отделить псевдоклассы от псевдоэлементов с помощью двойного двоеточия, которое было добавлено к псевдоэлементам. К счастью, большинство браузеров будут поддерживать оба значения, одиночные или двойные двоеточия у псевдоэлементов, однако псевдоэлемент ::selection всегда должен начинаться с двойного двоеточия.
Демонстрация псевдоэлементов
Пример | Название | Описание |
---|---|---|
.alpha:first-letter | Текстовый псевдоэлемент | Выбирает первую букву текста внутри элемента. |
.bravo:first-line | Текстовый псевдоэлемент | Выбирает первую строку текста внутри элемента. |
div:before | Генерируемое содержимое | Создаёт псевдоэлемент внутри выбранного элемента в его начале. |
a:after | Генерируемое содержимое | Создаёт псевдоэлемент внутри выбранного элемента в его конце. |
::selection | Псевдоэлемент ::selection | Выбирает часть документа, который был выделен с помощью действий пользователя. |
Поддержка селекторов в браузерах
В то время как эти селекторы предлагают разные возможности и способности делать некоторые действительно удивительные вещи с помощью CSS, они иногда страдают от плохой поддержки браузеров. Перед тем, как делать что-либо слишком критичное, проверьте селекторы которые вы желаете использовать в наиболее популярных браузерах, а затем сделайте вывод о том, подходят они вам или нет.
CSS3.info предлагает инструмент CSS3 Selectors Test, который будет информировать вас о том, какие селекторы поддерживаются браузером. Также неплохой идеей будет проверить поддержку браузера непосредственно в нём.
Кроме того, Selectivizr, утилита JavaScript, обеспечивает великолепную поддержку этих селекторов в Internet Explorer 6-8. Больше поддержки при необходимости может также предложить jQuery selectors.
Скорость и производительность селекторов
Важно обратить внимание на скорость и производительность селекторов, так как использование слишком большого количества сложных селекторов может замедлить отображение страницы. Будьте внимательны и когда селектор начинает выглядеть немного странно, подумайте о том чтобы пересмотреть его и найти лучшее решение.
Соседние, родственные и дочерние селекторы в CSS.
Соседние селекторы
Соседними называются элементы web-страницы, когда они следуют непосредственно друг за другом в коде документа. Синтаксис:
Для управления стилем соседних элементов используется символ плюса (+), который устанавливается между двумя селекторами P и H. Пробелы вокруг плюса не обязательны. Стиль при такой записи применяется к элементу H, но только в том случае, если он является соседним для элемента P и следует сразу после него. Рассмотрим пример:
Родственные селекторы
Родственные селекторы (сестринские, сиблинговые) позволяют выбирать элементы HTML-страницы, являющиеся родственными по отношению друг к другу (то есть имеющие общего родителя и находящиеся на одном уровне).
Данные селекторы похожи на соседние, но отличаются тем, что стиль применяется ко всем элементам выбранного типа, а не только к первому из них. Вместо знака + используется символ тильда
В данном примере стиль применится ко всем тегам
, которые следуют после тега
и находятся до закрывающего тега родителя
Дочерние селекторы
Дочерним называется элемент, который непосредственно располагается внутри родительского элемента. Синтаксис:
Стиль применяется к элементу H, только когда он является дочерним для элемента P. Рассмотрим пример:
В данном примере тег , в первом абзаце вложен в тег
, а во втором он вложен в тег , хотя также является потомком тега
. Поэтому во втором абзаце CSS правило для дочернего селектора p>i < color: blue; >не сработает – наклонный текст второго абзаца не будет отображён синим цветом.