логотип PurpleSchool
логотип PurpleSchool

Вендорные префиксы в CSS. Полное руководство с примерами

Автор

Дмитрий Нечаев

Вендорные префиксы — это специальные префиксы, добавляемые к CSS-свойствам на этапе эксперимента или ранней поддержки браузерами. Они позволяют разработчикам использовать новые функции CSS, которые ещё не стали частью официального стандарта, или обеспечить поддержку свойств в различных браузерах с некоторыми отличиями в реализации.

Зачем нужны вендорные префиксы?

Когда новая функция CSS добавляется в спецификацию, её поддержка в разных браузерах может быть реализована в разное время. Вендорные префиксы помогают разработчикам тестировать и использовать эти функции до их официального внедрения. Они также позволяют избежать конфликтов и ошибок при использовании экспериментальных свойств.

Вендорные префиксы для различных браузеров

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

  • webkit- — для браузеров на движке WebKit (Chrome, Safari, Opera).
  • moz- — для браузера Firefox.
  • ms- — для браузера Internet Explorer и ранних версий Edge.
  • o- — для браузера Opera (до перехода на движок WebKit).

Примеры использования вендорных префиксов

Рассмотрим несколько примеров CSS-свойств с вендорными префиксами.

Пример 1: Градиенты

Градиенты в CSS стали популярной функцией, но их поддержка в разных браузерах появилась в разное время. Вот пример использования линейного градиента с вендорными префиксами:

background: -webkit-linear-gradient(top, #ff7e5f, #feb47b); /* Для WebKit */
background: -moz-linear-gradient(top, #ff7e5f, #feb47b);    /* Для Firefox */
background: -ms-linear-gradient(top, #ff7e5f, #feb47b);     /* Для Internet Explorer */
background: -o-linear-gradient(top, #ff7e5f, #feb47b);      /* Для Opera */
background: linear-gradient(to bottom, #ff7e5f, #feb47b);   /* Стандартное свойство */

Пример 2: Трансформации

Трансформации (transform) позволяют изменять размеры, поворачивать, наклонять и смещать элементы. Вот пример использования свойства transform с вендорными префиксами:

-webkit-transform: rotate(45deg); /* Для WebKit */
-moz-transform: rotate(45deg);    /* Для Firefox */
-ms-transform: rotate(45deg);     /* Для Internet Explorer */
-o-transform: rotate(45deg);      /* Для Opera */
transform: rotate(45deg);         /* Стандартное свойство */

Пример 3: Flexbox

Flexbox — это мощный инструмент для создания гибких макетов. Ранние реализации Flexbox имели различия в синтаксисе, и использование вендорных префиксов помогало разработчикам адаптировать код для различных браузеров.

/* Для WebKit */
.display: -webkit-box;
.display: -webkit-flex;
/* Для Firefox */
display: -moz-box;
display: -moz-flex;
/* Для Internet Explorer */
display: -ms-flexbox;
/* Для Opera */
display: -o-flexbox;
/* Стандартное свойство */
display: flex;

Поддержка свойств и автопрефиксер

Следить за поддержкой различных свойств в браузерах может быть утомительно. В этом могут помочь инструменты, такие как Can I Use, которые предоставляют информацию о поддержке различных свойств в разных браузерах.

Для автоматического добавления вендорных префиксов в CSS используется инструмент Autoprefixer. Он анализирует ваш CSS-код и автоматически добавляет необходимые префиксы на основе данных о поддержке браузеров.

Пример использования Autoprefixer с помощью PostCSS:

npm install postcss-cli autoprefixer

Создайте файл postcss.config.js:

module.exports = {
  plugins: [
    require('autoprefixer')
  ]
};

Запустите Autoprefixer для вашего CSS-файла:

npx postcss styles.css -o styles.prefixed.css

Заключение

Вендорные префиксы играют важную роль в обеспечении кроссбраузерной совместимости и позволяют использовать новые функции CSS до их официального принятия. Хотя современные браузеры всё чаще поддерживают стандартные свойства без префиксов, знание о вендорных префиксах и умение их применять остаются важными навыками для веб-разработчиков. Используйте инструменты, такие как Autoprefixer, чтобы упростить управление вендорными префиксами и сосредоточиться на создании качественного и функционального веб-контента.

Контекст наложения в CSS. Полное руководство с примерамиСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по использованию свойства will-change в CSSПолное руководство по свойству transform-style в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective-origin в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерами
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по свойству will-change в CSSПолное руководство по transition-timing-function в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Frontend
Mobile
изображение курса

TypeScript с нуля

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Backend
Frontend
Mobile
изображение курса

Next.js - с нуля

Антон Ларичев
иконка часов8 бесплатных уроков
иконка звёздочки рейтинга4.7
Frontend