Der Tag an dem ich lernte, Conditional Comments zu lieben

Es gibt ja viele Möglichkeiten, eine Seite pixelgenau zu designen, so dass Sie in allen Browsern läuft gleich aussieht.

  1. Man baut die Seite aus Imageready-gesliceten Bildern in einem Tabellenlayout zusammen
  2. Man baut die Seite aus Imageready-gesliceten Bildern in einem DIV-Layout zusammen
  3. Man baut die Seite mit einem Tabellenlayout zusammen
  4. Man benutzt ordentliches (x)HTML mit CSS-Hacks
  5. Man benutzt ordentliches (x)HTML und Conditional Comments mit validem CSS
  6. Man benutzt ordentliches (x)HTML und valides CSS

Das Problem des gleichen Layouts betrifft im übrigen fast ausschließlich die Webbrowser aus Redmond. Eine valide Seite sieht in 95% aller Fälle in Firefox, Opera und Safari identisch aus. Lediglich der IE mit seinem verkorksten Boxmodel haut da quer. Der IE 8 im übrigen nur noch ganz selten.

Was nehm’ ich denn da?

Dass wir die Punkte 1-3 vergessen können, sollte sich von selbst erklären. Tabellenlayouts sind rückständig und codeüberladen, außerdem semantisch unsinnig und barrierelastig.

Bleiben die Punkte 4-6 übrig. Wie man sieht, sind die Möglichkeiten ihrer Unsinnigkeit absteigend geordnet und dementsprechend werden wir diese drei Möglichkeiten jetzt mal durchgehen.

(x)HTML mit CSS-Hacks

CSS-Hacks sind kleine “Tricks”, die Interpretationsfehler bei Browsern ausnutzen um bestimmte CSS-Anweisungen nur für bestimmte Browser zugänglich zu machen. Diese Technik ist relativ zielgenau, auch weil es dafür entsprechende Zielhilfen gibt. Problem an der Geschichte ist, dass es leicht möglich ist, das CSS damit invalide zu machen, was zukünftig nicht vorhersehbare Bugs im Rendering noch nicht erschienener Browser erzeugen kann.

(x)HTML und Conditional Comments mit validem CSS

Die sauberste Möglichkeit, einem Rendering, dass von einzelnen Versionen des IE (und es ist in 95% aller Fälle mindestens einer der IEs der querschießt) zerschossen wird, zusätzliche CSS-Regeln beizubringen, sind CSS Conditional Comments. Hier werden zusätzliche CSS-Anweisungen für den Internet Explorer eingebunden. Dabei kann man sowohl ein paar zusätzliche Regeln mittels eines <style>-Tags einbringen oder einfach direkt ein zusätzliches Stylesheet einbinden.

Nachteil ist natürlich, dass diese Methode nur auf Internet-Explorer-Versionen unter Windows anwendbar sind. Meine bisherige Erfahrung hat aber gezeigt, dass Hacks/Workarounds im großen und ganzen nur für den IE nötig sind. Meistens auch unterschiedliche Lösungen für unterschiedliche Versionen.

Vorteil bei dieser Technick ist das Aufrechterhalten sämtlicher Validität in HTML und CSS, auch wenn man in den IE-Stylesheets unter Umständen Hacks einsetzt. Durch die Einbindung der Conditional Comments in Form eines speziell syntaktischen HTML-Kommentars werden andere Browser diese einfach ignorieriern und nicht ins DOM aufnehmen, wie es der IE tut, sofern er mit der Zielversion des Kommentars übereinstimmt.

Die restlichen 5% von Problemen, die sich damit nicht lösen lassen erfordern meist etwas Nachdenken über die CSS-Struktur und wie man Dinge anders beschreiben könnte. Allerdings muss man auch hier eventuell die IE-Styles dann nachpflegen, besonders wenn man am HTML etwas ändert.

(x)HTML mit validem CSS

Die “reinste” Möglichkeit von allen. Erstrebenswert, aber eine Herausforderung, die sich gewaschen hat. Pixelgenaues Arbeiten ohne irgendwelche Kniffe ist kaum möglich. Für einfache Designs geht das bestimmt noch so halbwegs, aber dieses Blogdesign käme schon nicht ohne Extraregeln für den IE 6 aus, wenn ich ihn unterstützen wollte – was ich nicht will.

Vorteil ist bei dieser Methode eine sehr hohe Zukunftssicherheit, während man sich hier nicht allzusehr auf pixelgenaues Arbeiten versteifen sollte. Irgendein IE macht immer einen Strich durch die Rechnung.

Zusammenfassung

Wenn möglich, ohne Hacks, ohne Conditional Comments und Co. Wenn aber unbedingt hier im IE und da was im IE gemacht werden muss (wofür es natürlich mehrere Gründe geben kann, meistens ist es ein Kundenwunsch), dann am besten mit Conditional Comments.

Links

 

Ein bisschen Hoffnung bleibt

Wenn ich mir die Browserkompatibilitätsliste der Selektoren ansehe, die CSS 4 You hier pflegt so ansehe, bleibt ein bisschen Hoffnung, dass das Web langsam aber sicher besser wird. Gerade die attributabhängigen Selektoren sind ein deutlich unterschätztes Feature von CSS. Dazu werde ich hier demnächst auch ein bisschen am Theme schrauben.

Update: Ich habe bereits geschraubt. Kleine Änderung nur, aber aber auch eine die nicht so wichtig ist. Ich wundere mich nur gerade, dass es keinen “Attribut xyz beginnt/enthält nicht mit abc”-Selektor gibt. Mist. Dann muss ich das doch mit jQuery lösen… So, gelöst. Sieht im IE7 zwar bei umbrechenden Links bescheiden aus, weil das Symbol fehlt, der IE6 zeigt vermutlich überall ein Externer-Link-Icon an, der IE 8 macht es richtig, auch der Test mit FF3, Opera 9.64 und Epiphany mit der Webkit-Engine ergibt: Alle zeigen es richtig an.

 

Warum die CSS-Evangelisten doch gar nicht so falsch liegen

Neulich bei Technikwürze: Die 13 Punkte des Mike Davis und warum Tabellenlayout angeblich und womöglich doch gar nicht so schlecht ist. Im Podcast gab es eine Diskussion um die Denkanregung, doch mal über den blinden “CSS-Evangelismus” nachzudenken. Der Originalartikel findet sich ebi isolani: “The shallowness of CSS evangelism“.

Gerade im Bereich Traffic wird auch in TW diskutiert, sei es ja möglich, ebensogroße Datenmengen zu laden, wie bei Tabellenlayouts, gerade bei aufwendigen Stylings und unter der Prämisse, dass bei einem sauberen Stil das CSS getrennt geladen wird und somit einen weiteren HTTP-Request benötigt (inklusive Overhead).

Das mag beim ersten Besuch der Seite durchaus stimmen, aber dafür ist es dann ja egal, ob man nun CSS oder Tabellen hat. Beim zweiten Klick muss das CSS-Layout aber nicht alles nochmal laden. Nur das HTML-Gerüst wird ausgetauscht, der Rest (CSS) bleibt gleich. Eine Seite mit vielen PIs hat damit also im “Long Tail” deutliche Vorteile.

Weiter stellt man die SEO-Vorteile auf den Prüfstand. Ich bin der Meinung, ein ordentlich gemarkuptes Layout mit entsprechender Dokumentstruktur wird immer einen Vorteil gegenüber den Table-Layouts haben, denn

  • die Content/Code-Quote ist höher, es gibt im HTML keinen so großen Overhead, damit ist die Keyworddichte pro Zeichen deutlich höher
  • das CSS juckt eine Suchmaschine nicht. HTML wird indexiert. Weiteres im Punkt obendrüber
  • Suchmaschinen machen oft einen nicht unerheblichen Teil des Traffics aus. Weniger HTML = Weniger Traffic

Ein wichtiger Punkt ist allerdings die Zukunftssicherheit und die Wartbarkeit der Seite(n). Ich habe allein mit CSS schon einige Sachen umgestyled, die man mit einem Tabellenlayout nicht hätte machen können – jedenfalls nicht so schnell und pragmatisch.

