Creath: Browser Präfixe für CSS Eigenschaften

Bei verschiedenen CSS-Eigenschaften werden Hersteller spezifische Präfixe verlangt: Beispiel: -webkit-transition: all 0.5s; transition: all 0.5s;

Warum ist das so? Warum geht es nicht auch wie bei Anderen Eigenschaften, zum Beispiel "color"?

  1. Moin!

    Bei verschiedenen CSS-Eigenschaften werden Hersteller spezifische Präfixe verlangt: Warum ist das so? Warum geht es nicht auch wie bei Anderen Eigenschaften, zum Beispiel "color"?

    Es sind Eigenschaften, die (noch) nicht genormt sind. Das bedeutet:

    -webkit-sonstwas:1245;
    

    kann ganz anders aussehen als

    -ms-sonstwas:1245;
    

    und das später genormte

    sonstwas:1245;
    

    Würde jetzt webkit sofort:

    sonstwas:1245;
    

    verstehen, käme zu dem unschönen Effekt, dass man sich irgendwann auf die ms-Methode einigt und "für Webkit optimierte Seiten" mit späteren Webkit-Browsern richtig unschön aussehen, also nur noch "für Webkit, Version 'Asbach' optimierte Seiten" und für andere Versionen stark suboptimale Seiten sind.

    Jörg Reinholz

    1. Hallo Jörg Reinholz,

      Ergänzung: Die Entwicklung geht eben meist von einer Rendering-Engine aus und nicht von einem normenden Gremium.

      Irgendein Hersteller denkt sich, die Eigenschaft irgendwas wäre eine gute Idee und setzt die als -vendor-präfix-irgendwas um. Andere finden das gut und irgendwann einigen sich alle und die Eigenschaft wird präfixfrei unterstützt. Oder eben nicht, dann verschwindet die Eigenschaft wieder oder bleibt auf Dauer als -vendor-präfix-irgendwas.

      Bis demnächst
      Matthias

      --
      Signaturen sind bloed (Steel) und Markdown ist mächtig.
  2. @@Creath

    Bei verschiedenen CSS-Eigenschaften werden Hersteller spezifische Präfixe verlangt: Beispiel: -webkit-transition: all 0.5s; transition: all 0.5s;

    Warum ist das so?

    Präfixe waren in der Vergangenheit die Vorgehensweise, experimentelle CSS-Eigenschaften (Werte, etc.) zu testen. Für diese Eigenschaften sind einige Präfixe immer noch nötig. (transition ist aber nicht das beste Beipiel dafür, weil bis auf Android < 4.4 ohne Präfix unterstützt.)

    Für jetzige und zukünftige experimentelle Eigenschaften (etc.) werden keine Präfixe mehr verwendet. Ob Browser diese interpretieren, wird über Flags geregelt, welche der Nutzer in seinen Browsereinstellungen setzen kann.

    Das bedeutet, Entwickler können experimentelle Eigenschaften (etc.) in ihrem Browser testen. Bei gewöhnlichen Nutzern werden diese aber evtl. noch nicht interpretetiert; sondern erst, wenn diese per Browser-Update freigeschaltet werden.

    Warum geht es nicht auch wie bei Anderen Eigenschaften, zum Beispiel "color"?

    Weil color nicht experimentell ist. Präfixe waren nicht dazu gedacht, Browserweichen zu bauen.

    LLAP

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)