Teil von SELFHTML aktuell Teil von Artikel Teil von CSS

CSS:
Infobox

nach unten Jan Heinicke
nach unten Hinweise zum Thema
nach unten Beispiel 1 mit Erläuterungen
nach unten Beispiel 2 mit Erläuterungen
nach unten Beispiel 3 mit Erläuterungen
nach unten Weiterführende Links

Jan Heinicke

E-Mail: E-Mail jan.heinicke@online.de
Homepage-URL: deutschsprachige Seite http://css.fractatulum.net/

Bei Fragen zu diesem Beitrag bitte den Autor des Beitrags kontaktieren!

nach obennach unten

Hinweise zum Thema

In diesem Beispiel soll es darum gehen, einen Button zu erstellen, der bei Mausberührung seine Größe ändert und innerhalb des Linkbereiches oder aber an einer beliebigen Stelle der Seite einen zusätzlichen Informationstext einblendet. Realisiert wird das ausschließlich durch den Einsatz von CSS und HTML, Javascript wird nicht benötigt. Wie so oft beim Einsatz von CSS muss auch hier das Verhalten älterer Browser beachtet werden. Wenn es zu Problemen mit der Darstellung kommt, kann eine bereichsübergreifende Seite CSS-Browserweiche weiterhelfen.

nach obennach unten

Beispiel mit Erläuterungen

Das Grundelement der aufklappbaren Infobox ist ein bereichsübergreifende Seite <div>-Bereich, welcher auf der Seite bereichsübergreifende Seite absolut positioniert ist. Wäre der Bereich fließend im Text angeordnet, würde das ein Verrutschen des Inhaltes unter die Box zur Folge haben. Dieser Bereich bekommt eine bereichsübergreifende Seite ID zugewiesen, welcher im Stylesheet die entsprechenden Formatierungen zugewiesen werden. Innerhalb des <div>-Bereiches befinden sich ein bereichsübergreifende Seite <a>-Element sowie der einzublendende Text, umfasst von einem bereichsübergreifende Seite <span>-Element. Dieses wird zunächst mittels bereichsübergreifende Seite display:none als unsichtbar definiert.

Beispiel 1

Popup-Seite Anzeigebeispiel: So sieht's aus

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
	"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Infobox</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
<!--
#box {
position:absolute; top:50px; left:50px; 
z-index:3;}

#box a {
color:#ffffff;
background:#b3b06c;
font:bold 16px verdana, sans-serif;
text-decoration:none;
display:block;
padding:5px;
border:1px solid black;}

#box a:hover {
color:black;
background:#ddd8b7;
width:400px;}

#box a span {display:none;}

#box a:hover span {
color:black;
background:#ffffff;
font:normal 16px courier, sans-serif;
border:1px solid black;
display:block;
padding:10px;}
-->
</style>
</head>
<body>

<div id="box"><a href="#">INFOBOX<span>Lorem ipsum dolor sit amet</span></a></div>

</body>
</html>

Erläuterung:

In diesem Beispiel wird einem <div>-Bereich die ID box zugewiesen, mit dem bereichsübergreifende Seite ID-Selektor #box werden das Aussehen und die Position festgelegt. Das <div>-Element ist bereichsübergreifende Seite absolut positioniert, es wird damit aus dem Fluss der Elemente herausgenommen.

Mit dem bereichsübergreifende Seite Kindselektor #box a wird das Grundformat des <a> Elements innerhalb von Divs mit der ID box festgelegt. Mit dem Kindselektor #box a:hover wird das Verhalten des bereichsübergreifende Seite Pseudoformates des <a>-Elementes bei Mausberührung definiert.

Für das Einblenden bzw. Ausblenden des Infotextes ist in diesem Beispiel das bereichsübergreifende Seite <span>-Element entscheidend. Im Grundzustand ist der Infotext ausgeblendet, dies geschieht mit der Angabe bereichsübergreifende Seite display:none im Selektor #box a span. Der Wert none veranlasst, dass der Text ausgeblendet ist, das Pseudoformat :hover bewirkt, dass der Text beim Überfahren des Links mit der Maus eingeblendet wird.

Beachten Sie:

Bei dieser Art der Formatierung besteht das Problem, dass ältere Browser (und Opera bis zur Version 6) diese Formatierung nicht unterstützen, im speziellen sind es Selektoren wie #box a:hover span. Der Infotext wird also nicht eingeblendet. Damit aber für Besucher, die einen solchen Browser benutzen die Information nicht unzugänglich bleibt, bietet es sich an, im <a>-Element eine Seite zu referenzieren, welche die Informationen ebenfalls enthält.

Popup-Seite Anzeigebeispiel: So sieht's aus

nach obennach unten

Beispiel 2