Und was ich tagtäglich erlebe sind HTML-Tabellen in generierten Seiten. Hier mal eine Ausgabe, da mal eine Ausgabe und das alles in verschachtelten Tabellen. Das Gerüst wird verdammt schnell verdammt unübersichtlich, auch mit Tools wie Firebug und der IE-Developer-Toolbar. Klar kann man sowas auch mit einem DIV/CSS-Layout produzieren, aber bei weitem nicht so schnell.

[poll id="5"]

 

CSS ist purer Sex

Z-Index(cc) Foto von Exey Panteleev bei Flickr

CSS Eigenschaften, die man Bildern erklärt, gibt es viele. Aber wie sexy CSS wirklich sein kann, zeigt Exey Panteleev bei Flickr. (via Jeriko)

 

Webtechnologie auf dem Desktop – Die Zukunft mit Gnome3

Noch ist GNOME 3 ja weit weg, doch erste “Schlagzeilen” macht das Projekt schon: bei roitberg.net habe ich einen Screenshot von einem Gnome-Theme auf Basis der GTK-CSS-Engine gesehen gefunden. Den Blogeintrag und den Screenshot gibt’s beim GNOME Theming-Blog.

Zusammen mit der Tatsache, das GNOME auch heute schon der erste (und soweit ich weiss, bislang auch der einzige) Desktop ist, der Icons im SVG-Format benutzen kann. Das wird noch ganz groß.

 

Webdesign mit Linux

Wer unter Linux Photos bearbeiten will, findet bei Rolf Steinorts “Meet The GIMP” sicher den einen oder anderen Tipp für GIMP, wer Illustrieren will, findet bei HeathenX Tipps zu Inkscape. Und was macht der Webdesigner?

Der Webdesigner guckt sich beides an. Und arbeitet mit einem Texteditor. Für kleine Sachen mit gEdit oder Bluefish, für dynamische Sachen mit Eclipse PDT. Jedenfalls mache ich das so. Notepad++ mittels WINE stellt für mich eine unschöne (das Auge programmiert ja mit) und unsaubere (weil nicht native) Lösung dar. Unter Windows allerdings ist das der beste Editor, den es gibt.

Beim Styling achte ich auf größtmögliche Browser-Kompatibilität und versuche, ohne Hacks auszukommen, was in den meisten Fällen ziemlich gut gelingt dank Eric Meyers CSS-Reset.

Die Grafiken entstehen auf unterschiedliche Weise. Das Bild hinter dem Text ist hier auf der Seite beispielsweise aus Inkscape, während die Headergrafik aus GIMP stammt. Die “Werbe”-Buttons auf der rechten Seite stammen aus Inkscape, ebenso das Favicon, dass im letzten Artikel in groß zu bewundern ist. Das ganze benutze ich übrigens auch unter GNOME als SVG-Icons.

Und ja, ich teste auch mit dem IE. Schließlich habe ich Virtualbox und eine XP-Home-Lizenz (die gab es zu meinem Notebook dazu). Das ist vielleicht nicht das Optimalste, aber zusammen mit dem IE-Tester ist das durchaus ausreichend. Opera und Safari kann ich prinzipiell auch testen, allerdings habe ich in mehren Fällen festgestellt, dass (nur) der IE in 99% aller Fälle das ganze etwas anders rendert. Trotz CSS-Reset.

Und ihr so? Wie designt ihr unter Linux? Und vor allem: was?

 
 
 
 

Meta

 

Lizenz

Creative Commons License
Diese Webseite und alle Inhalte von Christian Jung stehen unter einer Creative Commons Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 2.0 Deutschland Lizenz sofern nicht anders angegeben.
Über diese Lizenz hinausgehende Erlaubnisse erhalten Sie möglicherweise unter http://campino2k.de.

Info

Hier schreibt Christian Jung über Webdesign, Web 2.0, Internetrechtsprechung, Linux, Fotografie.

Dazu kommen bunt gemischte Texte und was ihm sonst noch so in den Sinn kommt.

Sitemap

Photostream

 

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei Ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Politikern schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.

Mehr Informationen unter www.politiker-stopp.de.