Herr Bertling.

Musik. Politik. Dinge.

RSS-Feed

Wie man CSS3 und HTML5 schon nutzen kann

Zur Zeit wird man im Bereich Web­de­sign regel­recht zuge­schmissen mit Arti­keln, die sich mit dem letzten Schrei der Web­technik befassen: HTML5 und CSS3. Zwar sind beide Ansätze noch bei weitem nicht in allen Brow­sern *hust* IE *hust* imple­men­tiert – den­noch ist ihr Ein­satz bereits jetzt sinn­voll & loh­nens­wert. Ich halte es da ganz mit Andy Clarke: Ignorance is bliss:

That’s because in the real world, people using the Web don’t find a Web site that they like, then open up ano­ther browser to check that it looks they same.

AUf meh­reren Seiten habe ich diese Tech­niken genutzt. Wie die Umset­zung in der Praxis aus­sieht, möchte ich ein einem Bei­spiel ver­deut­li­chen. Ich habe zu Beginn des Jahres die Web­seite für den müns­te­raner Kaf­fee­freund Dominik Schweer umge­setzt. Dabei habe ich diverse Neue­rungen genutzt, die ich kurz anschneiden möchte.

HTML5

HTML5 stellt neben dem wahn­sinnig ein­fa­chen Doc­type diverse neue Ele­mente vor – einen guten Über­blick bietet Peter Krö­ners Artikel zum Thema. Mit ent­spre­chenden CSS-Klassen & IDs lassen sich diese Ele­mente zumin­dest schon anti­zi­pieren, wie es auch A List Apart im Pre­view zu HTML5 als „common struc­tures” für HTML4 vor­stellt. Die Schwie­rig­keiten, die man sich beim direkten Ein­satz dieser Ele­mente ein­han­delt, werden in Peters Artikel ein­drucks­voll belegt, daher sollte man in diesem Bereich wohl zunächst auf die Klassen-/ID-Lösung zurück­greifen – was in vielen Jahren evtl. mal die Umstel­lung erleichtet ;)

Was man aber bereits ein­setzen kann sind WAI-ARIA-Landmarks, Gründe dazu finden sich bei Vor­sprung durch Web­stan­dards:

Mit Aria-Landmarks kann jede sta­ti­sche Web­site besser struk­tu­riert werden. Aria-Landmarks werten das HTML auf und erhöhen dessen Infor­ma­ti­ons­wert. Mit Land­marks kann die Rolle eines Ele­ments genauer beschrieben werden

Die erwei­terten Angaben sind schnell eingebunden:

  • Der Kopf­be­reich erhält „role=banner”
  • Der Haupt­in­halt erhält „role=main”
  • Die Sei­ten­leiste erhält „role=complementary”
  • Die Navi­ga­tion erhält „role=navigation”
  • Blog­ein­träge / Texte erhalten „role=„article”
  • Zusatz-/Metainfos zu Blog­ein­trägen erhalten „role=contentinfo”
  • Das Such­for­mular erhält „role=search”

Das war’s auch schon. Kurz und schmerzlos wurde der Inhalt durch ein­fache Aus­zeich­nungen zugäng­li­cher gemacht.

Auch For­mu­la­r­ele­mente lassen sich in HTML5 gewinn­brin­gend erwei­tern. Dort gibt es einen ganzen Satz neuer Typ-Bezeichnungen, die glück­li­cher­weise bei „Unwis­sen­heit” des Brow­sers auf den Stan­dardtyp „text” zurück­ge­setzt werden. So lassen sich z.B. Kom­men­tar­for­mu­lare in Blogs durch mini­male Ände­rungen seman­tisch leicht aufwerten:

<input type="url">, <input type="email">

Zumin­dest auf dem iPhone wird dann schon mal die Tas­tatur ange­passt. Ansonsten sehen die Felder aus wie nor­male Text-Eingabefelder, dem­ent­spre­chend gibt es User­seite keine Beein­träch­ti­gung der Dar­stel­lung. Eine voll­stän­dige Doku­men­ta­tion dazu gibt es bei „Dive Into HTML5″: A Form of Mad­ness.

Wie gesagt ver­zichte ich zunächst auf den Ein­satz der brand­neuen Ele­mente, da dies zu unglaub­li­chen Kom­pa­ti­bi­li­täts­pro­blemen führt. Dem Ein­satz der oben beschrie­benen kleinen Ände­rungen steht jedoch nichts im Wege.

CSS3

Neben den HTML5-Techniken bieten einige Browser mitt­ler­weile sehr gute Unter­stüt­zung für die neuen CSS3-Eigenschaften. Beim Ein­satz sollte man natür­lich stets darauf achten, dass die Funk­tio­na­lität der Seite auch ohne Unter­stüt­zung der Fea­tures gesi­chert ist. Daher beschränke ich mich auf wenige gra­fi­sche Details, ganz im Sinne des Pro­gres­sive Enhan­ce­ments.

