При указании свойств CSS3 современная мудрость гласит: «ставь реальное свойство CSS3 после всех браузерозависимых свойств»:
2 |
-webkit-border-radius: 10px ; |
3 |
moz-border-radius: 10px ; |
Существует также другой «неправильный способ»:
3 |
-moz-border-radius: 10px ; |
4 |
-webkit-border-radius: 10px ; |
Чтобы понять почему порядок имеет значение, стоит вспомнить историю:
- Очень давно: Ни одно из свойств не поддерживалось браузерами, и конечно нечего говорить и об их порядке.
- В недавнем прошлом: Поддерживались только свойства с префиксами, и поэтому порядок не имел значения.
- Сейчас: Поддерживаются и реальные свойства CSS3 и свойства с префиксами. Если свойство с префиксом располагается после реального, оно его переопределяет.
- В будущем: Будут поддерживаться только реальные свойства, и порядок снова будет не важен.
Очень давно
2 |
border-radius: 10px ; /* игнорируется */ |
3 |
-webkit-border-radius: 10px ; /* игнорируется */ |
В недавнем прошлом
2 |
border-radius: 10px ; /* игнорируется */ |
3 |
-webkit-border-radius: 10px ; /* игнорируется */ |
Сейчас
2 |
border-radius: 10px ; /* переопределяется */ |
3 |
-webkit-border-radius: 10px ; /* используется */ |
В будущем
2 |
border-radius: 10px ; /* используется */ |
3 |
-webkit-border-radius: 10px ; /* игнорируется */ |
И если например мы захотим сделать блок с закругленными углами так:
2 |
/* These do totally different things */ |
3 |
border-radius: 30px 10px ; |
4 |
-webkit-border-radius: 30px 10px ; |
и создадим тестовую разметку:
04 |
< meta charset = utf -8 /> |
11 |
#wrongway { background: #ccc; padding: 30px; |
12 |
border-radius: 30px 10px; |
13 |
-webkit-border-radius: 30px 10px; |
15 |
#rightway { background: #ccc; padding: 30px; |
16 |
-webkit-border-radius: 30px 10px; |
17 |
border-radius: 30px 10px; |
22 |
< p id = "wrongway" >Wrong Way</ p > |
23 |
< p id = "rightway" >Right Way</ p > |
то получим нежелательный для нас результат:
Так что ставьте реальное свойство CSS3 после всех аналогичных свойств с префиксами.
Источник: w3pro.ru