CSS3 ist ein großer Durcheinander! 4+ Regeln, um eine Ecke abzurunden oder einen Schatten hinzuzufügen! Unverschämt! Wo sind die Standards?!
Das höre ich ständig. Da ist etwas Wahres dran. Wir alle mögen Standards, zweifellos sind sie gut für die Industrie. Eine Menge unordentlichen/wiederholten Codes, wie CSS3 ihn produzieren kann, fühlt sich nicht wie der saubere, glückliche Code an, um den es bei Standards gehen sollte.
Aber hier ist die Sache.
Die Spezifikationen für diese Dinge sind noch nicht fertig. Standards bewegen sich verdammt langsam. Browserhersteller wissen, dass wir diese Dinge wollen, also warten sie nicht auf die Spezifikation, sie verwenden browserspezifische CSS-Attribute, damit wir sie jetzt schon benutzen/testen können. Das ist gut. Es bedeutet, dass sie nicht auf ihren Ärscheln sitzen und auf einen langsamen Zug warten, der niemandem Rechenschaft ablegt. Wenn die Spezifikation dann fertig ist, können sie die Unterstützung dafür auf die übliche Weise viel schneller ausrollen.
Meiner Meinung nach wäre es *schlimmer*, wenn Browser die neuen Attribute ohne die browserspezifischen Präfixe implementieren würden, da dies *tatsächlich* bedeuten würde, Standards aufzugeben.
Stimme zu^^
Zustimmung, es sieht nicht schön aus, aber es ist nicht schwer, die Präfixe zu verwenden.
Besonders mit Seiten wie http://css3please.com/
Vielen Dank, dass Sie mir diese Seite gezeigt haben.
Volle Zustimmung. Die Ersteller dieser Seite verstehen den Sinn von -moz, -webkit, filter und -ms-filter wohl nicht.
Obwohl es ein Arschloch ist, diese Zeilen immer wieder zu schreiben, ist es auf lange Sicht viel besser, es in Kauf zu nehmen und den Standardisierungsgremien zu helfen, definitive Schlussfolgerungen zu ziehen – und sie dann in die Browser zu pushen, um sie dort einheitlich zu unterstützen.
Zustimmen
Sie haben absolut Recht bezüglich der Geschwindigkeit, mit der Standards voranschreiten, Chris.
Ich hätte lieber ein bisschen wiederholtes browserspezifisches CSS und nutze die coolen Features von CSS3, als viel länger zu warten, bis ich es in seiner ganzen Pracht sehe.
Ich stimme bis zu einem gewissen Punkt zu.
Schauen Sie sich den Link an, den Sie uns in IE8 geliefert haben. Das gilt als „moderner“ Browser, nicht wahr? Müll, sage ich Ihnen!
Ich arbeite für eine Web-Agentur, die sich ausschließlich mit medizinischen und zahnmedizinischen Websites beschäftigt. Ich kann Ihnen sagen, dass „graceful degradation“ für viele unserer individuellen Website-Kunden nichts bedeutet. Sie wollen, dass es unabhängig vom Browser gleich aussieht.
„Ich habe mir meine Seite zu Hause auf meinem Rechner angesehen. Warum sieht sie viel besser/schlechter aus?“
So etwas ist typisch. Ich sage nicht, dass man es nicht benutzen soll, denn ich baue ständig Sachen ein… meistens Schatten. Aber wenn ein Kunde gerade 6.000 Dollar für eine individuell gestaltete Website ausgegeben hat und sich etwas auf seinem Bürocomputer in IE6 ansieht (ja, wir haben durchschnittlich 25-30 % Besucher auf Zahnarzt-Websites, die diesen Browser nutzen), dann nach Hause geht und es in FF3.X oder Safari sieht, sagen sie: Was zum Teufel? Das wird zu einem Problem.
Ich denke, es kommt auf den Kunden an. Wenn Sie mit einer Person nach der anderen arbeiten, alle paar Wochen an einer Website, und wissen, dass sie einen modernen Browser nutzen… dann werden Sie wahrscheinlich kein Problem haben. Ich erstelle individuell gestaltete Websites, etwa eine alle zwei Tage. Ich bekomme eine PSD-Datei, codiere sie von Hand, und wenn ich fertig bin, *dann* soll ich mit dem Kunden sprechen. Wer weiß, was ich dann erwarten muss. Und IE6 taucht ziemlich oft auf.
CSS3 ist großartig. Aber zu versuchen, es mit verrückten Fixes für ältere Browser und einem begrenzten Zeitrahmen zu umgehen… nicht so großartig.
Ich arbeite für ein Unternehmen, das Software für den medizinischen Bereich entwickelt, und ich pflege die Intranet-Seite, die die Manager nutzen.
Ich stimme dem, was Sie sagen, voll und ganz zu. Die meisten Benutzer, die unsere Seite aufrufen, verwenden Internet Explorer (normalerweise IE 6). Wenn ich etwas entwerfe, entwerfe ich es für Internet Explorer, stelle aber sicher, dass es auf allen Browsern gleich funktioniert.
Es ist interessant zu bedenken, dass ein Kunde 6.000 Dollar für eine individuell gestaltete Website ausgeben könnte, aber nicht bereit wäre, auf einen aktuellen Browser umzusteigen, der keinen Pfennig kostet.
Aus Neugier: Schlagen Sie Ihren Kunden als Webdesigner vor, aktuelle Browser zu verwenden, nicht nur, um ihre eigenen Websites anzuzeigen, sondern auch, um im Web Informationen beliebiger Art zu suchen?
Alle,
Man kann nicht davon ausgehen, dass Kunden, die IE6 verwenden, einfach faule Ignoranten sind. Sie haben sicher schon von Problemen gehört, bei denen Unternehmen gezwungen sind, bei einer Browser-Version zu bleiben, weil sie Dutzende von vendorspezifischen Anwendungsversionen betreiben, die alt sind und nur auf IE6 unterstützt werden. Diese riesigen Investitionen kosten auch viel Geld und Infrastruktur, um sie aufzurüsten. Wenn also Jane, die Buchhalterin, darüber jammert, dass sie keine gute Facebook-Erfahrung hat, sagen ihr die EUS-Teams, sie sollen „sterben gehen“, es sei denn, sie kann eine halbe Million Dollar aufbringen, um eine Unternehmensanwendung zu aktualisieren.
Hier ist die Sache mit den „Kunden“.
Sie haben einen Kunden (eine Person), der wiederum mehrere Kunden hat (möglicherweise 10.000 Kunden).
Wenn ich ein Unternehmen habe, das mit Leuten Geld verdient, die meine Website besuchen, und 10 % meiner Benutzerbasis IE6 sind… würde ich mir nicht anhören wollen, wie ein Nerd mir erzählt, ich solle einen modernen Browser verwenden. Ich möchte, dass er mehr Zeit in Photoshop verbringt, um Hintergrundbilder zu zerhacken, damit meine Website browserübergreifend schön aussieht.
CSS3 ist großartig und ein großer Schritt nach vorn. Und in 5 Jahren, wenn es der wahre (nutzbare Standard) ist, werden wir wirklich davon profitieren.
In der Zwischenzeit ist es anwendungs- und kundenabhängig. Wenn Sie einen Premium-Preis für eine Website verlangen, dann sollte echte Browserkompatibilität implementiert werden… nicht „graceful degradation“
Gut gesagt, Chris,
Ich stimme voll und ganz zu. Und ich habe es noch nie aus der Sicht der Browserhersteller betrachtet, wie sie tatsächlich *helfen*, den Designer, indem sie ihm Zugang zu coolen Sachen geben, die ewig dauern. Also ja, Respekt dafür.
Danke!
Wenn ich wählen müsste zwischen noch nicht standardisiertem und browserspezifischem CSS, würde ich browserspezifisches CSS wählen. Aber ich würde eine Implementierung von beidem bevorzugen und ein Szenario, in dem browserspezifisches CSS den Standard überschreiben würde. Ich denke…
Was passiert mit vendorspezifischer Syntax, sobald die Standards echte Standards sind und der Vendor den Browser aktualisiert? Und wenn wir alle Fallbacks für das eingebaut haben, was wir für den Standard halten, und sich dieser dann ändert, was dann?
Ich kann mir ein Durcheinander vorstellen, das schlimmer sein wird als IE5.5 und IE6. Ganz zu schweigen von den Stunden, die für die Aktualisierung all der Codes aufgewendet werden, die wir im Internet veröffentlicht haben.
Wenn Anbieter ihre Browser aktualisieren, um den offiziellen Standard zu unterstützen, werden sie die Unterstützung für die Präfixversion einstellen. Also fügen Sie einfach beides in Ihr Stylesheet ein. Nicht erkannte Eigenschaften werden ignoriert, daher schadet es nicht, ein -webkit-border-radius oder Ähnliches beizubehalten (abgesehen davon, dass Ihr Stylesheet technisch ungültig ist).
Wie hoch ist die Wahrscheinlichkeit, dass die Spezifikationen für HTML5 und/oder CSS3 dieses Jahr fertig werden? Es hat etwas so Ordentliches und Sauberes, diese – und WordPress 3! (April?) – im Jahr 2010 veröffentlicht zu sehen.
Ich denke, das W3C plant für 2022…
2022 ist das Jahr, in dem es zwei 100%ige Implementierungen in freier Wildbahn geben wird, etwas, das es für CSS2 (oder ich denke, HTML4) nicht gibt… also ist es irgendwie eine große Ablenkung.
http://wiki.whatwg.org/wiki/FAQ#When_will_HTML5_be_finished.3F
Jeremy Carlson macht einen interessanten Punkt.
Und so beheben Sie dieses Problem.
Sie erklären graceful degradation. Sie sagen ihnen, dass die Funktionalität genau die gleiche ist. Sie sieht auf neueren Browsern einfach besser aus / hat mehr Funktionen. Und wenn sie möchten, dass sie auf veralteten, instabilen und unsicheren Browsern „genau gleich“ aussieht, müssen sie mehr bezahlen, weil es so viel mehr Zeit und Mühe kostet, dies zu tun.
Sobald Sie anfangen, darüber zu sprechen, wie die lächerliche Vorstellung von „gleich aussehen“ sich auf das Endergebnis auswirkt, tun die meisten Manager und Kunden das Richtige und upgraden. Bei der Arbeit haben meine Manager dem zugestimmt, und bei meiner freiberuflichen Tätigkeit berechne ich zusätzliche Gebühren für die IE6-Unterstützung. Erklären Sie es ihnen also. Sie werden froh sein, dass Sie es getan haben.
Und obwohl ich Chris zustimme, denke ich, dass diese Praxis, keine Standards zu haben, auch ziemlich gefährlich sein kann. Anbieter werden möglicherweise nie auf Standards aktualisieren (MS), und dann haben wir das Problem, ältere Versionen von einem halben Dutzend verschiedener Browser zu unterstützen. Jeder schreit heutzutage über IE6, aber ich bin sicher, einige von Ihnen erinnern sich an die guten alten Zeiten der Unterstützung für IE-Versionen 4-6, MAC IE 5 und 5.5, Netscape alles, während sie versuchten, Best Practices und Webstandards für moderne Browser wie Safari und Firefox zu implementieren.
Ein zweischneidiges Schwert, oder?
Die endgültigen Spezifikationen für Standards müssen mit der Technologie Schritt halten, um nützlich zu sein. Spezifikationen sind nicht vorteilhaft, wenn sie veraltet sind, wenn sie fertiggestellt werden.
Dieses Argument wird auf Spezifikationen aller Art angewendet. Bei der Entwicklung einer Webanwendung müssen Sie Ihre Spezifikationen schnell und effizient erstellen. Wenn Sie zu lange brauchen, ist Ihre Spezifikation veraltet und gilt für alte Technologie.
In der heutigen Zeit ist es schockierend, wie wenige Ressourcen darauf abzielen, schnell und effizient einen Standard an Spezifikationen zu erstellen. Milliarden von Dollar stehen für Unternehmen auf dem Spiel, die im Online-Bereich konkurrieren. Wenn man es aus dieser Perspektive betrachtet, ist unser aktueller Prozess ein Witz.
asd
Wort! Bis das w3 es von einem Arbeitsentwurf zu „fertig“ macht. Es ist wirklich noch offen. Ich frage mich, wie viele Ihrer Leser oder ob Sie überhaupt den Entwurf gelesen haben?
http://www.css3.info/ ist eine ausgezeichnete Ressource, um die Syntax für neue CSS3-Ergänzungen zu lernen.
Offensichtlich haben die Browser die Unterstützung für diese Funktionen, warum erkennen sie nicht alle die einzelne CSS-Deklaration?
Von diesen Demos bevorzuge ich die „vier“, da sie meine Fenster beim Wechseln von Tabs nicht scrollen lassen, wie die anderen, und ich denke, das könnte bei der Benotung berücksichtigt werden.
Benutzerfreundlichkeit über Semantik und saubere Markup… vielleicht… nur wenn nötig.
Benutzerfreundlichkeit* Fehler meinerseits.
Könnte jemand erklären, was mit browserspezifischem CSS gemeint ist? Bedeutet das, dass zum Beispiel Firefox vorerst sein eigenes CSS3-Protokoll hat, bis ein definitiver CSS3-Standard etabliert ist?
Ich hatte nicht wirklich darüber nachgedacht. Es ergibt aber Sinn. Ich dachte immer, es wäre besser für alle, wenn Mozilla, Webkit usw. einfach den vorgeschlagenen Standard verwenden würden: z. B. box-shadow, anstelle ihrer Browser-Erweiterungen.
Was mich wirklich stört, ist nicht speziell box-shadow, sondern die unterschiedlichen Wege, eine untere linke border-radius zum Beispiel anzuwenden.
Ich glaube, Webkit macht es genauso wie der vorgeschlagene Standard mit dem -webkit-Browsererweiterungsindikator vorne, aber Mozilla macht wirklich etwas Seltsames.
Korrigieren Sie mich, wenn ich falsch liege. Ich könnte das auch umgekehrt haben.
Ich wollte nur Chris für eine so großartige Ressource danken. Ich habe die ganze Nacht gegoogelt, um einige fortgeschrittene CSS-Formulare zu finden. Das ist meine neue W3C-Schule :) Sogar Ihre Kommentarfelder sind krank!
Das ist ein großartiger Artikel. Es gibt wirklich 2 riesige Seiten davon, wie die Leute sprechen. Ich persönlich bin es leid, browserspezifische CSS-Attribute zu verwenden, um alles auf verschiedenen Browsern gleich aussehen zu lassen.
In meinem Job muss ich sicherstellen, dass wie üblich Websites, die wir entwerfen, in jedem Browser von IE6 aufwärts und Firefox und Mozilla gleich aussehen. Das ist ein großes Problem, wenn man einige schicke CSS ausprobiert, daher neige ich dazu, Hintergrundbilder für Schatten usw. zu verwenden und nur Schatten auf Text anzuwenden, der als Bild für SEO-Zwecke in Ordnung ist.
Wenn Sie verpflichtet sind, Websites zu erstellen, die SEO-perfekt sind und sicherstellen, dass Sie die grüne Box für W3C erhalten, kann es manchmal mehr Aufwand als nötig sein, um ununterstützte CSS3-Techniken zu verwenden.
Sobald es einen Standard für bestimmte CSS3 gibt, werde ich ihn verwenden, aber bis dahin werde ich weitermachen, wie ich es tue. Was schade ist, da Schatten auf H1-Tags usw. großartig aussehen können.
Ich möchte darauf hinweisen, dass Opera(|| Presto) begonnen hat, seinen Präfix (-o-) zu entfernen.
Es funktioniert jetzt ohne Präfix für mindestens border-radius.
Ich habe noch nicht alle Eigenschaften überprüft. Und das habe ich auch nicht vor, da ich nicht vorhabe, jemals alle neuen CSS3-Eigenschaften zu verwenden. (Ich bekomme einen Schiel-Blick, wenn ich eine Website mit text-shadow sehe)
Wenn ich darüber nachdenke… Webkit lässt seinen Präfix auch fallen. Zumindest in Google Chrome kann ich überprüfen, welche Eigenschaften verwendet werden, ohne zu testen.
Also für Borders brauchen Sie jetzt nur noch -moz- und den Standard, vorausgesetzt, alle außer IE-Nutzern aktualisieren regelmäßig.
Und Gott sei Dank – nicht, dass ich religiös wäre – für das, denn versuchen Sie mal, den border-radius für 3 verschiedene Ecken mit 4 verschiedenen Browser-Spezifikationen einzustellen :-p
Warum können die Browserhersteller ihre Browser nicht inkrementell aktualisieren, ohne all die .x.x-Nummern? Was ich meine ist, warum kann Firefox zum Beispiel nicht kontinuierlich im Hintergrund aktualisieren, so dass jeder, der ihn benutzt, immer auf derselben Version ist, dasselbe für IE? Wenn Microsoft IE6 weiter aktualisiert hätte, anstatt eine neue Version herauszubringen, würde das nicht viele Probleme lösen? Der Endbenutzer würde nicht einmal wissen, dass er eine andere Version hat, da die neue immer noch denselben Namen hätte, nur mit zusätzlichen Funktionen. Selbst wenn der gesamte Code während eines automatischen Updates ersetzt würde, wüsste der Benutzer nichts davon. Ich meine, worauf ich hinauswill, ist, warum die Aktualisierung ihrer Software den Browsernutzern überlassen wird?
Ein Browser ist nicht wie eine Website, der Benutzer müsste immer noch die neue .exe-Datei herunterladen, und Versionen machen es deutlicher und attraktiver, zu aktualisieren.
Aber wenn es wie System-Updates funktionieren würde, würde alles im Hintergrund passieren. Ein einfacher Warnhinweis mit „Es gibt ein Update für Ihren Browser. Möchten Sie es installieren?“ wäre einfach.
Besser als eine Milliarde Divs für abgerundete Ecken und Schatten zu haben, so dass Sie, wenn die eigentliche Spezifikation fertig ist, nur noch Ihre Stylesheets aktualisieren müssen (und wenn Sie Standards verwenden, haben Sie keine Inline-Styles zu ändern).