Das ganz normale Chaos, täglich frisch auf den Tisch. Direkt aus der hintersten Provinz in die Metropolen von Groß-Blogistan.


CSS3 im Kreis

Fri, 05 Feb 2010 10:56:38 +0100

Abgerundete Ecken mit CSS, das geht. Das wird heute von (fast) jedem Browser unterstützt. Damit kann man nicht nur moderne Designs hin-zaubern, ohne auf Bilder zurückgreifen zu müssen, die mit dem Inhalt Nichts zu tun haben. Ob irgendwelche Ecken rund sind oder eckig, ist keine Frage des Inhalts und nur bedingt eine Frage der Struktur. Es ist fast ausschließlich eine Frage des visuellen Designs, der optischen Präsentation. Logischerweise gehören abgerundete Ecken auch genau dort hin, wo das visuelle Design, die optische Präsentation, erstellt wird: In das CSS Stylesheet. Mit der CSS3 Option border-radius kann man nett anzusehende abgerundete Ecken für jedes Blockelement hinbekommen.

Wenn man diese Techniken nun etwas kreativer anwendet, kann man damit auch andere nette Dinge machen, wie bei Kulando kurz angerissen. Das Ganze geht zurück auf einen Artikel bei Creativityden.

Beispiel

.round { border-radius: 5px; /* all corners have a radius of 5px */ -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px 4px 3px 2px; /* corner values go clockwise so, first value is the top left, second, the top right, third, bottom right and fourth, bottom left */ }

Das Beispiel ist von Creativityden. Warum nun -moz-border-radius und -webkit-border-radius? Nun, im Detail unterscheiden sich die verschiedenen Implementationen a)voneinander und b)vom Standard. Und nicht alle Browser haben wirklich schon border-radius implementiert. Und manch älterer Browser ist noch in Gebrauch, der vielleicht die proprietäre Variante kann, aber die Standard-Version nicht. Daher tut man vorläufig gut, wenn man die älteren proprietären Versionen sozusagen als fallback mit hinzufügt.

Relativ wenig Probleme haben alle Browser damit, alle Ecken gleich abzurunden. Das wird hier in der ersten Zeile so eingestellt. Hier unterscheidet sich die Syntax auch nicht bei den proprietären Versionen. Diese Variante verwende ich so ähnlich hier bei Rorkvell. Da ich allerdings konsequent auf ein flexibles Design setze, werden die Ecken bei mir nicht in Pixeln abgerundet, sondern abhängig von der Schriftgröße. So erreiche ich Abrundungen, die einigermaßen harmonisch zu der dargestellten Schrift passen:

.round { border-radius: 1em; -moz-border-radius: 1em; -webkit-border-radius: 1em; }

Gut, der Selektor heisst bei mir anders. Denn was sagt der Klassenname .round über den Inhalt dieses Containers aus? Nichts. Aber als Demo für die Technik ist der Name geeignet.

So weit, so schön. Bis auf IE natürlich, der kann das nicht. Der IE6 kann es nicht, der IE7 kann es nicht, der IE8 kann es nicht. Bei Catswhocode gibt's eine Anleitung, wie man das per Javascript auch für den IE hin bekommt. Vielleicht bastle ich das hier gelegentlich mal rein. Kaputtmachen kann ich ja damit eigentlich Nichts. Und wenn im IE Javascript abgeschaltet ist, nun ja, dann sind die Ecken eben wieder so eckig wie jetzt auch schon. Das Javascript hier wäre also ein progressive enhancement, eine Möglichkeit, das Aussehen einer Webseite zu verbessern, ohne damit die Nutzbarkeit für sicherheitsbewusste Surfer zu beeinträchtigen.

Allerdings werde ich solche Spezialitäten immer in diese sogenannten Conditional Comments einbetten.


0 Kommentare