Manchmal kann es nötig sein, das <hr> Element mit horizontalen Rändern wie andere Elemente zu verändern. Es taugt aber auch ebenso gut, um den Anfang oder das Ende diverser Abschnitte zu markieren. Die Lesbarkeit von Dokumenten, selbst in alten Browsern oder auch in Browsern die kein CSS darstellen können, wird wesentlich erhöht.
Auf der anderen Seite sieht ein einfaches <HR> Element auch nicht unbedingt schön aus, wenn es einfach nur ungestylt in schön durchformatierten Dokumenten verwendet wird. Die Formatierungen können problemlos per CSS vorgenommen werden. Dabei stößt man jedoch schnell auf das Problem das Ganze cross-browser kompatibel zu machen. Die nun vorgestellten Lösungen funktionieren nicht in älteren Browsern, sondern nur in Browsern ab IE5+, Opera 5+ und Mozilla/NN6.
Welche Eigenschaften funktionieren
Auf den <HR> Tag können eine ganze Menge verschiedener Eigenschaften angewendet werden :
- Alle 3 Browser erlauben die Verwendung von
widthundheight - Die
borderEigenschaft funktioniert nur im IE und Mozilla einwandfrei. Leider werden die Formatierungen im Opera nicht korrekt angezeigt. (Siehe Beispiele unten). - Im IE funktioniert die
colorEigenschaft. - Opera und Mozilla verwenden die
background-colorEigenschaft. - Alle 3 Browser gestatten es ein Hintergrundbild mit der
background-imageEigenschaft festzulegen. Wobei der IE sowie Opera doch noch Ihre Probleme haben. (Siehe letztes Beispiel).
Beispiele
Für die hier gezeigten Beispiele wird folgende Vorgabe verwendet:
1 2 3 4 | hr { border: 0; width: 80%; } |
Somit werden alle verwendeten <hr> Tags mit einer Breite von 80% dargestellt. Außerdem wird der Rahmen auf 0px gesetzt. IE und Opera stellen das Element identisch dar. Mozilla zeigt nichts an, da er den Rahmen zur Anzeige benötigt. Im aktuell verwendeten Browser sieht das jetzt so aus :
Wir bringen Farbe ins Spiel
Um eine einfache rote Linie zu erhalten fügen wir folgenden Code zur Definition hinzu:
1 2 3 | color: #f00; background-color: #f00; height: 5px; |
Das Ergebnis ist dann diese Linie :
Damit das in allen Browsern gleich aussieht, müssen die
color und die background-color Eigenschaft verwendet werden. Opera hat aber Probleme mit der Darstellung. Es wird immer noch ein Strich von 1 Pixel Dicke angezeigt. Damit das anders wird, muß eine Höhe von mehr als 3px verwendet werden.Daher muß hier die height Eigenschaft verwendet werden. Mac User sollten mal ein Auge auf den Hinweis 1.1 werfen.
Die nächsten 3 Beispiele zeigen 3 Andere, in den verschiedenen Browsern gut aussehende Effekte:
Als nächstes kommt eine dünne, rote (leider schwarz in Opera), durchgehende Linie mit einer Höhe von 1px :
1 2 3 | color: #f00; background-color: #f00; height: 1px; |
Hier kommt ein leeres, rotes Rechteck, 10px hoch:
1 2 3 4 | border: 1px solid #f00; color: #fff; background-color: #fff; height: 10px; |
2 dünne rote Linien (Opera zeigt leider ein Rechteck). Die Obere ist gepunktet, die Zweite durchgehend:
1 2 3 4 5 | border-top: 1px dashed #f00; border-bottom: 1px solid #f00; color: #fff; background-color: #fff; height: 4px; |
Pages: 1 2
Pingback: Abstand zwischen einzelnen Einträgen - XHTMLforum
#1 by dkdenz on 30.09.2007 - 21:48
Quote
Hi
Ich habe mich auch im hr-Styling probiert: http://dkdenz.de/#nr4
Und nachdem ich das Problem mit dem unsinnigen Rahmen im IE nicht gelöst bekam, suchte ich natürlich im Netz nach einer Lösung.
Dadurch bin ich auf diesen Artikel gestoßen. Der hat mir das Wochenende gerettet. Danke dafür
Ich habe den Lösungsweg nicht aufgeschrieben, sondern einfach auf diesen Artikel verlinkt.
Der Opera zeigt inzwischen allerdings keinen Rahmen mehr an.
Gute Seiten noch…
Pingback: <hr> Linien mit CSS formatiert: noshade in CSS definieren? - TP Hilfe Forum
Pingback: Horizontale Linie formatieren? - TP Hilfe Forum
Pingback: Eigne <HR> mit Grafik nur nicht im IE? - html.de Forum - HTML für Anfänger & Fortgeschrittene