Почему стандартное правило должно быть наконец?

Мы используем правило css следующим образом...

-moz-border-radius: 8px;
-webkit-border-radius: 8px;
-o-border-radius: 8px;
border-radius: 8px;  /* this must be at last ? */

Почему бы мне не использовать его сначала вот так...

border-radius: 8px; /* why not to use at first ? */
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
-o-border-radius: 8px;

Обновить

Может ли кто-нибудь показать мне пример ошибки, возникающей при его первом использовании?


person Navin Rauniyar    schedule 24.04.2013    source источник
comment
Объясняется здесь: title="почему браузерам нужны префиксы поставщиков для css3, что мешает им просто u">stackoverflow.com/questions/8461252/ По сути, как только стандарт станет официальным, он переопределит экспериментальный префикс css.   -  person Jason Lydon    schedule 24.04.2013
comment
@Jason: Этот вопрос, кажется, спрашивает, почему префиксы поставщиков вообще используются, а не почему свойство без префикса должно стоять последним. Лучшим дубликатом будет stackoverflow.com/questions/12528398/   -  person BoltClock    schedule 24.04.2013
comment
Посмотрите эту демонстрацию codepen.io/css-tricks/pen/pqgKH.   -  person Rajender Joshi    schedule 24.04.2013
comment
Может ли кто-нибудь показать мне пример ошибки, возникающей при его первом использовании? Вы видели комментарий Сону Джоши?   -  person BoltClock    schedule 24.04.2013
comment
Теперь перейдите по этой ссылке о дополнительных css-tricks.com/ordering-css3-properties   -  person Rohit Azad Malik    schedule 24.04.2013
comment
@BoltClock Я не видел никаких изменений между ними.   -  person Navin Rauniyar    schedule 28.04.2013


Ответы (2)


При написании свойств CSS3 современная мудрость состоит в том, чтобы перечислять «настоящие» свойства последними, а префиксы поставщиков первыми:

.not-a-square {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
}

Почему этот метод упорядочивания свойств так широко преподается? Вот как это будет выглядеть "the wrong way":

.not-a-square {
  border-radius: 10px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
}

Даже если сделать это «неправильным образом», разве радиус границы не останется прежним, несмотря ни на что, навсегда? Беглое исследование может привести вас к заключению, что так и будет, и такое упорядочение свойств довольно бессмысленно.

Давным-давно: ни одно из свойств не поддерживается, порядок не имеет значения. Прошлое: поддерживаются только префиксы поставщиков, порядок не имеет значения. Сейчас: поддерживаются как префиксы поставщиков, так и фактические свойства. Если префикс последний, он переопределит фактическое свойство, но в любом случае оба одинаковы. Будущее: поддерживается только актуальное свойство, порядок не имеет значения.

Подробнее

person Rohit Azad Malik    schedule 24.04.2013
comment
если оба поддерживаются, они могут не быть одинаковыми во всех случаях. Смысл префиксов поставщиков в том, что они не стандартизированы и могут не соответствовать спецификации. Так что это действительно имеет значение. - person Ben McCormick; 24.04.2013

Идея состоит в том, что как только правило будет стандартизировано, оно преобладает над другими стилями. Поскольку стандартное правило находится внизу, оно будет использоваться вместо правила, специфичного для поставщика, если браузер знает, как это сделать. Это позволяет стандартизировать, сохраняя при этом текущие реализации.

Во втором примере правила, специфичные для поставщика, переопределяют стандартизированное правило, если браузер поддерживает оба. Конкретные реализации поставщика могут отличаться от спецификации, и лучше использовать унифицированную спецификацию после ее завершения, чтобы упростить кросс-браузерные изменения.

person Ben McCormick    schedule 24.04.2013