CSS3 im Detail: Border-Image

von

Ich glaub das wird kein toller Artikel aber fangen wir einfach an.. Teil 6 der CSS3 im Detail – Reihe: Border-Image.

Bei dieser Technik geht es prinzipiell darum eine Grafik als border für jedes beliebige Element zu benutzen. Was das soll? Nun ja, manche Leute mögen es bunt und lassen sich ausgefallene Rahmen einfallen. Damit man nicht mehrere Hintergrundbilder deswegen zurecht schneiden muss, hält nun mit CSS3 border-image Einzug.

Browserunterstützung

Folgende Browser unterstützen diese Technik bereits:

Firefox Safari Opera Chrome

Vorbereitung

Die Basis bildet natürlich eine Grafik. Diese muss so aufgebaut sein, dass sie aus neun Bereichen besteht: vier Ecken, vier Kanten und der Mitte, hier dargestellt durch Pikachus. :)

Syntax

Kommen wir also zur Sache, wie schon aus vorhergehenden Teilen bekannt, haben die Browser unterschiedliche Präfixe, so auch bei border-image.

1
2
3
4
5
6
7
8
div.borderimage {
	border-style:solid;
	border-width:49px 41px;
	-moz-border-image:url(pikachu.png) 49 41 repeat; /* Firefox */
	-webkit-border-image:url(pikachu.png) 49 41 repeat; /* Safari, Chrome */
	-o-border-image:url(pikachu.png) 49 41 repeat; /* Opera */
	border-image:url(pikachu.png) 49 41 repeat; /* W3C Standard */
}

Wichtig ist, dass border-style einen wert ungleich none hat und mit border-width könnt ihr die Breite des Rahmes bestimmen, in meinem Fall sind die Werte die Maße eines Pikachus. Damit sollten wir ungefähr so eine Box bekommen:

Div mit Pikachu-Border :)

Kurze Erklärung, welcher Teil hier was bewirkt.. mit der URL gibt man natürlich den Pfad zum Bild an. Danach folgen die beiden Werte für die Rahmenbreite. Hier können 1-4 Werte stehen, ein Wert für jede Seite. In diesem Fall ist ein Pikachu 41 Pixel breit und 49 Pixel hoch. Als letztes folgt noch ein Schlüsselwort, von denen es genau drei Stück zur Auswahl gibt:

  1. repeat – das Bild wird einfach wiederholt
  2. stretch – die Kantenstücke werden auf die volle Breite bzw. Höhe gestreckt
  3. round – die Kantenstücke werden etwas verzogen damit kein Pikachu abgeschnitten werden muss

Obiges Beispiel benutzt repeat, hier nun eins mit round

Div mit rounded Pikachu-Border

(Webkit-Browser scheinen mit round im Moment wohl ein Problem zu haben.)

… und eins mit stretch

Div mit stretched Pikachu-Border

Fazit

Jo, so geht das. Ich geb zu, das Pikachu-Beispiel ist vielleicht nicht gerade realistisch, zeigt aber was für einen Unfug man mit der neuen Technik treiben kann. Border-Image ist keine große Revolution, vereinfacht aber doch einige Dinge und vermindert auf jeden Fall die Anzahl an Grafiken, die man für aufwendige Rahmen bräuchte. Ich wünsch euch viel Spaß beim Ausprobieren. ;)

Die hier könnten dich auch interessieren…