PassFront
  1. PassFront
  2. База знаний
  3. Основы CSS

Как избежать пересечения идентификаторов CSS?

Основы CSS

Пересечение имён классов и id в CSS избегают изоляцией стилей или строгими соглашениями об именах.

Способы

  • БЭМ — имена привязаны к блоку: .card__title, а не просто .title.
  • Префиксы — .app-, .ui- для библиотек и виджетов.
  • CSS Modules — сборщик делает классы уникальными: .title → .Card_title__a8x2.
  • Scoped-стили во Vue и Svelte.
  • CSS-in-JS — уникальные классы генерируются автоматически.
  • Shadow DOM — для виджетов, которые встраиваются на чужие страницы.

id

id должен быть уникальным на странице. В компонентах React его генерируют через useId(), во Vue — через useId() (3.5+) или уникальный префикс, чтобы несколько экземпляров компонента не дали одинаковых id.

const id = useId();
<label htmlFor={id}>Email</label>
<input id={id} />

Коротко для собеседования

Конфликты имён решают БЭМ и префиксы, CSS Modules, scoped-стили и Shadow DOM; уникальные id в компонентах генерируют через useId.

Подробнее: CSS Modules

Другие вопросы раздела