Alternativ kann der einzublendende Text auch an einer beliebigen, fixen Stelle der Seite eingeblendet werden. Dazu ist es nötig, im Kindselektor #box a:hover span die Position anzugeben, dies geschieht mittels bereichsübergreifende Seite position:absolute.

Popup-Seite Anzeigebeispiel: So sieht's aus

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
	"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Infobox</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
<!--
#box a {
color:#ffffff;
background:#b3b06c;
font:bold 16px verdana, sans-serif;
text-decoration:none;
display:block;
width:150px;
padding:5px;
border:1px solid black;}

#box a:hover {
color:black;
background:#ddd8b7;}

#box a span {display:none;}

#box a:hover span {
position:absolute; top:10px; right:10px; z-index:3;
display:block;
width:300px;
color:black;
background:#ffffff;
font:normal 16px courier, sans-serif;
border:1px solid black;
padding:10px;}
-->
</style>
</head>
<body>

<div id="box"><a href="#">INFOBOX<span>Lorem ipsum dolor sit amet.</span></a></div>

</body>
</html>

Erläuterung:

In diesem Beispiel ist der <div>-Bereich selbst nicht absolut positioniert, er befindet sich im normalen Dokumentenfluss. Jedoch wird nun der einzublendende Text absolut positioniert, er erscheint somit an einer festgelegten Stelle der Seite. Das Prinzip dieser Konstruktion ist davon abgesehen dasselbe wie in Beispiel 1.

nach obennach unten

Beispiel 3

In diesem Beispiel wird wieder bei Mausberührung eines Elementes zusätzliche Information eingeblendet. Der Unterschied zu den vorangegangenen Beispielen besteht darin, dass das bereichsübergreifende Seite Pseudoformat :hover nun nicht dem bereichsübergreifende Seite <a>-Element, sondern einem anderen HTML Element, in diesem Fall einem bereichsübergreifende Seite <div>, zugewiesen wird.
Diese Art der Formatierung besitzt den Vorteil, dass nicht nur ein bereichsübergreifende Seite Inline-Element sondern auch ein bereichsübergreifende Seite Block-Element eingeblendet werden kann, welches wiederum Blockelemente enthalten darf. Ein Nachteil ist, dass nur ausreichend CSS-fähige Browser diese Art der Formatierung beherrschen, nicht so der Internet Explorer einschließlich der Version 6. Die aktuellen Versionen von Netscape, Mozilla und Opera dagegen haben damit keine Probleme.

Damit nun die einzublendenden Informationen für alle Benutzer, egal welchen Browser sie nutzen, zugänglich sind, wird in diesem Beispiel das kleine Bild mit einem Link versehen, welcher zu einer Seite verweist, auf der die Informationen ebenfalls bereit stehen.

Popup-Seite Anzeigebeispiel: So sieht's aus

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
	"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Infobox</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
<!--
img {
border:none;
}

#box{
height:80px;
width:80px;
padding:0;
margin:20px;
border:1px solid black;
font:bold 14px verdana, sans-serif;}

#box div{display:none;}

#box:hover div{
display:block;
width:300px;
position:absolute;top:20px;right:20px;
border:1px dashed black;
padding:15px;
font:normal 14px verdana, sans-serif;}
-->
</style>
</head>
<body>

<div id="box"><a href="info.htm"><img src="bild.png" width="80" height="80" alt=""></a>
	<div>
	<p><strong>INFO</strong></p>
	<p>Lorem ipsum dolor sit amet.</p>
	</div>
</div>
</body>
</html>

Beachten Sie:

Durch das Einbringen des <a>-Elementes werden alle Benutzer mit grafischen Browsern bedient. Es gibt jedoch auch Software, welche CSS gar nicht oder nur sehr eingeschränkt CSS beherrscht, wie zum Beispiel Textbrowser oder Netscape bis zur Version 4. In diesen Browsern wird der eigentlich ausgeblendete Bereich innerhalb des restlichen Inhaltes angezeigt. Damit die Inhalte der Seite auch in diesen Browsern in verständlicher Weise angezeigt werden, sollten alle Elemente der Seite so angeordnet bzw. ausgezeichnet werden, dass kein großes Durcheinander entsteht. Wenn die Seite trotz der Entfernung aller Stylesheets immer noch logisch aufgebaut ist, haben Sie alles richtig gemacht.

nach obennach unten

Weiterführende Links

Die folgenden Stellen werden empfohlen, um das obige Beispiel besser zu verstehen, oder um weitere Möglichkeiten und Details zu erfahren.

deutschsprachige Seite Edition W3C: CSS2-Selektoren (Vorabversion)
englischsprachige Seite W3C: CSS2-Selektoren
englischsprachige Seite SelectORacle: Selektoren entziffern
englischsprachige Seite Eric Meyer: pure CSS menus
englischsprachige Seite Lynx-Viewer

Teil von SELFHTML aktuell Teil von Artikel Teil von CSS

© 2007 bereichsübergreifende Seite Impressum