TGViewer
Senior Frontend - javascript, html, css Senior Frontend - javascript, html, css @seniorfront · 23.9K subscribers
Post #5757 8.81K
Валидация на чистом CSS: считаем поля через :nth-child(n of selector)

Раньше для проверки «заполнено ли хотя бы 3 поля» нам обязательно нужен был JavaScript. Теперь с этим справляется нативный CSS.

В чем суть?
Синтаксис :nth-child(n of .selector) позволяет считать не все элементы подряд, а только те, что соответствуют определенному правилу.

Как это работает для валидации:

Мы определяем «заполненное» состояние (например, через :not(:placeholder-shown) или :valid).

Используем селектор :nth-child(3 of .field:has(:valid)). Он «выстрелит» только тогда, когда в списке появится третий валидный элемент.

Через комбинатор «тильда» (~) управляем состоянием кнопки отправки или показываем сообщение об успехе.

Пример кода:

CSS
/* Разблокируем кнопку, когда заполнено минимум 3 поля */
.form:has(.field:nth-child(3 of :has(input:not(:placeholder-shown)))) button {
opacity: 1;
pointer-events: auto;
}

👉 @seniorFront
  • 🔥 10
  • ❤ 1
  • 👍 1
More from @seniorfront
  1. Sep 15, 2026🔴 Тестовый собес на Frontend-разработчика со старшим разработчиком ex. Сбер в этот четвер…
  2. Sep 2, 2026🪄 Как убрать лишний div, не трогая HTML В CSS сетка или флексбокс действуют только на пря…
  3. May 28, 2026Нативный CSS-скоупинг: как изолировать стили без сборщиков Если вы работали с Vue или Svel…
  4. Apr 16, 2026SVG-фильтры: от «магии» к пониманию Если CSS-фильтры - это готовые инста-фильтры, то SVG-ф…
  5. Apr 2, 2026📄 Эффект загнутого угла на чистом CSS Интересный разбор от Kitty Giraudel. Традиционно «з…
  6. Mar 19, 2026Как работает JPEG: магия, обманывающая ваши глаза Вы когда-нибудь задумывались, почему JPE…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →