Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+717новых вакансий за сутки·60 871вакансия открыта сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 951
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python9 224
  • Облачные технологии4 076
  • QA вакансии1 588
  • Android1 322
  • Инженер данных805
  • Продакт-менеджер368

Разработка

  • Backend вакансии1 317
  • iOS1 239
  • AI вакансии608
  • Fullstack вакансии523
  • Frontend вакансии456
  • Mobile вакансии28

По стеку

  • Go5 445
  • Java3 175
  • Kotlin1 119
  • Node.js1 026
  • Rust949
  • .NET666
  • PHP311
  • C#210
  • C++204

DevOps и инфраструктура

  • DevOps вакансии2 713
  • Kubernetes2 308
  • Linux-инфраструктура1 890
  • Terraform / IaC1 406
  • CI/CD842
  • Мониторинг и Observability645
  • SRE226
  • Кибербезопасность84

Аналитика и данные

  • Аналитик данных483
  • Data Scientist469
  • Бизнес-аналитик349
  • Системный аналитик48

Другие направления

  • Проджект-менеджер139
  • UI/UX дизайн71
  • Ручное тестирование14

По регионам

  • Вакансии в США24 791
  • Вакансии в Европе9 439
  • Работа в России2 924
  • Вакансии в Канаде2 178

По формату

  • Удалённые вакансии43 505
  • Релокация в США24 791
  • Гибридная работа3 370
  • Офисная работа2 525

По уровню

  • Senior вакансии20 898
  • Middle вакансии12 438
  • Junior вакансии3 864

Сейчас нанимают

Все компании
  • Wise191 вакансия
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis48 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме HTML/CSSВсе вопросы
HTML/CSSMiddleТеория

Что такое cascade layers (@layer) и как они помогают управлять CSS в больших проектах?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

CSS Cascade Layers (@layer) позволяют явно задать приоритет групп стилей независимо от специфичности селекторов. Слои объявляются в порядке возрастания приоритета: последний объявленный слой побеждает при конфликте.

Синтаксис

/* 1. Объявить порядок слоёв (обязательно в начале файла) */
@layer reset, tokens, base, components, utilities;

/* 2. Заполнить слои */
@layer reset {
  *, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
}

@layer tokens {
  :root {
    --color-primary: #c28b00;
    --color-text: #1a1a1a;
    --radius-md: 12px;
    --spacing-4: 1rem;
  }
}

@layer base {
  body {
    font-family: 'Rubik', sans-serif;
    color: var(--color-text);
    line-height: 1.5;
  }

  h1, h2, h3 { font-weight: 600; }
}

@layer components {
  .card {
    background: #fff;
    border-radius: var(--radius-md);
    padding: var(--spacing-4);
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  }

  /* Высокая специфичность, но слой низкий */
  .card .card__title.card__title--featured {
    color: var(--color-primary);
  }
}

@layer utilities {
  /* Низкая специфичность, но слой высокий — всегда побеждает */
  .mt-4 { margin-top: var(--spacing-4) !important; }
  .text-primary { color: var(--color-primary); }
}

Что такое CSS Cascade Layers

Директива @layer (Cascade Layers, CSS Cascading and Inheritance Level 5) позволяет разработчику явно управлять порядком каскада, создавая именованные слои. Стили внутри слоя с более высоким приоритетом (объявленного позже) побеждают стили из более низких слоёв, независимо от специфичности.

Ключевое свойство: приоритет по порядку объявления

@layer A, B;

@layer A {
  p { color: blue; } /* specificity: 0,0,1 */
}

@layer B {
  p { color: red; }  /* specificity: 0,0,1 — тот же */
}

/* Результат: red — слой B объявлен позже */

Стили вне любого слоя (unlayered) имеют наивысший приоритет — выше всех @layer:

@layer components {
  .card { background: white; }
}

/* Unlayered — побеждает даже с той же специфичностью */
.card { background: #f5f5f5; }

Интеграция с @import

/* Подключить стороннюю библиотеку в слой с низким приоритетом */
@import url('bootstrap.min.css') layer(vendor);
@import url('normalize.css') layer(reset);

@layer reset, vendor, base, components, utilities;

/* Теперь наши компоненты всегда побеждают Bootstrap */
@layer components {
  .btn { background: var(--color-primary); }
}

Вложенные слои

@layer components {
  @layer form {
    .input { border: 1px solid #ddd; }
  }

  @layer button {
    .btn { cursor: pointer; }
  }
}

/* Обращение к вложенному слою извне */
@layer components.form {
  .input:focus-visible { border-color: var(--color-primary); }
}

Практический пример: Tailwind + кастомные компоненты

/* globals.css */
@import 'tailwindcss/base' layer(tw-base);
@import 'tailwindcss/components' layer(tw-components);
@import 'tailwindcss/utilities' layer(tw-utilities);

@layer reset, tw-base, tw-components, project-components, tw-utilities, project-utilities;

@layer project-components {
  /* Компоненты проекта выше Tailwind компонентов, но ниже утилит */
  .job-card {
    border-radius: 12px;
    padding: 1.5rem;
    background: white;
  }
}

Поддержка браузеров

  • Chrome 99+, Firefox 97+, Safari 15.4+
  • Глобальная поддержка: ~92% (caniuse.com, 2026)
  • Polyfill: @csstools/postcss-cascade-layers для старых браузеров
// postcss.config.mjs
import postcssCascadeLayers from '@csstools/postcss-cascade-layers';

export default {
  plugins: [
    postcssCascadeLayers(),
  ],
};

Подводные камни

  • Unlayered стили побеждают все @layer: если подключить стороннюю библиотеку без layer(), она автоматически получает наивысший приоритет — всегда оборачивайте vendor CSS в слой.
  • Порядок объявления @layer: если один файл объявляет @layer A, B, а другой — @layer B, A, итоговый порядок определяется первым встреченным объявлением — легко запутаться при разбивке CSS на файлы.
  • @import layer и CORS: @import url(...) layer() для cross-origin ресурсов требует корректных CORS-заголовков, иначе стили не загрузятся.
  • DevTools и @layer: в Chrome DevTools стили внутри слоёв отображаются с пометкой слоя, но это сравнительно новый UI — часть команды может не знать, как читать приоритеты.
  • !important внутри @layer: !important инвертирует порядок слоёв — !important из нижнего слоя побеждает !important из верхнего. Это контринтуитивно и ломает ожидания.
  • PostCSS-полифил и динамические слои: полифил @csstools/postcss-cascade-layers работает статически во время сборки и не обрабатывает слои, добавленные через JavaScript (CSSStyleSheet API).

Типичные ошибки

  • Отвечать определением без production-сценария.
  • Не называть runtime boundary, security boundary или failure mode.
  • Игнорировать версию API, observability и тестовую проверку.

Что проверяет интервьюер

  • Объясняет механизм своими словами и без выдуманных API.
  • Называет реальные риски, диагностику и критерий корректности.
  • Связывает ответ с текущей документацией и миграционными ограничениями.

Как вы знаете этот вопрос?

Проверить себя по теме HTML/CSS →

Источники

  • https://developer.mozilla.org/docs/Web/Performance/Guides/Lazy_loading
  • https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display
  • https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Performance/CSS
←Предыдущий вопросРасскажите о случае, когда вы улучшали performance, accessibility, testing или maintainability в проекте на HTML/CSS.Следующий вопрос→Как правильно проектировать focus states и keyboard navigation для сложного интерфейса?

Связанные темы

HTML/CSShtml-css-productionrisk-analysistechnical-depth

Частые вопросы на собеседовании

  • Что такое семантический HTML и почему он важен? Приведите примеры семантических элементов.
  • В чём разница между <script> с атрибутами defer и async?
  • В каких типах frontend-проектов HTML/CSS даёт реальный выигрыш, а где будет избыточен или неудачен?
  • Что такое Flexbox и чем он отличается от Grid? Когда использовать каждый?