Что такое вендорные префиксы в CSS

Ответ

CSS -webkit- — это префикс, используемый для CSS-свойств, которые изначально были экспериментальными или поддерживались только в браузерах на движке WebKit (например, Safari, старые версии Chrome).

Примеры:

.element {
  -webkit-transition: all 0.3s ease; /* Для старых версий Safari/Chrome */
  transition: all 0.3s ease; /* Стандартная запись */
}

Важно:

  • Современные браузеры часто поддерживают стандартные версии свойств, но -webkit- может требоваться для обратной совместимости.
  • Некоторые свойства (например, -webkit-text-stroke) остаются специфичными для WebKit.
  • Автопрефиксеры (PostCSS) автоматически добавляют нужные префиксы.

Использовать -webkit- вручную сегодня редко необходимо, но полезно знать для поддержки legacy-кода.

Ответ 18+ 🔞

А, вот эта хуйня с -webkit-! Ну, слушай, история проще пареной репы, но с привкусом старого пердежа.

Представь себе, браузеры — это такие упоротые гопники, каждый со своим движком. И вот придумали они какое-нибудь новое, охуенное CSS-свойство. Но пока оно не стало стандартом, каждый гопник-браузер лепит к нему свою, блядь, бирку — префикс. У WebKit (это движок Сафари и старых Хромов) бирка была -webkit-.

То есть, чтобы твоя анимация работала у всех, приходилось писать целую простыню, как последнему распиздую:

.element {
  -webkit-transition: all 0.3s ease; /* Для Сафари и старых Хромов, которые ещё сосали сиську */
  -moz-transition: all 0.3s ease;    /* Для огнелисов, ёпта */
  -o-transition: all 0.3s ease;      /* Для Оперы, которая уже сдохла в том виде */
  transition: all 0.3s ease;         /* И наконец, для всех нормальных пацанов */
}

Пиздец, да? Волнение ебать! А если забудешь какую-то строчку — всё, вёрстка поехала у половины пользователей, и ты сидишь такой: «Почему не работает, сука?!».

Что сейчас, блядь? Сейчас всё проще. Большинство этих свойств стали стандартными, и префиксы им как корове седло. Но! Есть два нюанса, как говорится:

  1. Легаси-код. Открой какой-нибудь проект десятилетней давности — там этого -webkit- овердохуища. Знать надо, а то будешь смотреть и думать: «Что за хуйня? Это опечатка?».
  2. Некоторые чисто вебкитовые штуки. Вот, например, -webkit-text-stroke — обвести текст. Стандарта такого нет, но если хочешь эту понтовую фичу в Сафари — пиши с префиксом, иначе нихуя.

Главный вывод, чтобы не ебать себе мозг: сейчас нормальные люди не пишут это руками. Есть такие инструменты-автопрефиксеры (типа PostCSS). Ты пишешь чистый, стандартный CSS, а он сам, этот хитрожопый инструмент, на этапе сборки лепит все нужные префиксы, глядя на список поддерживаемых браузеров. Гениально, ёпта!

Так что -webkit- — это как старый шрам: вроде уже не болит, но напоминает о былых, блядь, битвах за кроссбраузерность.