Jump to content
  • 0

Префиксы браузеров. Смысл их введения


webmos
 Share

Question

Добрый день,

 

кто знает, в чём смысл введения браузерных префиксов? Вот, например, если есть свойство со значением: border-radius:10 px. Не проще бы было сделать его экспериментальным (в самом начале) без всяких префиксов и каждый браузер обрабатывал бы его как мог.

 

Вместо того, чтобы писать: -webkit-border-radius...., -mos-border-radius... и т.д.?

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Если я не ошибаюсь, то префиксы остались уже только для старых версий. Уже все последние браузеров поддерживают стили без вендорных префиксов. Каждый префикс отвечает за каждый браузер. -moz(Mozila), -o(Opera),-webkit(Chrome) и -ms(IE). 

Приходится прописывать много-много строк для кроссбраузерности. 

Почему не придумали писать сразу без них?Кажется, нужно это спросить у разработчиков браузеров)

Думаю, что если бы они могли раньше это сделать, то они бы это сделали.

  • Like 1
Link to comment
Share on other sites

  • 0

Экспериментальный — на то и экспериментальный, чтобы экспериментировать на свой страх и риск (отлавливая баги и сообщая о них), а не пихать в продакшн. Кстати, сейчас W3C изменила политику в отношении новых экспериментальных свойств, и они доступны сразу без префикса, но только после включения поддержки через настройки — экспериментировать можно, злоупотребить нельзя.

Для border-radius никакие префиксы уже год как не нужны. Префикс -ms- нужен только для 2D-трансформаций для IE9, префикс -moz- нужен только для box-sizing (и то лишь на ближайшие полгода-год). Префикс -webkit- пока, к сожалению, нужен для анимаций и переходов в мобильных браузерах, остальное уже более-менее обходится без префиксов. Префикс -o- вымер вместе с Оперой 11- (12-я, последняя на старом движке, тоже почти вымерла, но даже она уже понимала почти все новинки без префикса).

А вообще есть Autoprefixer, который расставляет нужные (и убирает ненужные) префиксы автоматически :)

  • Like 2
Link to comment
Share on other sites

  • 0

есть еще замечательный сервис http://caniuse.com/ где показывает нужно ли использовать те или иные префиксы. 

 

P.S. Autoprefixer у меня не работает и в Sublime и в Brackets, причину пока не установил :(

  • Like 1
Link to comment
Share on other sites

  • 0

есть еще замечательный сервис http://caniuse.com/ где показывает нужно ли использовать те или иные префиксы. 

 

P.S. Autoprefixer у меня не работает и в Sublime и в Brackets, причину пока не установил :(

У грунта есть автопрефиксер, работает 100% не зависимо от редактора)

  • Like 1
Link to comment
Share on other sites

  • 0

есть еще замечательный сервис http://caniuse.com/ где показывает нужно ли использовать те или иные префиксы. 

 

P.S. Autoprefixer у меня не работает и в Sublime и в Brackets, причину пока не установил :(

У грунта есть автопрефиксер, работает 100% не зависимо от редактора)
спасибо:) знать бы еще как использовать грунт)) пойду почитаю.
Link to comment
Share on other sites

  • 0
так если он экспериментальный, то как он может сразу быть релизнутым?

 

пока свойство экспериментальное, оно будет всеми браузерами обрабатываться по-разному (по-экспериментальному), а как стает стандартным, то все браузеры буду его обрабатывать одинаково. Какая трудность, чтобы так сделать изначально? не понимаю.

 

Получается такая фишка:

h1 {    -webkit-text-curl: minor;    -moz-text-curl: minor;    -o-text-curl: minor;    text-curl: minor;}

Взято как раз из статьи по ссылке. Четыре свойства с одними и теми же значениями! Это могло бы быть нужным только в том случае, если бы значения были разные, например,: minor; one_minor; first_minor и т.д. При этом визуально в каждом браузере получалось бы то же самое. Задать одной строкой разные значения для всех браузеров нельзя, тогда, действительно, надо для каждого браузера писать свою строчку со своим префиксом


 

