Gibt es einen gültigen Grund für die Browser, neue CSS-Funktionen vorangestellt zu haben, anstatt die Webmaster die nicht vorangestellte Version verwenden zu lassen?
Zum Beispiel kann ein Beispielcode für die Hintergrundgradienten aussehen:
#arbitrary-stops {
/* fallback DIY*/
/* Safari 4-5, Chrome 1-9 */
background: -webkit-gradient(linear, left top, right top, from(#2F2727), color-stop(0.05, #1a82f7), color-stop(0.5, #2F2727), color-stop(0.95, #1a82f7), to(#2F2727));
/* Safari 5.1+, Chrome 10+ */
background: -webkit-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Firefox 3.6+ */
background: -moz-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* IE 10 */
background: -ms-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Opera 11.10+ */
background: -o-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
}
Was bringt es, Webmaster zu zwingen, denselben Code viermal zu kopieren und einzufügen, um dasselbe Ergebnis zu erzielen?
Hinweis: Einer der häufig genannten Gründe ist, dass vorangestellte Stile nur vorübergehend sein sollen, während entweder der Browser die Spezifikation nicht korrekt implementiert oder die Spezifikation nicht endgültig ist .
IMO, dieser Grund ist ein Unsinn:
- Wenn die Browser-Engine die Spezifikation nicht korrekt implementiert, ist der Browser nicht kompatibel, unabhängig davon, ob er sie nicht in einer nicht vorangestellten Form oder nicht in einer vorangestellten Form implementiert.
- Wenn die Spezifikation nicht endgültig ist, kann es wichtig sein, wann es frühere Implementierungen mit demselben Namen gab. Wenn beispielsweise CSS2 dies getan hätte
linear-gradient
, CSS3 jedoch umlinear-gradient
zusätzliche Funktionen erweitert werden sollte, wäre es klug, der neuen Entwurfsimplementierung vorübergehend ein Präfix voranzustellen, indem-css3-<style>
zwischen der funktionierenden CSS2- Implementierung und der experimentellen CSS3- Implementierung unterschieden wird. In der Praxis hat CSS2 keinelinear-gradient
oder andere CSS3-Neuheiten.
Ich würde auch verstehen, wenn verschiedene Browser unterschiedliche Implementierungsformate hätten : Nehmen wir zum Beispiel an, Firefox ist für <weight-of-shadow distance-x distance-y color>
Textschatten erforderlich, während Chrome erforderlich ist <distance-x distance-y weight-of-shadow color>
. Dies ist jedoch nicht der Fall. Zumindest alle neuen Funktionen von CSS3, die ich bisher verwendet habe, hatten das gleiche Format.
If the browser engine does not implement the spec correctly, the browser will not be compliant
- Willkommen in der realen Welt. ™