Ein gutes Bei­spiel dafür ist der Ein­satz von RGBa für die Fest­le­gung von Farben. Bei 24ways.org gab es zu Beginn der Adventskalender-Reihe 2009 ein exzel­lentes Tuto­rial für die Arbeit mit RGBa. Die Mög­lich­keit, nur die Hin­ter­grund­farbe, nicht aber den ent­hal­tenen Text mit leichter Trans­pa­renz zu ver­sehen, habe ich beim Kaf­fee­freund einige Male genutzt. Beson­ders beim Inhalts­be­reich fällt das auf – in allen Browser, die RGBa unter­stützen, scheint das Hin­ter­grund­bild dezent durch:

Durchscheinender Hintergrund

Durch­schei­nender Hintergrund

Browser, welche die RGBa-Farbangaben nicht akzep­tieren, bekommen statt­dessen eine ein­fache RGB-Farbe aus­ge­lie­fert & müssen auf die Kaf­fee­bohnen leider ver­zichten. Ist zwar schade, stört aber den Besu­cher wohl nicht weiter – wie soll er es auch wissen ;) Zudem sieht der fort­schritt­lich brow­sende Nutzer im Googlemaps-Infokasten zu später Stunde nicht ein­fach nur eine graue Box mit Text, son­dern leicht durch­schei­nend einen Kar­tenau­schnitt aus Goo­gle­Maps dahinter. Das sieht im CSS dann z.B. für den Haupt­in­halt so aus:

#content{ background-color: rgb(241,232,226); background-color: rgba(241,232,226,0.8);}

Mit Schat­tie­rungen habe ich ganz behutsam gear­beitet. Über die Eigen­schaft box-shadow mit ent­spre­chenden Browser-Prefixes werten die Schat­tie­rungen die Seite auf & geben ihr einen leichten drei­di­men­sio­nalen Touch. Nach Lek­türe des Arti­kels „Craf­ting Subtle & Rea­listic User Inter­faces” habe ich die Schatten übri­gens massiv redu­ziert – den Grund gibt der Artikel:

Drop Shadows will ruin your design if you don’t do it right. Things should be right up against their sur­face which means using a 1-3px Drop Shadow size. And 0-3px dis­tance. This isn’t WordArt.

Der Schatten am rechten Rand der Navigation ist eigentlich nicht korrekt

Der Schatten am rechten Rand der Navi­ga­tion ist eigent­lich nicht korrekt

Pro­ble­ma­tisch bei dieser Eigen­schaft ist, dass per CSS ver­ge­bene Schatten streng genommen per­spek­ti­visch nicht ganz kor­rekt sind. So müsste z.B. bei der Kaffeefreund-Seite der Schatten der Navi­ga­tion zum Hin­ter­grund hin länger sein als zur dazwi­schen­lie­genden Inhaltsebene.

Den­noch erscheint die Seite so ganz subtil etwas grif­figer. Der Ein­satz von Schat­tie­rungen sollte jedoch ins­ge­samt wie bereits ange­deutet gut durch­dacht sein. Welche Pro­bleme auf­tau­chen können, ver­deut­licht der Artikel „Drop-Shadows and Gra­di­ents: Be Con­sis­tent in Your Visual Meta­phors”.

Eine letzte heiß­ge­liebte Eigen­schaft ist der border-radius. Runde Ecken sind waren ja der abso­lute Knaller, wenn es um jeg­liche Web2.0-Seiten geht. Natür­lich nutzt die Seite auch diese Eigen­schaft – und das sogar bei fast jeder Box, die sichtbar ist. Jedoch habe ich auf über­trieben abge­run­dete Boxen wei­test­ge­hend ver­zichtet, son­dern nur geringe Radien ange­geben. Den Grund dazu lie­fert der bereits oben zitierte Artikel zu Userinterfaces:

Real-world objects rarely have per­fectly square cor­ners. Use subtle rounded cor­ners to make objects look real.

Daher ist jedes Ele­ment, das ursprüng­lich eckige Kanten hatte, zumin­dest mit einer mini­malen Run­dung ver­sehen. Die Angabe dazu habe ich platz­spa­rend ganz an das Ende der CSS-Datei geschoben & dort alle Ele­mente ange­geben, die ich leicht gerundet haben wollte.

Wer die ent­spre­chenden Tech­niken im Ein­satz sehen möchte & mir auf­grund inkon­sis­tenten Codings die Ohren lang­ziehen mag, darf sich das Style­s­heet gerne in Gänze zu Gemüte führen.

Wie  man sieht: Wenn die vor­han­denen Tech­niken dezent ein­ge­setzt werden, lassen sich mit ein­fa­chen Mit­teln sinn­volle Ver­bes­se­rungen erzielen. Die Seite wird in wenigen Minuten auf­ge­wertet & bleibt den­noch funk­tional – sie über­mit­telt auch im IE6 den Inhalt problemlos.

Nach­trag: Etwas abs­trakter, aber kom­pakt und tref­fend for­mu­liert hat es Mathias Schäfer. „Pro­gres­sive Enhan­ce­ment: Die Zeit ist gekommen

10.01.10

webdesign