CSS Garden

Tipps und Tricks über Stylesheets

 

Hcard mit CSS

So eine hcard schreit gerade danach mit CSS bearbeitet zu werden. Dies habe ich im folgenden Beispiel gemacht:

Als erstes werden im Gimp 4 Images erstellt. Eines für den Hintergrund und die 3 anderen um die abgerundeten Ecken darzustellen.

Verwendet wird hier die "Sliding Door Technik"  welche am 20. Oktober 2003 das erste Mal in einem Artikel des "A List Apart" erschienen ist. Nicht ganz unkompliziert diese Technik. Einfacher wird dies dann mit CSS3, dort werden wir nämlich die Möglichkeit haben, jedem Element mehrere Images zuzuteilen. Da sollte dann ein DIV mit 4 Images reichen um diese abgerundeten Ecken darzustellen.

Als nächstes der HTML-Code welcher uns die hcard erstellt:

<div class="vcard">
<p class="fn org">CSS Garden
<a href="http://www.css-garden.ch">
<img src="images/css_garden_logo.gif"
alt="css-garden icon"></a>
</p>

<div class="adr">
<p class="street-address"> Mustergasse 66 </p>
<p><span class="postal-code"> 4002 </span>

<span class="locality"> Basel </span></p>
<p class="country-name">Schweiz</p>
</div>

<div class="telecom">
<p class="tel">Telephon: <span class="tel">

<span class="value">0900 8 11 11 8</span></p>
<p class="email">Email:
<a class="value" href="mailto:emailadresse">
emailadresse</a></p>
</div>

</div>

Und jetzt endlich beginnt der CSS-Teil. Das erste Bild hängen wir an das vcard-Element. Gleichzeitig passen wir noch die Schriftart und die gewünschte Breite an.

.vcard {
background: url(images/bl_back.gif) no-repeat;
color: #ffffff;
font-family: arial, helvetica, sans-serif;
width:16em;
}

Als nächstes setzen wir die obere, rechte Ecke an. Hier benützen wir den Paragraph der Klasse "fn" und "org"; das erste Kind-Element des vcard-Elements.

.fn {
background: url(images/bl_top_right.gif) no-repeat top right;
padding-top: 2em;
font-weight: bold;
font-size: 1.1em;
}

Jetzt kümmern wir uns um den unteren Teil der hcard. Die EMail- und Telephoneigenschaften werden in einem DIV-Element mit dem Namen "telecom" gruppiert. Dieses Element verwenden wir, um den unteren Rand anzufügen.

.telecom {
background: url(images/bl_bottom_left.gif) no-repeat left bottom;
margin-bottom: 2em;
}

An das letzte Block-Element im Fluss, nämlich das Paragraph-Element "email" wird nun die rechte, untere, abgerundete Ecke angehängt. Eine andere Möglichkeit wäre auch das letzte Inline-Element (in diesem Fall wäre dies der Email-Link) zu nehmen und es mit Hilfe von CSS in ein Block-Element zu verwandeln.

Natürlich müssen wir das Block-Element exklusiv wählen, das heisst mit Hilfe einer Klasse, in unserem Fall "p.email".

p.email {
background: url(images/bL_bottom_right.gif) no-repeat right bottom;
padding-bottom: 2em;
}

Nun werden wir noch einzelne Zeilen mit extra für Mikroformat hergestellte Icons versehen. Dies realisieren wir, indem wir den einzelen Paragraph-Elementen - mit Hilfe der definierten Klassen - Images zuweisen und den Text etwas nach rechts einrücken.

.street-address {
background: url(images/home.gif) no-repeat center left;
padding-left: 1.5em;
}

Jetzt wird noch aufgeräumt. Das Image mit dem Logo "floaten" wir auf die rechte Seite:

.vcard img {
float: right;
padding-right: 1em;
margin-top: -1em ;
}

Als letztes schaffen wir noch einen Abstand zum linken Rand und geben dem Link für das EMail noch eine andere Farbe.

.vcard p {
margin-left: 1em;
}
.vcard a {
color: #999999;
}

So die hcard ist fertig. Das coole daran ist, dass sie als Liquid-Layout erstellt ist und wir jederzeit die Schriftgrösse im Browser anpassen können. Die Grösse der Box passt sich jeweils an. Getestet habe ich den Code im Firefox 2.0.

Links zum Thema hcard, vcard und microformats:

Originalcode:

http://24ways.org/2006/styling-hcards-with-css

 

>Zurück

 

© 1997 - 2014