так если он экспериментальный, то как он может сразу быть релизнутым?

 

пока свойство экспериментальное, оно будет всеми браузерами обрабатываться по-разному (по-экспериментальному), а как стает стандартным, то все браузеры буду его обрабатывать одинаково. Какая трудность, чтобы так сделать изначально? не понимаю.

 

Получается такая фишка:

h1 {    -webkit-text-curl: minor;    -moz-text-curl: minor;    -o-text-curl: minor;    text-curl: minor;}

Взято как раз из статьи по ссылке. Четыре свойства с одними и теми же значениями! Это могло бы быть нужным только в том случае, если бы значения были разные, например,: minor; one_minor; first_minor и т.д. При этом визуально в каждом браузере получалось бы то же самое. Задать одной строкой разные значения для всех браузеров нельзя, тогда, действительно, надо для каждого браузера писать свою строчку со своим префиксом, чтобы выглядело одинаково для пользователя.

 

Link to comment
Share on other sites

  • 0

Firefox время от времени убирает поддержку -moz-префикса для свойств, которые достаточно давно (5-10 версий подряд) поддерживаются без префикса. Судя по отсутствию надписи «[Prefixed version still accepted]» для свойств

-moz-background-clip

-moz-background-origin

-moz-background-size

-moz-border-image

-moz-opacity

-moz-outline

-moz-outline-color

-moz-outline-offset

-moz-outline-style

-moz-outline-width

в списке, они уже отменены.

Хром тоже грозился отменить старые -webkit-свойства, но примеров я пока не знаю.

Link to comment
Share on other sites

  • 0

Если отменят префикс, то на этот случай в самом конце пишется само свойство без префикса. За таблицу спасибо.

 

Но, может ли так быть, что не префикс отменят, а само свойство признают неудачным и оно перестанет поддерживаться: с префиксом и без префикса? Были такие случаи?

Edited by webmos
Link to comment
Share on other sites

  • 0

Бывало, когда синтаксис модуля CSS менялся до неузнаваемости (напр. у флексбоксов), тогда да, старые свойства с префиксом уходили в историю, а новые без префикса записывались совсем по-другому. Чтобы такое случилось со свойством без префикса, не припоминаю (было, что word-wrap с какого-то перепоя переименовали в overflow-wrap, но старое имя даже в спецификации официально оставили как допустимый синоним, так что поддержка в браузерах тоже сохранилась)...

  • Like 1
Link to comment
Share on other sites

  • 0

Тогда может получиться ситуация, когда, например, имеем такие экспериментальные свойства:

h1 {    -webkit-text-curl: minor;    -moz-text-curl: minor;    -o-text-curl: minor;    }

по советам разных книг пишем для официального свойства (с расчетом на то время, когда оно появится): text-curl:minor.

 

А когда официальное правило появляется, то оказывается, что его синтаксис другой, например,: css3text-curl: lowminor.

И получается. что таблицу стилей надо корректировать.

Может, тогда не использовать экспериментальные свойства? Не известно же наперед, какой синтаксис будет у конечного варианта. Тогда переписывать придется.

 

Или не синтаксис, а вообще в окончательной редакции решат, что свойство не нужное и откажутся от него. А человек сайт уже сверстал и держится все на экспериментальном свойстве. Есть ли гарантия, что браузер и дальше это экспериментальное свойство будет поддерживать? А то, узнав, что консорциум это свойство выкинул, и производители браузера его поддержку в последующих версиях отключать. Тогда придумывай другие решения, чтобы сайт работал.

Edited by webmos
Link to comment
Share on other sites

  • 0
P.S. Autoprefixer у меня не работает и в Sublime и в Brackets, причину пока не установил :(

Надо установить node.js http://nodejs.org/download/ и все заработает. При редактировании ctrl + shift + p ; Autoprefix CSS; Enter.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy