Правила CSS3 приносят много интересных функций.
Возьмите радиус границы, например. В стандарте говорится это, если Вы пишете это правило:
div.rounded-corners {
border-radius: 5px;
}
Я должен получить радиус границы на 5 пкс.
Но ни Mozilla, ни WebKit не реализуют это. Однако они реализуют то же самое, с теми же параметрами, с другим именем (-moz-border-radius
и -webkit-border-radius
, соответственно).
Для удовлетворения как можно большего количества браузеров, Вы заканчиваете с этим:
div.rounded-corners {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
Я вижу два очевидных недостатка:
В то же время я не вижу очевидных преимуществ.
Я полагаю, что люди позади Mozilla и WebKit более умны, чем я. Должны быть некоторые серьезные основания иметь вещи, структурировал этот путь. Это просто, что я не вижу их.
Так, я должен спросить Вас люди: почему это?
-moz-border-radius
описывает семантику Mozilla. Если CSS3 будет опубликован с другой семантикой, тогда Mozilla всегда сможет реализовать border-radius
, используя ту семантику, и они не нарушат чей-либо веб-сайт.
Между тем, если они просто использовали border-radius
напрямую, то, если CSS3 будет опубликован с другой семантикой, Mozilla придется выбирать между взломом сайтов людей или постоянной поддержкой нестандартного CSS.
Они делают это, потому что не полностью поддерживаются. Это очень похоже на бета-версию этого кода. В конце концов они добавят поддержку border-radius.
Это более очевидно, когда вы смотрите на линейные градиенты.
background-image: -moz-linear-gradient(100% 100% 90deg, #2F2727, #1a82f7);
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#1a82f7), to(#2F2727));
Обратите внимание, что они используют разный синтаксис. Когда они наконец придут к соглашению о стандарте, оба добавят поддержку linear-gradient и используют правильный синтаксис.
Простой. Собственные варианты -moz
и -webkit
были там до того, как border-radius
был записан в рекомендацию CSS3. У них были свои реализации, но они не знали, будут ли они соответствовать окончательной рекомендации W3C. Таким образом, они не использовали теперь официальное название и в тот момент, чтобы не сломать вещи позже.