Es ist sehr unwahrscheinlich, dass dies jemals passieren wird, und meines Wissens spricht niemand ernsthaft darüber. Ich denke, es könnte jedoch eine interessante Diskussion und Umfrage sein.
Wünschen Sie sich bedingte Kommentare für alle Browser?
IE hat sie bereits, und wir nutzen sie. Was wäre, wenn wir auch so etwas tun könnten?
<!--[if Fx 3.6]>
<link rel="stylesheet" href="firefox-v3.6.css">
<![endif]-->
<!--[if iOS]>
<link rel="stylesheet" href="iphone.css">
<![endif]-->
Einerseits eine völlig unskalierbare Ohrfeige für Webstandards, die uns 10 Jahre zurückwirft.
Andererseits eine direkte Lösung zur Behebung realer Probleme.
Die Umfrage ist in der Seitenleiste. RSS-Reader müssen zum Abstimmen auf die Seite springen.
Ich glaube nicht, dass das eine gute Idee ist...
aber es könnte nett sein, Funktionen zu haben wie: Wenn du dies unterstützt => mache dies und das, wenn nicht, mache dieses.
Meinst du so etwas wie Modernizr? http://www.modernizr.com
Ich glaube, er meinte "ohne JavaScript verwenden zu müssen" :)
...und Modernizr ist Feature-Erkennung, nicht browser-spezifisch.
@Chris Ja, aber es ist doch viel besser, auf Funktionen zu testen als auf Browser, oder?
Das ist Teil der hier geführten Debatte =)
Normalerweise ist Feature-Erkennung besser, aber es gibt Fälle, in denen Browser-Erkennung die einzige Möglichkeit ist. Zum Beispiel unterstützt Webkit Prozentsätze für Dimensionen, aber man möchte sie nicht im Layout verwenden, weil sie gebrochene Pixel falsch runden und eine Lücke von wenigen Pixeln am rechten Rand der Seite verursachen, abhängig von der Spaltenanzahl. Feature-Erkennung würde zwischen Webkits fehlerhafter Version und Mozillas nahezu perfekter Implementierung nicht unterscheiden.
In CSS gibt es jedoch eine Möglichkeit, Browsererkennung über Vendor-Präfixe durchzuführen. Ich habe dies kürzlich getan, als ich einige große Box-Schatten in Webkit deaktiviert habe, da sie Verzögerungen verursachen. Ohne den inset-Box-Schatten sah der Hintergrund zu hell aus, also habe ich hinzugefügt
Hack für Webkit: Filter für Chrome und Safari 21. April 2010
Kategorisiert unter: Browser, CSS (inklusive Hacks) — Estelle Weyl @ 19:39 Uhr
Um nur Webkit anzusprechen, zu dem Google und Safari gehören, umschließen Sie alle CSS-Regeln, die Sie nur für Webkit verwenden möchten, im folgenden @media-Block:
@media screen and (-webkit-min-device-pixel-ratio:0) {
.thing-with-box-shadow {
background: /* dunklere Farbe */;
}
}
Es gibt ähnliche Hacks für Mozilla*, und natürlich bedingte Kommentare/Star-Hack/Underscore-Hack für IE. Für Opera gibt es nichts Gutes (es gibt einen, der im Moment funktioniert, aber er basiert auf etwas, das Opera ohne Vendor-Präfix implementiert hat, das noch in keiner anderen Engine implementiert ist). Ich habe mir diese nicht ausgedacht, ich habe sie hier gefunden und sie für Prototypen verwendet.
*Der Weg, nur Mozilla anzusprechen, ist
@-moz-document url-prefix() {
/* Nur-Mozilla-Styles hier */
}
Jetzt wäre es schön, Media Queries für Browser- und Feature-Erkennung sowohl in CSS als auch in HTML zu haben.
@adrusi
Das ist ein sehr nützlicher Tipp~
@media screen and (-webkit-min-device-pixel-ratio:0) .selector{ }
und
@-moz-document url-prefix() { .selector { } }
Vielen Dank!
Es ist nicht ganz ohne JavaScript, aber Sie könnten sich den CSS Browser Selector ansehen. Er hat den Vorteil, dass er extrem leichtgewichtig ist und keine mehreren CSS-Dateien benötigt.
http://rafael.adm.br/css_browser_selector/
Keine gute Idee. Webentwicklung sollte sich nicht mit Browserinkonsistenzen befassen. Der Fokus sollte auf der Entwicklung neuer, spannender Dienste liegen.
Das stimmt, aber bedingte Kommentare können immer noch sehr nützlich sein.
Wäre es nicht besser, wenn sich alle Browser an die Standards halten würden?
Ich stimme zu. Es kann wirklich nicht so schwer für sie sein, einfach die gleichen Standards bei der Entwicklung der Browser zu verwenden.
Ich persönlich bin immer wieder verblüfft über die "Standards über alles"-Mentalität. Standards sind und werden immer ein nachlaufender Indikator sein. Sie sind eine Destillation von vergangenem Wissen und kein Spiegel aktueller Denkweisen.
Stellen Sie sich das schlimmste Szenario vor, in dem kein Browser irgendeinen Standard unterstützt. Wir müssten für jeden einzelnen Browser von Grund auf neue Webseiten erstellen. Wäre unsere Arbeit vielleicht 20-mal schwieriger? Ganz zu schweigen davon, dass nur wenige die Dinge richtig machen würden.
Wer leidet? Menschen, die Webseiten erstellen, Menschen, die die Leute bezahlen, die Webseiten erstellen, und die Menschen, die diese Webseiten nutzen.
@kevdog, Sie haben absolut Recht. Standards sind ein nachlaufender Indikator. Aber wenn Browser die Standards nicht unterstützen, dann hinken diese der Entwicklung der Branche hinterher. Ich würde es vorziehen, wenn fortschrittliche Verbesserungen von zukunftsorientierten Browsern mit großer Weitsicht umgesetzt würden, aber zuerst müssen wir die Grundlage, die Standards, aufbauen, bevor wir uns dem Bereich der Kreativität zuwenden. Wenn alle Browser anfangen würden, ihre eigenen Regeln zu machen, wie würden wir dafür coden? Ignorieren wir Browser A & B, weil C mehr Funktionen hat, die uns gefallen? Codieren wir für C und hoffen, dass A & B aufholen? Oder finden wir einen Mittelweg und coden für alle Browser, damit alles einheitlich und plattformunabhängig ist? Ich würde mich für letzteres entscheiden, und ist das nicht einfach wieder bei "Standard"-Funktionen angelangt, dem Coden für Funktionen, die "Standard" bei jedem Browser angeboten werden?
Ich stimme zu, dass Browser Standards unterstützen sollten, aber das bedeutet nicht, dass sie keine zusätzlichen Funktionen hinzufügen können, solange sie nicht mit den Standards kollidieren. Progressive Enhancement?
Natürlich wäre es ideal, wenn alle Browser die meisten oder alle Standards auf konsistente Weise unterstützen würden, aber wann wird das jemals passieren?
Gleiche Frage
Ich fände das großartig. Ich habe vor ein paar Wochen wie verrückt mit Chrome gekämpft und hätte dafür getötet. Chrome rendert auf verschiedenen Plattformen unterschiedlich, selbst innerhalb derselben Version. Dann rendert es zwischen den Versionen ebenfalls unterschiedlich! Ich verbringe heutzutage ernsthaft mehr Zeit damit, CSS-Probleme in Chrome zu debuggen als in IE, und das ist verrückt.
Ich halte das für eine der schlimmsten Ideen, die ich seit langem gehört habe. Sie haben darauf hingewiesen, dass IE sie hat und wir sie sicherlich nutzen, aber warum? Weil IE so ein Chaos bei Webstandards und dem Boxmodell verursacht hat, dass wir alles durch Sonderfälle für sie erschweren müssen.
Ich glaube, wenn jeder Browser seine eigenen bedingten Anweisungen hätte, würden wir wieder den IE6-Fehler wiederholen.
Browser sollten daran arbeiten, uns das Leben leichter zu machen. Entwickler sollten nicht zusätzliche Arbeit leisten, damit jeder Browser machen kann, was er will!
Das ist zumindest meine Meinung.
Grüße, liebe CSS-Trickser.
PHP kann das...
Tatsächlich glaubt PHP, dass es das kann, aber es kann es nicht zuverlässig.
Siehe Chris' Artikel, warum Browsererkennung schlecht ist.
Sollte "einerseits" heißen, nicht "einer eine Hand"
Ich denke, es ist ein schwieriges Thema. Ja, es wäre großartig, einfach auf bestimmte Browser abzielen zu können, aber gleichzeitig würde es die Leute fauler machen und der Code könnte noch schwerer zu aktualisieren sein.
Wenn Sie zum Beispiel eine separate Stylesheet für verschiedene Browser haben, müssen Sie bei jeder neuen Funktion jede Datei aktualisieren.
Außerdem können viele Browser-Inkompatibilitäten behoben werden, wenn Sie guten, gültigen Code verwenden. Ich weiß nicht, wie oft etwas in keiner IE-Version funktioniert hat und durch das Hinzufügen eines einfachen "float left" oder "right" behoben wurde.
Ich glaube, es sei denn, Sie codieren ein sehr kompliziertes Layout, Sie benötigen keine bedingten Kommentare.
Ich stimme vollkommen zu, dass die Implementierung von Webstandards in allen Browsern der beste Weg ist, um eine konsistente und zuverlässige Grundlage für unsere Webprojekte zu haben.
Allerdings können Sie nicht leugnen, dass es zu keinem Zeitpunkt in der Zukunft eine Situation geben wird, in der alle Browser alles auf die gleiche Weise rendern.
Obwohl also viele Leute diese Funktionen nutzen würden, um die falschen Dinge zu tun, würde ich sie gerne nutzen, um Browser-Bugs loszuwerden (ja, ich weiß, Sie glauben es nicht, aber selbst Safari, Chrome und FF verhalten sich nicht standardmäßig oder implementieren Standards unterschiedlich).
In dieser Hinsicht bin ich mit "nicht Features töten Webstandards, Menschen tun es" einer Meinung ;)
Diejenigen, die diese Dinge missbrauchen würden, verwenden auch CSS-Hacks und andere "dunkle Seite"-Sachen!
Viele Grüße Sascha
Nur IE ist so schlecht, dass es so etwas braucht. Andere Browser haben Vendor-Erweiterungen für diesen Zweck. Wenn es ein Bug ist, wird er behoben. Das ist rundherum eine schlechte Idee.
Obwohl ich bedingte Kommentare nicht für notwendig halte und es vorziehe, dass Browser Webstandards befolgen, wäre ein besserer Weg, wenn ein Standard implementiert würde, z. B. mithilfe von Media Queries – so etwas wie
Ich vertrete tatsächlich eine andere Haltung dazu: Anstatt es für Kompatibilitätskorrekturen zu verwenden, warum könnten wir es nicht nutzen, um anderen Browsern unterschiedliche Dinge zu geben, zum Beispiel (ich könnte eine Website haben, die verschiedene Browser empfiehlt) (Wenn Firefox, empfehle alles andere außer Firefox).
Warum nicht in einer CSS-Datei belassen, indem man eine browserspezifische Klasse oder ID zum HTML-Tag hinzufügt, anstatt separate Dateien.
z.B.
In Ihrem CSS könnten Sie IE6 mit
.ie6 .div.yourclass {
style: attr;
}
Ich verstehe all den Widerstand und stimme ihm prinzipiell zu.
Es ist mir egal, wie plump die Interpretation der Standards ist, nach meinem Verständnis möchte ich die gleiche Interpretation, damit eine schöne CSS-Liste die Arbeit erledigt.
Aber das haben wir nicht. Bis wir das haben, ist die Möglichkeit, verschiedene Sheets bedingt zu hacken, eines der wenigen Werkzeuge, die wir haben, um das Design gegen die Dummheit der Browser-Designer zu kontrollieren. Ja, es ist hässlich. Ja, es ist nicht vollständig zukunftssicher. Ja, mir fallen viele bessere Wege ein (browser-detective Bedingtheiten in der Stylesheet selbst, damit Sie nur ein Sheet haben und die relevanten Teile laden und nur ein Sheet aktualisieren können), aber dies ist eine funktionierende Lösung.
Meiner bescheidenen Meinung nach bin ich der Ansicht, dass es keine bedingten Tags geben sollte, weil ich glaube, dass es eine Zeit geben wird, in der wir denselben Code für verschiedene Plattformen verwenden werden und der Seitenstil sich an verschiedene Medien anpasst. Wäre es nicht schön, wenn Sie Ihren Code so gestalten könnten, dass er sich an ein altes Mobiltelefon, einen Desktop oder ein gedrucktes Buch anpasst? Bedingte Tags sind spezifisch für Browser-Marken anstelle von Medien, daher denke ich, dass die Anstrengungen darauf abzielen sollten, die Notwendigkeit ihrer Verwendung zu eliminieren.
Wahrscheinlich keine gute Idee... sich mit Inkonsistenzen auseinanderzusetzen macht so viel Spaß ;).
Außerdem stelle ich fest, dass ich bedingte Kommentare selten oder nie für etwas anderes als IE6 verwendet habe – und dieser Typ fällt mir heutzutage kaum noch auf. Ich stelle fest, dass ich immer mehr nur noch einen schnellen Fix für IE7 hier und da verwende, denn manchmal ist einem 5 oder 6% der Besucher, die etwas bekommen, das gut genug aussieht und gut genug funktioniert, nicht so wichtig. Was die IE8-Klasse auf meinem HTML-Tag betrifft, sie wurde schon lange nicht mehr verwendet.
Firefox 3.6, IE8 sind absolut ausreichend – selbst IE7 ist bei den meisten Dingen ausreichend. Geben Sie mir PNG-Transparenz, Pseudo-Elemente, Attributselektoren und die Welt gehört mir: IE7 kann das (mehr oder weniger – nun ja, *ausreichend*).
„IE hat sie bereits, und wir nutzen sie sicherlich“, sagen Sie. Ich denke, Sie sind ein Sophist... Mit Firefox / Webkit machen wir Dinge, von denen wir vor 2 oder 3 Jahren noch nicht einmal dachten, dass sie möglich wären. Wir "brauchen" diese Funktionen nicht wirklich. Wir können nicht widerstehen, so viele wie möglich davon zu verwenden – ich bin der Erste, der es tut: keine Beleidigung beabsichtigt. Bedingte Kommentare helfen, unsere Arbeit viel unterhaltsamer zu gestalten, indem sie uns erlauben, großartig zu sein, ohne sich zu viele Gedanken über diejenigen zu machen, die es nicht verstehen. Zu stark darauf zu vertrauen ist unprofessionell.
Wenn Firefox 2 oder Safari 1 noch existieren würden, hätten wir wahrscheinlich etwas Nutzen für browser- bzw. versionsspezifische bedingte Kommentare – vorausgesetzt, wir wollten von fast jedem auf der Welt verehrt werden. Glücklicherweise existieren diese Browser nicht mehr. Firefox 3.6 existiert jedoch noch, aber vor nur zwei Stunden war er das nächstbeste auf der Welt. Jetzt, da Firefox 4 fast da ist, wollen wir ihn bereits gezielt ansprechen? Ernsthaft?
Für die High-End-Paraphernalia, selbst angesichts realer, wirklicher Probleme, ist nicht der Browser-präfixierte, Modernizr/Yepnopified progressiv verbesserte Ansatz der richtige Weg?
Nun, was das iOS-bedingte Kommentar angeht: Es könnte zwar nützlich sein, aber Media Queries sind auch ziemlich nützlich. Genauso wie Modernizr/Yepnope. Die Verwendung dieser Dinge fühlt sich nicht wie eine Last an, sondern eher wie eine Gelegenheit, etwas Großartiges aufzubauen.
Und wenn wir uns über JavaScript beschweren: Kommt schon, wer deaktiviert heute noch JavaScript, besonders auf seinem iPhone (ist das überhaupt möglich?)?! Wir sprechen wahrscheinlich über ein Hundertstel Prozent Ihrer Besucher: zum Teufel mit denen, diese Leute wissen, was sie tun. Wenn Sie wirklich iOS ansprechen wollen... nun, ich weiß, ich bin lahm, aber: dafür könnte es eine App geben.
Ich glaube nicht, dass das eine gute Idee ist. Nutzt die Standards und werdet nicht faul! Ich sehe viele Leute, die bedingte Stile verwenden, um schlechten Markup zu korrigieren, anstatt das eigentliche Problem zu suchen.
Wir brauchen sie meiner Meinung nach, nicht nur, weil wir Dinge "reparieren" können, die der Browser kaputt gemacht hat.
Es ist auch ein besserer Weg, die spezifischen Browser/Benutzer anzusprechen.
Wenn ich einen Blog über Browser-Updates hätte, möchte ich vielleicht einen Firefox 3-Benutzer ansprechen und ihn informieren, dass eine neuere Version verfügbar ist.
Der IE-Benutzer hat vielleicht schon Version 9 und möchte Firefox nicht wechseln. Anstatt den IE-Benutzer zu nerven, spreche ich einfach die Zielgruppe an, die ich möchte.
Offensichtlich wäre das großartig und nützlich. Wenn jemand es nicht mag, muss er es nicht benutzen. Es liegt alles am Entwickler und daran, was er erreichen möchte.
Es ist immer eine gute Idee, wenn es viele Optionen zur Auswahl gibt, oder?
Und jetzt bin ich neugierig, ist es möglich, die gleiche Technik zu verwenden, um zum Beispiel Webkit unter MacOS/iOS zu erkennen?
Ich denke, die Browser müssen das Update ohne Benutzereingriff durchführen, das zwingt jeden, den neuesten Browser zu verwenden.
Außerdem müssen wir einige Browser boykottieren, weil jedes Jahr ein neuer Browser geboren wird.
Entschuldige mein Englisch, hehehe.
Vielen Dank
Wo ich arbeite, haben wir leicht zugängliche IE-Bedingungen über CSS (#ie #content) und ich sehe Entwickler, die sie ständig missbrauchen, anstatt herauszufinden, was ihr Problem ist. Sie schmeißen einfach eine Bedingung drauf und fertig. Das könnte uns tatsächlich zu fauleren Codern machen. Aber dann gibt es wieder diese bestimmten Situationen, denen man nicht ausweichen kann, und für diese wäre es gut.
Ich befürchte, dass die Verwendung von Vendor-Präfixen in CSS ein großes Potenzial hat, außer Kontrolle zu geraten, wenn wir uns in neuere Browser bewegen. Ich denke, das Hinzufügen von so etwas könnte das noch verschärfen.
Obwohl es für die Codierung von Dingen wie mobilen Geräten furchtbar nützlich sein könnte.
Ich schätze, ich bin unentschlossen.
Ich benutze die bedingten Anweisungen hauptsächlich zum Laden von IE-Stylesheets (und dem Shiv), aber das liegt typischerweise daran, dass IE bei Layouts eine Katastrophe ist.
Mit der beliebten Verwendung von Vendor-Präfixen denke ich jedoch, dass dies eine gute Ergänzung wäre, um Ihr Haupt-Stylesheet sauber von Hacks zu halten. Ihre Haupt-CSS-Datei könnte alle normalen CSS-Syntaxen enthalten, wie "border-radius: 8px", während Ihre fx.css "-moz-border-radius: 8px" enthalten würde.
Dann, wenn Mozilla die echten CSS3-Eigenschaften unterstützt, könnten Sie einfach die bedingte Anweisung entfernen und die Datei löschen, anstatt nach allen Vendor-Präfixen in Ihrer Haupt-CSS-Datei zu suchen. Dies wäre gut für die Wartbarkeit, würde verhindern, dass verschiedene Browser CSS-Regeln laden, die für sie nicht gelten (Chrome sieht immer noch die -moz-Regeln) und würde die Validierung Ihres CSS erleichtern.
Auf den ersten Blick mag dies einigen als gute Idee erscheinen, doch ein großes Problem, das ich sehe, ist, dass Sie mehrere Stylesheets hätten, eines für jeden Browser?, was eine schreckliche Idee zu sein scheint, wenn man an deren Wartung denkt.
Ich erhalte eine wirklich gute plattformübergreifende Unterstützung mit nur 2 Stylesheets, einer Haupt-Stylesheet-Datei und einer IE-Stylesheet-Datei in bedingten Kommentaren.
Meine Hauptdatei funktioniert für alle modernen Browser und ich verwende meine IE-bedingte Datei, um alle IE-Browser anzusprechen, und verwende dann spezifische IE 6, IE 7, IE 8 CSS-Hacks in dieser Datei, um jede Version von IE anzusprechen, falls erforderlich.
mmh, die Idee gefällt mir definitiv nicht.
Viel besser, wenn Browser den Standards folgen.
Das ist eine schlechte Idee; hauptsächlich, weil es ein Hack auf einem Hack ist. Die bedingte "Kommentar"-Einbindung von Microsoft erlaubt Webentwicklern ehrlich gesagt, die absolut eklatanten Inkompatibilitäten mit Microsoft-Browsern zu beheben, und ich benutze ihre, weil ich keine Wahl habe, aber jeder Designer/Entwickler, der sein Salz wert ist, sollte in der Lage sein, ein Design zu entwickeln, das auf den "guten" Browsern ohne Probleme funktioniert.
Ich habe Safari, Firefox, Chrome oder sogar Opera noch nie unter meinem Atem verflucht; andererseits habe ich mir mehrfach gewünscht, dass die IE6- und IE7-Teams explosive Durchfallerlebnisse hätten.
Das Hinzufügen dieser Art von "bedingten" Stylesheets verursacht mehr Probleme, als es löst. Wenn ich sage: "Wenn FF3.6.4", was passiert, wenn Firefox 4 herauskommt?
Ich finde es schon störend genug, sich um unser altes, bescheidenes IE zu kümmern, das die Standards nicht einhält; dies für alle anderen Browser zu haben, würde das Problem nur in die Höhe treiben.
Die meisten Browser haben große Entwicklungsteams, ich kann nicht verstehen, warum sie Standards verderben müssen, um alle zu beeindrucken. Ich meine, sie können Ihr großartiges Feature machen, ja, aber das bedeutet nicht, dass sie das Leben aller anderen wegen dieses Features komplizieren müssen.
Softwareentwicklung ist nicht SO schwer zu machen; vielleicht bei sicherheitsrelevantem Code, aber nicht beim *Befolgen von Standards* im Prozess.
Alle Browser sollten eine Art Funktion haben, die sie nicht ausführen lässt, wenn sie nicht die neueste verfügbare Online-Version sind! So würden wir aufhören, uns darum zu kümmern, welche IE-, welche FF- oder Chrome-Leute laufen.
Ich liebe all die idealistischen Kommentare wie: "Das müssen wir nicht tun!", "Folge einfach den Webstandards und alles wird gut!", "Warum machen die Browser-Entwickler nicht einfach dafür, dass alle gleich funktionieren!?"
Wach auf und erkenne bitte, dass das nicht der Fall ist. Das ist die reale Welt, und sie erfordert reale Lösungen.
Niemand sagt, dass man ganze Stylesheets für verschiedene Browser erstellen soll – das wäre für Kleinigkeiten wie
"Oh, dieses Menü ist in FF3.6 ein wenig nach links verschoben, lass uns das beheben."
Wir brauchen eine weitere Option in der Umfrage, die da lautet: "Wenn die Kunden bereit sind, dafür zu bezahlen".
Standards machen die Entwicklung von Websites erschwinglicher.
(das ist die schlechteste Formular-Usability-Erfahrung, die ich je hatte – ist es so schwer, zu validieren, ohne mich von der Seite zu werfen und all meine Formularwerte zu verlieren??)
Also, bedingte Tags für alle Browser, so verlockend sie auch sein mögen, sind der falsche Weg. Ich denke, dies würde nur Faulheit bei Webentwicklern und Browserentwicklern fördern und wäre ein Schlag ins Gesicht für Webstandards.
Die Umfrage hatte zu wenige Auswahlmöglichkeiten, daher habe ich nicht abgestimmt.
Ich würde aber Ja stimmen, aber nicht für alle Browser. Nur für bedingte Tags, wenn IE und wenn mobil, denn sonst enden wir damit, dass wir für jeden einzelnen Browser eine andere Stylesheet erstellen, und das wird eine riesige Plackerei sein!
Ich denke, es kann browserbezogene Probleme beheben, ohne die Serveranfragen zu überlasten, so wie wir es bei IE-Versionen vor 9 tun, wäre es großartig, dies auch mit anderen Browsern zu tun.
Da die Anwendungsentwicklung immer komplexer wird, glaube ich, dass der Schwerpunkt auf Usability und nutzerzentriertem Design liegen sollte, zusammen mit gutem Code, Formularen, Handlungsaufforderungen usw.
Es gibt so viel zu jonglieren im Bereich Webdesign/-entwicklung, dass die Behebung von fehlerhaften Funktionen in verschiedenen Browsern die Frustration auf allen Seiten nur erhöht. IE ist ein Sonderfall, und solange MS keinen Browser herausbringt, der tatsächlich gut mit anderen zusammenarbeitet, glaube ich, dass alle anderen Browser standardisiert oder so nah wie möglich daran werden müssen. Sicher, es wird hier und da kleine Unterschiede geben, aber der Druck sollte auf einem einheitlichen Standard liegen, der meiner Meinung nach die Benutzerfreundlichkeit und Effektivität von Anwendungen erhöht. Und natürlich würde es meine Arbeit angenehmer machen. ;)
Ich halte das für eine schlechte Idee. Wenn die Leute, die die Browser herstellen, die Dinge einfach richtig machen und mit den heutigen Standards Schritt halten würden, bräuchten wir keine bedingten Kommentare!
Das ist eine schlechte Idee für alle Browser. Aber es wäre großartig für iOS und Android. Du sagst, du läufst auf iOS oder Android? Nun, hier, nimm meine iOS/Android-CSS. (Also nicht browser-spezifisch, sondern plattformspezifisch)
Ein weiser Entwickler sagte mir einmal, wenn du gut bist und weißt, was du tust – dann musst du niemals bedingte Anweisungen für etwas anderes als IE6 verwenden, und selbst das kann fragwürdig sein.
Nun, es hat heute keinen Sinn, das zu tun. Erstens, weil natürlich die Webstandards für etwas da sind. Zweitens, weil du leicht ein JavaScript schreiben kannst, um das für dich zu tun und es trotzdem ziemlich schnell geht.
Eigentlich immer noch keine schlechte Idee, und es gibt einige JavaScript-Implementierungen genau desselben Dings wie yepnope.js oder Modernizr, sogar mit mehr Granularität (erkennt, ob der Browser Dropshadow, Geolocation etc. hat).
Nun, es hat heute keinen Sinn, das zu tun. Erstens, weil natürlich die Webstandards für etwas da sind. Zweitens, weil du leicht ein JavaScript schreiben kannst, um das für dich zu tun und es trotzdem ziemlich schnell geht.
Tatsächlich immer noch keine schlechte Idee, und es gibt einige JavaScript-Implementierungen genau desselben Dings wie yepnope.js oder Modernizr, sogar mit mehr Granularität (erkennt, ob der Browser Dropshadow, Geolocation etc. hat)... und selbst Handys haben heutzutage JavaScript.
Ich würde eher eine Browser-CSS-Medienabfrage sehen, wie z.B. <link rel="stylesheet" href="gecko.css" media="only screen and (browser:gecko)">, was die Dinge viel weniger hacky erscheinen lässt als bedingte Kommentare, aber es uns auch erlaubt, diese bedingten Stilregeln in eine bereits heruntergeladene Stylesheet einzubetten, wenn wir wollen (ähnlich wie man es derzeit für druckspezifische Stilregeln mit den CSS @media-Regeln tun kann).
Meine 0,02 $.
Ich entscheide mich für Standards: Workarounds wie Browser-Targeting sollten idealerweise nur für die Kompatibilität mit früheren Versionen benötigt werden, unabhängig vom Anbieter.
Es ist nicht nötig, bedingte Tags für andere Browser zu verwenden. Wenn ich entwickle, lasse ich es in Firefox funktionieren. Für alle seltsamen Dinge in IE verwende ich bedingte Kommentare, für Safari / Chrome funktioniert es einfach..
Perfekte Welt: bedingte Kommentare sind der Teufel!
In der realen Welt: Ich bin für condcomms in allen Browsern. Ich bin immer irgendwie überrascht, dass sie das nicht schon haben. Sie haben alle alberne kleine browser-spezifische CSS-Eigenheiten, oder ist das eine andere Diskussion?
Außerdem bedeuten mehr bedingte Kommentare mehr Arbeit für Entwickler und das esoterische Wissen, das sie ansammeln. Whoo-hoo!
Ich würde mir wünschen, eine CSS für alle Browser zu haben. Bedingte Kommentare zum Hinzufügen browserspezifischer CSS-Dateien sind für Webentwickler ein Kopfschmerz.
Ich würde Ja sagen, um spezifische Hauptbrowserversionen anzusprechen, nicht 3.6. Ich habe diese Woche viel Zeit damit verbracht, jQuery-Tabs zu basteln, um sie in IE7, 8 und 9 richtig zum Laufen zu bringen.
Andererseits mochte ich ursprünglich die Tatsache, dass Chrome automatisch aktualisiert, anstatt seine Benutzer zum Herunterladen eines Updates zu zwingen, wie es Internet Explorer tut. Ich bemerke jedoch, dass einige dieser Updates Webanwendungen zum Absturz bringen und wenn ich nicht eine extrem Beta-Version des Browsers zum Testen verwenden möchte, habe ich nicht genug Zeit, diese Fehler zu erkennen, bevor es die Benutzer tun.
Ich sage, behalte es serverseitig. Ich hätte abgestimmt, aber keine Sidebar-Inhalte auf der mobilen Version dieser Seite?
Wenn wir das hätten, würde jeder Browser tun, was er will, anstatt was er sollte, und das würde bedeuten, unsere Arbeit so oft zu vervielfachen, wie es Browser-Marken und -Versionen gibt.
Das Publikum muss wissen, dass es seine Browser aktualisieren muss, die Browser-Hersteller müssen sich so gut wie möglich an die Standards halten (und streben danach, mit jeder neuen Version besser und besser zu werden) und es liegt an uns, die Grenzen auszutesten und die Dinge zu testen und wütend zu schreien, wenn Dinge nicht so funktionieren, wie sie sollten (oder die produktivere Route, Wege zu entwickeln, um ihre Fehler zu umgehen).
Ich würde es lieber sehen, wenn alle Browser nur Standard-konform wären...
Ich habe in der Umfrage „Nein“ gestimmt, aber wenn Sie wirklich ähnliche Funktionalität benötigen, ist CSS Browser Selector eine interessante Option.
Ich glaube nicht, dass es eine gute Idee ist, aber nicht nur aus den bereits genannten Gründen. Was ich am meisten befürchte, ist der „schlechte“ Designer, der es auf die „einfache“ Weise macht, mit Dingen wie
- Browser X: Website anzeigen
- Andere Browser: Seite anzeigen, auf der steht: „Lade Browser X herunter, wenn du diese Website sehen möchtest“
...was eine scheinbar gute Idee in einen Albtraum der Zugänglichkeit verwandeln würde. Erinnern Sie sich an all die „optimierten für…“-Websites aus der Zeit des „Browserkriegs“…
Andererseits könnten wir alle mehr Konsistenz bei den „berechneten Stilen“ (dh Browser-Standardeinstellungen) gebrauchen. Das würde CSS-Resets obsolet machen und CSS-Styling viel weniger frustrierend. Ich denke, das sollte die Grundlage der Webstandards sein…
Und natürlich wäre auch mehr Konsistenz in der Art und Weise, wie diese Standards gehandhabt werden, gut. Ich träume von einem Tag, an dem Browser für das stehen, was sie in Bezug auf Funktionen bieten, und nicht für die Tatsache, wie viel Mühe sie machen, damit zu arbeiten…
Wir sind uns alle einig, dass Browser-Sniffing schlecht und nicht geradlinig ist, es macht Websites schwieriger zu warten. Feature-Tests à la Modernizr sind das, was wir brauchen.
Was CSS angeht, denke ich, dass bedingte Kommentare nützlich sein könnten, um spezifische Browser anzusprechen. Ich wünschte, wir könnten das mit @media-Abfragen tun ( -moz-VERSION, -webkit-VERSION, -o-VERSION, -ms-VERSION usw.)
Derzeit, wenn ich wirklich einen Browser erkennen muss, verwende ich einfach https://github.com/garetjax/phpbrowscap
Ich benutze diese Tags nicht. Sie nerven mich wirklich und lassen den Code meiner Meinung nach unordentlich aussehen. Ich habe sie selbst noch nie wirklich benutzen müssen. Meistens, wenn man sauber und korrekt codiert, „richten sich die Dinge“ über die Browser hinweg aus.
Wenn die Dinge nicht wie geplant laufen, ziehe ich es vor, CSS-Hacks zu verwenden, anstatt diese bedingten Tags zum Einbinden einer komplett neuen Tabellenkalkulation.
Obwohl ich einen Bedarf sehe, wenn Sie eine komplett separate Stylesheet für eine mobile Website haben möchten (z.B. iPhones)
Die traurige Wahrheit ist: Solange es nur eine Browser-Rendering-Engine gibt, sind browserspezifische Hacks eine Notwendigkeit. Ob man es mag oder nicht, wenn man Webseiten gestalten will, muss man sie verwenden.
Man kann nicht alle Browser zwingen, Standard-konform zu werden (IE ist ein gutes Beispiel dafür) und man kann die Leute nicht zwingen, einen bestimmten Browser zu verwenden.
In einer Fantasiewelt, in der alles perfekt funktionieren würde. Wir müssten uns darum keine Sorgen machen. Leider müssen wir für die reale Welt codieren. Wo nichts perfekt funktioniert und die Verwendung browserspezifischer Hacks die einzige Option ist.
Anstatt darüber zu diskutieren, ob wir sie verwenden sollten oder nicht. Wir sollten uns bessere Wege überlegen, sie zu verwenden.
Es ist gefährlich für Sie, das zur Sprache zu bringen.
Es gab Fälle, in denen ich mir gewünscht hätte, es gäbe bedingte Tags für eine bestimmte Version von Safari oder Firefox, aber ich finde immer irgendeinen Workaround. Es würde offensichtlich das Testen von Browsern etwas reibungsloser gestalten, aber es könnte dazu führen, dass Leute Probleme übersehen, die eigentlich in ihrem Code behoben werden sollten.
Ich bin absolut, total, zu 100 % dagegen. Ich sehe keinen Grund, einen Schritt zurückzumachen, wenn jQuery/JavaScript es so einfach gemacht hat, das zu ermitteln und noch einfacher.
Ich würde das theoretisch begrüßen, aber dann denke ich, dass die Dinge außer Kontrolle geraten würden. Wenn es bedingte Anweisungen für alle Browser gäbe, müsste sich keiner von ihnen um die Standardkonformität kümmern, da man sie direkt ansprechen könnte. Sie würden alle einfach ihr eigenes Ding machen. Dies würde schließlich dazu führen, dass Browser Dinge so unterschiedlich machen, dass die Arbeit, die wir leisten müssen, um eine Website über Browser hinweg gleich darzustellen, lächerlich wäre. Kurzfristig wäre das großartig, aber langfristig denke ich, wäre es kontraproduktiv. Bleibt bei den Standards, das ist meine Meinung.
Es wäre gut, bedingte Kommentare zu haben, aber es wäre besser, wenn alle Browser auf standardisierte Weise gleich funktionieren würden.
Selbst im IE-Fall müssen wir bedingte Anweisungen aufgrund mangelnder Kompatibilität von IE verwenden. Was wäre, wenn es genauso funktionieren könnte wie bei anderen.
Es wäre super nützlich für Dinge wie iOS-Style-Sheets und einfache Browsererkennung, aber nicht essenziell. Der Hauptgrund, warum IE das Vergnügen von bedingten Kommentaren hat, ist, dass er sich nicht gut mit Standards verträgt.
Nun, ich mag die Art und Weise, wie bedingte Kommentare in HTML5 Boilerplate von Paul Irish und Co. verwendet werden. Aber ich denke, es ist notwendig, auf Features wie Modernizr zu testen und nicht auf eine spezielle Browserversion.
Entschuldigen Sie, darf ich das Code-Plugin auf diesem Blog erfahren?
Ist diese Seite zu 100% in CSS gemacht? :)
Ja, ich will sie.
Nein, ich will nicht, dass die Leute davon erfahren.
Ich möchte, dass sie implementiert werden, und niemand benutzt sie (weil sie nicht wissen, dass sie existieren), bis sie ein wirklich hässliches Problem lösen können.
Dann würden wenige ausgewählte Leute, wie Chris Coyier, diese Information von Browserherstellern erhalten und sie nur im Notfall veröffentlichen.
Klingt für mich nach einer großartigen Idee :)
Ich füge lieber Body- oder HTML-Klassen für den Browser hinzu und stilisiere dann damit.
[WENN DIE WELT PERFEKT IST]
Meine Stimme = Nein
[WENN BROWSER ALLE SCHEIßEN WIE IE]
Meine Stimme = Ja
Meine Bedingungen. In diesem Fall bin ich ein ziemlich solides Vielleicht.
Klar, warum nicht? Im schlimmsten Fall nutzt es niemand. Daumen hoch für kostenlose Lösungsoptionen!
(Entschuldigung für den 2x Post)
@adruzi vielleicht werden diese zusätzlichen nicht-standardmäßigen Features immer nützlicher und benötigter, was uns wieder zu Schritt 1 bringt.
Ich mag bedingte Kommentare wirklich stark – ich möchte diesen Mist nicht in meinem Markup haben.
Wenn überhaupt, dann würde ich es bevorzugen, wenn jeder Browser seinen Namen/Versionsnummer/Betriebssystem als Wert eines agent=”” Attributs im html-Element hinzufügt.
Nun, ich würde es sicherlich besser finden als die Verwendung von JS, besonders das für iOS.
Ich würde es lieber CSS-Hacks in der CSS lassen
http://alastairc.ac/2006/05/conditional-comments-in-css/
Das ist jedoch genauso unwahrscheinlich!
Das scheint nachträglich alptraumhaft zu werden. Wenn wir alles mit einem bedingten Kommentar ansprechen könnten, würden wir faul werden, die Ursachen unserer Kompatibilitätsprobleme zu verstehen und legitime Lösungen zu finden.
Wenn ich eine solche Funktion jemals nutzen würde, würde ich sie nur zur Unterscheidung zwischen Desktop- und Mobilgeräten usw. verwenden.
Der Grund dafür ist, dass Medienabfragen zwar nett sind, aber im Allgemeinen werden immer noch alle Ressourcen heruntergeladen, auch wenn sie auf einem Mobilgerät nicht verwendet werden, wo die Gesamtbandbreite kostbar ist und zusätzliche HTTP-Anfragen teuer sind.
Wenn ich also zuverlässig separate mobile.css und standard.css Dateien mit bedingten Kommentaren verwenden könnte, würde ich das akzeptabel finden.
Obwohl ich gelegentlich IE-spezifische bedingte Kommentare für einen HTML5-Shiv verwende, je nach Bedarf des Projekts.