Jet School Logo

Что такое CSS/JS Selector?

Selector — это «адрес» или «указатель», который говорит CSS или JavaScript, какой именно HTML-элемент нужно найти. Он сообщает браузеру: «примени эти стили или изменения именно к этому элементу».

Думайте об этом как о почтовом адресе

Чтобы доставить письмо, нужен точный адрес — улица, номер дома, город. Селектор работает так же. Если написать неправильный селектор, стили применятся не туда, куда нужно, или скрипт вообще не найдёт элемент.

Виды CSS-селекторов

Базовые селекторы

Селектор элемента p — применяется ко всем абзацам (например, p { color: black; }). Селектор класса .card — ко всем элементам с классом «card» (например, .card { border-radius: 8px; }). Селектор ID #header — только к одному элементу с id «header» (например, #header { background-color: navy; }). **Универсальный селектор *** применяется ко всем элементам на странице (например, * { margin: 0; }).

Селекторы атрибутов

Позволяют находить элементы по значению их HTML-атрибутов. Например, input[type="text"] выбирает только input с типом «text». a[href^="http"] выбирает все ссылки, атрибут href которых начинается с «http» (то есть ведущие на внешние сайты).

Комбинаторы (связь между селекторами)

Для связи селекторов используется 4 основных знака: .card span (пробел) — выбирает все span внутри .card, на любом уровне вложенности (потомок). .card > span — выбирает только span, которые являются прямыми детьми .card. h2 + p — выбирает первый p сразу после h2 (соседний элемент). h2 ~ p — выбирает все p после h2 на одном уровне (все последующие соседи).

Псевдоклассы и псевдоэлементы

Часто путают, но это разные вещи:

  • Псевдокласс (пишется с одним двоеточием, например :hover) — описывает состояние элемента: hover (наведение курсора), first-child (первый дочерний элемент), nth-child (какой по счёту), focus (в фокусе).
  • Псевдоэлемент (пишется с двойным двоеточием, например ::before) — создаёт или выделяет часть элемента, которой нет в HTML напрямую: before и after (добавляют контент до/после элемента), first-line (первая строка текста).

Селекторы в JavaScript

Помимо CSS, селекторы активно используются и в JavaScript для поиска элементов на странице. Когда пишем document.querySelector(".card"), JavaScript находит первый элемент с классом «card». querySelectorAll возвращает все элементы с данным классом (в виде списка NodeList). В JavaScript можно использовать любой валидный CSS-селектор — например, document.querySelector("input[type='text']").

То есть селектор — это основной инструмент как для CSS (стилизация), так и для JS (поиск и манипуляция элементами).

Почему важно писать селекторы правильно

  • Слишком общий селектор (например, просто div) может случайно затронуть элементы, которые вы не планировали менять.
  • Слишком специфичный селектор усложняет поддержку кода и может привести к конфликтам приоритетов (specificity) в CSS.
  • В JavaScript неправильный селектор просто вернёт null — и попытка обратиться к несуществующему элементу вызовет ошибку в консоли.

Часто задаваемые вопросы

Что такое CSS-селектор простыми словами? Это правило, которое указывает браузеру, к какому именно элементу на странице применить стили — как адрес для доставки письма, только для HTML-элементов.

Чем отличается класс от ID как селектор? Класс (.card) можно использовать многократно на одной странице — для группы похожих элементов. ID (#header) должен быть уникальным и применяется только к одному элементу.

В чём разница между псевдоклассом и псевдоэлементом? Псевдокласс (:hover, :focus) описывает состояние существующего элемента. Псевдоэлемент (::before, ::after) создаёт часть элемента, которой не было в HTML-коде напрямую.

Хотите применить эти знания на практике и получить реальные результаты? Начните обучение на курсе «IT и Компьютерная инженерия» и шаг за шагом приобретайте практические навыки. Подробнее о курсе — перейдите по ссылке: Курс «IT и Компьютерная инженерия».

Заполните форму чтобы узнать больше о наших IT курсах

Связанные термины:

Начни изучать IT уже сегодня