<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.240.74.209</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.240.74.209"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/79.240.74.209"/>
	<updated>2026-05-06T16:10:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=CSS_-_Snippets&amp;diff=19105</id>
		<title>CSS - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=CSS_-_Snippets&amp;diff=19105"/>
		<updated>2012-04-16T14:52:30Z</updated>

		<summary type="html">&lt;p&gt;79.240.74.209: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Radius ==&lt;br /&gt;
&lt;br /&gt;
Vorsicht bei Bildern. Diese werden nicht beschnitten (Stand 2011)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-webkit-border-radius: 40px;&lt;br /&gt;
-moz-border-radius: 40px;&lt;br /&gt;
border-radius: 40px;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schatten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.schatten&lt;br /&gt;
{&lt;br /&gt;
box-shadow: 3px 3px 5px #888;&lt;br /&gt;
-webkit-box-shadow: 3px 3px 5px #888;&lt;br /&gt;
-moz-box-shadow: 3px 3px 5px #888;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Werte bezeichnen: Versatz in x-Richtung, y-Richtung, den Wert für das Weichzeichnen und natürlich die Schattenfarbe.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Schatten auf alten IE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Mit Microsoft Filter Funktionen. Es gibt zwei unterschiedliche Schatten Filter. Beide liefern ein eher mäßiges Ergebnis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.ie-schlagschatten&lt;br /&gt;
{&lt;br /&gt;
filter:progid:dxImageTransform.Microsoft.dropShadow(color=#8888,offX=3,offY=3 positive=true);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ie-schatten&lt;br /&gt;
{&lt;br /&gt;
filter:progid:DXImageTransform.Microsoft.Shadow(color=&amp;#039;#8888&amp;#039;,direction=&amp;#039;120&amp;#039;,strength=&amp;#039;3&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>79.240.74.209</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=CSS_-_Tipps_%26_Tricks&amp;diff=19104</id>
		<title>CSS - Tipps &amp; Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=CSS_-_Tipps_%26_Tricks&amp;diff=19104"/>
		<updated>2012-04-16T14:47:22Z</updated>

		<summary type="html">&lt;p&gt;79.240.74.209: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siehe auch &lt;br /&gt;
&lt;br /&gt;
[[CSS - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[CSS - Baukasten]] (Frameworks etc.)&lt;br /&gt;
== CSS Zugriff über Attribute (Attributselektoren)==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
input[type=&amp;quot;button&amp;quot;],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3-Spalter mit gleich langen Spalten ==&lt;br /&gt;
Normalerweise wird ein 3-Spalter mit gleichlangen Spalten simuliert, indem man im Wrapper div einen mehrfarbigen horizontalen Streifen als Hintergrundbild einfügt, das quasi die Spalten durchgängig erscheinen läßt.&lt;br /&gt;
&lt;br /&gt;
Einen anderen einfachen Weg bietet die Eigenschaft table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#content-wrap{&lt;br /&gt;
   display: table;&lt;br /&gt;
}&lt;br /&gt;
#wrap{&lt;br /&gt;
   display: table-row;&lt;br /&gt;
}&lt;br /&gt;
#left,#middle,#right,#content{&lt;br /&gt;
   display: table-cell;&lt;br /&gt;
   vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir geben dem Umgebenden Wrap die Eigenschaft table und dem nächsten umgebenden Div die Eigenschaft table-row. Alles was sich darin befindet wird dann zu table-cell. Das war es schon nur funktioniert es im IE7 noch nicht. Deshalb die passenden Hacks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* html #left,&lt;br /&gt;
* html #middle,&lt;br /&gt;
* html #right,&lt;br /&gt;
* html #content{&lt;br /&gt;
   margin-bottom: -10000px;&lt;br /&gt;
   padding-bottom: 10000px;&lt;br /&gt;
   float: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
*+html #left,&lt;br /&gt;
*+html #middle,&lt;br /&gt;
*+html #right,&lt;br /&gt;
*+html #content{&lt;br /&gt;
   height: 100%&lt;br /&gt;
   float: left;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Größenbestimmung in flexiblen Layouts ==&lt;br /&gt;
Mit ein paar Standard - Tricks bei der Größendefinition wird es wesentlich leichter in flexiblen Layouts die Exakten Werte herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem bei flexiblen Layouts ist die Vererbung der Größen. Wenn für den body z.B. 0.5em als Textgröße festgelegt werden und sich in diesem Body eine Tabelle befindet, dann ist die Größe in dieser Tabelle 0.5em von 0.5em, also 0.25em.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* {   font-size: 1em; /* do not edit */}&lt;br /&gt;
html {   font-size: 62.5%; /* do not edit */}&lt;br /&gt;
body {font-size: 1.12em; /* edit here global font size - 1em is 10px */}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durch die Definition in * und html haben wir in allen Browsern in den Unterelementen eine Standardgröße von 10px auf 1em. Diese &amp;#039;runde&amp;#039; Größe läßt sich hervoragend für die Größenbestimmungen der anderen Blöcken verwenden. Möchten wir z.B. eine Spaltenbreite von 52px in der Standardeinstellung des Browsers erreichen, dann entspricht das der Größe 5.2em. Wenn der Browser resized wird wächst so nicht nur die Schrift, sondern auch die Breite der Spalten und das genau Proportional.&lt;br /&gt;
&lt;br /&gt;
== Formulare mit CSS ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Formulare per CSS Layouten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Von Gerrit Kaiser, am 09.01.04&lt;br /&gt;
&lt;br /&gt;
15.9.06 http://www.style-sheets.de/guide/formulare/formulare_per_css_layouten&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Das Formular&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Für dieses Beispiel nehmen wir uns ein einfaches Formular, wie es auf vielen Websites anzufinden ist. Nehmen wir an, es handelt sich um ein Newsletter-Formular mit Eingabefeldern für Name, eMail-Adresse und einer Dropdown-Box zum auswählen, ob man ein- oder eingetragen werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Screenshot des Beispiel-Formulares&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Formlayout_beispiel1.png]]&lt;br /&gt;
&lt;br /&gt;
Doch diese Technik lässt sich auch auf andere Formulare übertragen. Und genau das ist der Vorteil: man hat dieselbe Struktur, dieselben Abstände. Und kann sie jederzeit ändern, in allen Formularen die das Stylesheet benutzen. Man muss nicht in den HTML-Code eingreifen dafür.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Die Struktur&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man bedenkt, was ein Formular wirklich ist, woraus es besteht und nach der Maxime vorgeht, allen unnötigen HTML-Code wegzulassen, landet man bei etwas ähnlichem wie dem hier:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;form id=&amp;quot;beispielform&amp;quot; method=&amp;quot;post&amp;quot; action=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;Name&amp;quot; name=&amp;quot;Name&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;eMail-Adresse&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;email&amp;quot; name=&amp;quot;email&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Geburtsmonat&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;select id=&amp;quot;Monat&amp;quot; name=&amp;quot;Monat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;Januar&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;Februar&amp;lt;/option&amp;gt;&lt;br /&gt;
  &amp;lt;/select&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; id=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist der optimale Code. Er besteht lediglich aus den Formularelementen und ihren Bezeichnern. Nicht nur die W3C-Richtlinien zur Barrierefreiheit gebieten das Benutzen von &amp;lt;label&amp;gt;-Tags um die Beschreibungen, deren Benutzung verbessert auch die Struktur des Codes und bietet Vorteile beim Einsatz von CSS.&lt;br /&gt;
&lt;br /&gt;
Gegenüber einer Tabellen-Lösung spart man einiges an Code, was die Seite wieder ein bisschen schneller Laden lässt und die Traffic-Kosten verringert.&lt;br /&gt;
&lt;br /&gt;
Den Formularelementen muss sowohl das name, wie auch das id-Attribut mitgegeben werden. Das erste wird gebraucht, damit überhaupt Werte durch das Formular an den Server übermittelt werden. Das zweite ist notwendig, um die Labels an ihre Formularfelder zu binden (so wird z.B. durch einen Klick auf den Label-Text das Formularfeld ausgewählt). Durch die feste ID können aber auch einzelne Felder später individuell gestaltet werden. Mit Hilfe eines ID-Selektors könnte man z.B. dem eMail-Feld einen roten Hintergrund geben um es hervorzuheben.&lt;br /&gt;
&lt;br /&gt;
Um aber Benutzern nicht CSS-Fähigen Browsern wie z.B. alten Netscape-Versionen oder PDAs nicht heilloses durcheinander zu präsentieren, müssen am Ende einer Formular-Zeile Zeilenumbrüche eingefügt werden. So erhält man sich die Abwärtskompatibilität. Diese &amp;lt;br&amp;gt;-Tags machen an dieser Stelle aber auch strukturell Sinn (im Gegensatz zu Ihrem Missbrauch als Absatz-Abstandhalter). Ausserdem spielen sie später für das CSS eine wichtige Rolle.&lt;br /&gt;
&lt;br /&gt;
Wichtiger Hinweis:Der Beispiel-HTML-Code hier ist XHTML-Code. Er benutzt die /&amp;gt; Endung bei kurzen Tags um sie abzuschließen. Wenn man diesen Code in einem HTML4-Dokument benutzen will, sollte man diese Schrägstriche entfernen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nun zum layouten...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Das wichtigste hier ist es, die mittlere &amp;quot;Linie&amp;quot; herzustellen, an der sich sowohl der Label-Text als auch die Textfelder etc. ausrichten. Das erreicht man nur, indem man diesen Elementen eine feste Breite zuweist. Dies tuen wir im folgenden Beispiel, möglich wird es durch die Benutzung der Eigenschaft display: block;.&lt;br /&gt;
&lt;br /&gt;
 label, input, select { /* Alle Labels UND Formularelemente auswählen */&lt;br /&gt;
  display: block;&lt;br /&gt;
  float: left;&lt;br /&gt;
  width: 100px; /* Breite.*/&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 form br { /* Alle Zeilenumbrüche in Formularen auswählen */&lt;br /&gt;
  clear: left; /* das floating der labels und inputs aufheben */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 input#submit { /* den Submit-Button */&lt;br /&gt;
  float: none;&lt;br /&gt;
  width: auto;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Die letzte Regel ist nötig, damit der Submit-Button nicht auf die gleiche Breite gestreckt wird wie die Textfelder. Die ideale Lösung für diesen Selektor wäre input[type=&amp;quot;submit&amp;quot;], was automatisch alle Submitbuttons auswählt. Der Internet Explorer unterstützt dies jedoch noch nicht, daher muss ein Kompromiss eingegangen werden und dem Button eine eindeutige ID vergeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Abstände wurden in em definiert, damit sie sich in Relation zur Schriftgröße verhalten. Vergrößert man die Schrift, vergrößern sich auch die Abstände entsprechend.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Letzte Schritte&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Jetzt wird noch ein wenig Abstand zwischen den Labels und den Feldern eingefügt sowie der Text der Labels rechts ausgerichtet.&lt;br /&gt;
&lt;br /&gt;
 label {&lt;br /&gt;
  text-align: right; &lt;br /&gt;
  padding-right: 1em; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Wollen wir das Formular nun noch visuell attraktiver gestalten und es dem Screenshot oben näher bringen, fügen wir noch eine Regel in das Stylesheet ein. Diese ist dann dem eigenen Site-Design anzupassen.&lt;br /&gt;
&lt;br /&gt;
 form {&lt;br /&gt;
  background: #de2;&lt;br /&gt;
  border: thin solid #ab0;&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:.5em;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Fazit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Mit der hier vorgestellten Technik sind Tabellen auch für das Layout von Formularen überflüssig. Sie bietet aber auch Abwärtskompatibilität zu nicht-CSS-Browsern, und das ohne den Gewinn an Flexibilität durch den Einsatz von CSS zu schmälern. &lt;br /&gt;
&lt;br /&gt;
==Horizontale und vertikale Zentrierung in XHTML Strict==&lt;br /&gt;
Das Attribut &amp;#039;align&amp;#039; ist vom W3C als deprecated (missbilligt) eingestuft und im aktuellen XHTML Strict nicht mehr zulässig. Die bisher übliche Anweisung &lt;br /&gt;
&amp;lt;nowiki&amp;gt; &amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
zur horizontalen Zentrierung muß also ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die horizontale Zentrierung von Inline-Elemenen und Text in Paragraphen ist einfach:&lt;br /&gt;
 &amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;Dieser Text ist zentriert.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;Dieser Text ist zentriert.&amp;lt;/p&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Block-Elemente wie z.B. &amp;lt;div&amp;gt; oder Tabellen werden zentriert, indem man ihre linken und rechten Abstände gleich groß definiert, wozu man den Wert &amp;#039;auto&amp;#039; verwenden kann:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:auto; width:250px; padding:10px; border: 1px solid black;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Dieser Block sollte zentriert sein.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Block wurde bei Ihnen nicht zentriert angezeigt? Dann verwenden Sie einen Browser, der sich nicht an den CSS-Standard hält - vermutlich den Internet Explorer (der diese Anweisung ab Version 6 zwar kennt, aber nur im &amp;quot;standards-compliant mode&amp;quot; auch umsetzt). Um diesen Browser unabhängig von der Version oder dem Modus zur Zentrierung eines Blocklevel-Elements zu veranlassen, nutzen wir einen weiteren Fehler von ihm aus; er wendet nämlich das ausschließlich für Inline-Elemente zuständige Attribut &amp;#039;text-align&amp;#039; auch auf enthaltene Blocklevel-Elemente an.&lt;br /&gt;
&lt;br /&gt;
Hierdurch werden jedoch ebenfalls alle Inline-Elemente zentriert. Um nun z.B. die Blocklevel-Elemente &amp;lt;div&amp;gt; und &amp;lt;table&amp;gt; für alle Browser zu zentrieren, Texte in den Inline-Elementen &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; und in Tabellen jedoch weiterhin linksbündig ausgerichtet zu lassen, setzen wir die folgenden Style-Angaben zwischen &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt; und &amp;lt;body&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  body { text-align:center; }&lt;br /&gt;
  div,table { margin-left:auto; margin-right:auto; }&lt;br /&gt;
  p,th,td { text-align:left; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vertikale Zentrierung===&lt;br /&gt;
&lt;br /&gt;
Die vertikale Zentrierung einer Textzeile ist einfach, wenn auch wegen der hierzu zweckentfremdeten CSS-Eigenschaft line-height nicht allgemein bekannt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:5em; text-align:center; border:1px solid black;&amp;quot;&amp;gt;Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:5em; text-align:center; border:1px solid black;&amp;quot;&amp;gt;Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blocklevel-Elemente sind schwieriger vertikal zu zentrieren, da margin:auto bei der Höhe dem Initialwert des Elements entspricht. Soweit jedoch die Höhe des Elements und seines umschließenden Elements bekannt sind, können die hierzu passenden margins angegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:300px; height:80px; border:1px solid blue;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p style=&amp;quot;width:250px; height:30px; margin:24px; border:1px margin:20px; border:5px solid black;&amp;quot;&amp;gt;&lt;br /&gt;
  zentrierter Absatz&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einen Haken hat diese Methode allerdings: der Internet Explorer zieht die Rahmenbreite fälschlich von der Größe der inneren Box ab, so daß die Zentrierung nicht ganz stimmt. Dies wird allerdings erst bei breiterem Rahmen sichtbar; testen Sie 5px.&lt;br /&gt;
&lt;br /&gt;
Eine ganze Seite sollte man nur dann innerhalb eines zentrierten Rahmens darstellen, wenn hierdurch keine seiteninternen Scrollbalken provoziert werden. Eine mögliche Anwendung wäre (wie bei mir ab einer ins Fenster passenden Inhaltshöhe von 475px) eine Startseite mit einem begrenzten Inhalt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  @media screen, projection {&lt;br /&gt;
    html { height:100%; padding:0; }&lt;br /&gt;
    body { height:100%; margin:0; padding:0; }&lt;br /&gt;
    #seite { height:80%; width:90%; position:absolute; top:10%; left:5%;&lt;br /&gt;
             overflow:auto; border:1px solid black; }&lt;br /&gt;
    #innen { padding:15px; }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;div id=&amp;quot;seite&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;innen&amp;quot;&amp;gt;&lt;br /&gt;
  Seiteninhalt  (der Innenabstand erfordert hier leider eine Schachtelung)&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine solche Definition ist meist nicht drucktauglich und sollte daher wie hier auch nur für die Bildschirmdarstellung gegeben werden.&lt;br /&gt;
&lt;br /&gt;
Um ein Element mit festen Dimensionen wie die Tafelgrafik dieser Seite zentrieren zu können, ist absolute Positionierung erforderlich. Hierbei wird z.B. die obere linke Ecke des Elements in der Mitte positioniert und das Element über negative margins um die Hälfte seiner Breite nach links und die Hälfte seiner Höhe nach oben verschoben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  #Tafelgrafik {&lt;br /&gt;
    position:absolute; top:50%; left:50%;&lt;br /&gt;
    margin-left:-49px; margin-top:-43px;&lt;br /&gt;
    width:98px; height:85px;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vertikale Zentrierung in Block Elementen mit unbekannter Höhe ===&lt;br /&gt;
Eine weitere schöne Methode funktioniert mit der Eigenschaft display: table-cell;&lt;br /&gt;
&lt;br /&gt;
Damit kann man den von der Positionierung in Tabellenzellen bekannten Eigenschaft vertical-align auch außerhalb von Tabellen nutzen. Das funktioniert bei Standardbrowsern gut. Bei einigen IE nicht. Man kann aber ein paar Hacks nutzen. Ein ausführliches Beispiel hier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
#outer {height: 400px; overflow: hidden; position: relative;}&lt;br /&gt;
#outer[id] {display: table; position: static;}&lt;br /&gt;
&lt;br /&gt;
#middle {position: absolute; top: 50%;} /* for explorer only*/&lt;br /&gt;
#middle[id] {display: table-cell; vertical-align: middle; width: 100%;}&lt;br /&gt;
&lt;br /&gt;
#inner {position: relative; top: -50%} /* for explorer only */&lt;br /&gt;
/* optional: #inner[id] {position: static;} */&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Infobox im Textbereich über CSS einblenden ==&lt;br /&gt;
aus http://www.1ngo.de/web/infobox.html 6 / 2006&lt;br /&gt;
&lt;br /&gt;
Erklärungstexte können beim Überfahren eines Elements zwar über das title-Attribut angezeigt werden, jedoch ist dies nur für kurze Texte praktikabel, da diese nicht formatiert werden können und auch nur kurz eingeblendet werden. Eine Infobox mit formatiertem Inhalt kann über CSS auch ohne Verwendung von JavaScript angezeigt werden. Jedoch ist hierzu leider ein Link erforderlich, da der Internet-Explorer die Pseudoklasse :hover nur auf dieses Element anwenden kann.&lt;br /&gt;
Die Positionierung der Infobox im Textbereich relativ zu dem aktivierenden Element ist allerdings nicht ganz einfach. Das Element relativ zu positionieren und dadurch als Basis für eine absolute Positionierung der Infobox zu nehmen scheidet aus, da dessen Position im Fließtext unbekannt ist und zu nahe am Fensterrand liegen könnte, so daß die Infobox teilweise außerhalb des sichtbaren Fensters positioniert würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox { border-bottom: 1px dashed #c30; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover { cursor:help; color:#c30; background:white; }&lt;br /&gt;
  a.infobox span { visibility:hidden; position:absolute; left:16em;&lt;br /&gt;
                   margin-top:1.5em; padding:1em; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover span { visibility:visible; border:1px solid #c30;&lt;br /&gt;
                         color:blue; background:white; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;!--[if IE 5]&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox span { display:none; }&lt;br /&gt;
  a.infobox:hover span { display:block; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;p&amp;gt;Dies können &amp;lt;a class=&amp;quot;infobox&amp;quot; href=&amp;quot;#INFO&amp;quot;&amp;gt;AFAIK&amp;lt;span&amp;gt; &amp;lt;b&amp;gt;Infobox:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
englisch für: &amp;#039;As far as I know&amp;#039; (&amp;#039;soweit ich weiß&amp;#039;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt; alle modernen Browser interpretieren:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Unterscheidung von echten Verweisen erhält der Link die CSS-Klasse &amp;#039;infobox&amp;#039; und wird mit einem gestrichelten unterem Rand formatiert; auch der im href-Attribut angegebene Anker sollte vorhanden und sinnvoll benannt sein, da er in der Statuszeile erscheinen wird. Im Zustand :hover wird für den Link ein weißer Hintergrund und ein Fragezeichen-Cursor definiert. Beachten Sie, daß mindestens eine dieser Änderungen erforderlich ist, damit der Internet Explorer die Infobox auch anzeigt; es würde sogar ausreichen, einem vorher mit background:#fff definierten Link background:#ffffff oder background:white zuzuweisen. ;-)&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Infobox wird nach dem zu erklärenden Wort in ein weiteres inline-Element (&amp;lt;span&amp;gt;, da es kein semantisch passendes Element gibt) gesetzt und als &amp;#039;unsichtbar&amp;#039; definiert.&lt;br /&gt;
Für die über &amp;#039;:hover&amp;#039; später &amp;#039;sichtbar&amp;#039; gemachte Anzeige wird das Element absolut positioniert, wobei ich einen nicht ganz standardkonformen, aber funktionierenden Trick anwende: ich gebe über &amp;#039;left:&amp;#039; den Abstand des Textbereichs zum linken Rand (hier vom &amp;lt;body&amp;gt;, da keine weiteren positionierten Elemente vorhanden sind) an und setze die Box über &amp;#039;margin-top:&amp;#039; unter die aktuelle Zeile. Da keine Angabe zu &amp;#039;top:&amp;#039; gemacht wurde, funktioniert das erfreulicherweise auch in fast allen Browsern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Trick ist der Verzicht auf eine Breitenangabe. Eigentlich müßte die Box nun die gesamte noch verfügbare Breite einnehmen, aber nur standardkonforme Browser wie Mozilla setzen dies so um. Wenn allerdings der Text der Infobox an geeigneten Stellen über &amp;lt;br /&amp;gt; umgebrochen wird, ist das zweite Ziel erreicht: alle Browser geben der Box eine zum Inhalt passende Breite und gleiche &amp;#039;padding&amp;#039;-Angaben bewirken einen einheitlichen Abstand zum Rahmen der Infobox.&lt;br /&gt;
&lt;br /&gt;
Alle Browser? Leider benötigt der Internet Explorer 5.x noch display:block zur Anzeige der Infobox. Dies hat jedoch in allen IEs zur Folge, daß die Infobox bereits beim wiederholten anmausen des eigentlich noch unsichtbaren Anzeigebereichs erscheint. Daher sollte diese &amp;quot;Hilfe&amp;quot; nur dem IE 5.x gegeben werden, z.B. wie hier über einen &amp;#039;conditional comment&amp;#039;. Außerdem würden standardkonforme Browser die Infobox mit display:block eine Zeilenhöhe tiefer setzen als der IE.&lt;br /&gt;
&lt;br /&gt;
Um in der Infobox Fließtext im Blocksatz anzuzeigen, ist eine Weite anzugeben, was allerdings auch display:block erfordert und zu den genannten Problemen führt. Wenn Sie dies inkauf nehmen wollen, nutzen Sie hierzu den folgenden CSS-Code: Infobox:&lt;br /&gt;
Diesmal im Blocksatz. Nicht nur der IE hat hier einen Fehler beim wiederholten Anzeigen der Infobox; Opera schneidet die Infobox leider oben und links etwas ab :-(&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox { border-bottom: 1px dashed #c30; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover { cursor:help; color:#c30; background:white; }&lt;br /&gt;
  a.infobox span { display:none; position:absolute; left:16em;&lt;br /&gt;
                   margin-top:0.1em; padding:1em; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover span { display:block; width:20em; text-align:justify;&lt;br /&gt;
                   border:1px solid #c30; color:blue; background:white; }&lt;br /&gt;
 &amp;lt;/style&amp;gt;&lt;br /&gt;
 &amp;lt;!--[if IE]&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox2:hover span { margin-top:1.5em; width:22em; }&lt;br /&gt;
 &amp;lt;/style&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Listenpunkte positionieren ==&lt;br /&gt;
Besser als mit&lt;br /&gt;
 ul {&lt;br /&gt;
 list-style-image: url(bild.png);&lt;br /&gt;
 }&lt;br /&gt;
lassen sich Listenpunkte mit&lt;br /&gt;
 ul li.mithintergrund {&lt;br /&gt;
 background: url(bild.png) 0 50%;&lt;br /&gt;
 padding-left: [Breite der Grafik + Abstand]px&lt;br /&gt;
 }&lt;br /&gt;
positionieren.&lt;br /&gt;
&lt;br /&gt;
== Flexibler 2-Spalter mit gleichlangen Spalten ==&lt;br /&gt;
Dazu verwendet man ein relativ positioniertes Hintergrundbild&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waagerechte Navigation mit einer Liste ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methode 1:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 display:inline;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methode 2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 float:left;&lt;br /&gt;
für das li Element + &amp;quot;Float nearly everything&amp;quot; Methode - d.h. das übergeordnete ul Element muß ebenfalls gefloatet werden, sonst werden die Listenpunkte nicht umschlossen.&lt;/div&gt;</summary>
		<author><name>79.240.74.209</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=CSS_-_Tipps_%26_Tricks&amp;diff=19103</id>
		<title>CSS - Tipps &amp; Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=CSS_-_Tipps_%26_Tricks&amp;diff=19103"/>
		<updated>2012-04-16T14:47:04Z</updated>

		<summary type="html">&lt;p&gt;79.240.74.209: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siehe auch &lt;br /&gt;
&lt;br /&gt;
CSS - Snippets&lt;br /&gt;
&lt;br /&gt;
CSS - Baukasten (Frameworks etc.)&lt;br /&gt;
== CSS Zugriff über Attribute (Attributselektoren)==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
input[type=&amp;quot;button&amp;quot;],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3-Spalter mit gleich langen Spalten ==&lt;br /&gt;
Normalerweise wird ein 3-Spalter mit gleichlangen Spalten simuliert, indem man im Wrapper div einen mehrfarbigen horizontalen Streifen als Hintergrundbild einfügt, das quasi die Spalten durchgängig erscheinen läßt.&lt;br /&gt;
&lt;br /&gt;
Einen anderen einfachen Weg bietet die Eigenschaft table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#content-wrap{&lt;br /&gt;
   display: table;&lt;br /&gt;
}&lt;br /&gt;
#wrap{&lt;br /&gt;
   display: table-row;&lt;br /&gt;
}&lt;br /&gt;
#left,#middle,#right,#content{&lt;br /&gt;
   display: table-cell;&lt;br /&gt;
   vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir geben dem Umgebenden Wrap die Eigenschaft table und dem nächsten umgebenden Div die Eigenschaft table-row. Alles was sich darin befindet wird dann zu table-cell. Das war es schon nur funktioniert es im IE7 noch nicht. Deshalb die passenden Hacks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* html #left,&lt;br /&gt;
* html #middle,&lt;br /&gt;
* html #right,&lt;br /&gt;
* html #content{&lt;br /&gt;
   margin-bottom: -10000px;&lt;br /&gt;
   padding-bottom: 10000px;&lt;br /&gt;
   float: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
*+html #left,&lt;br /&gt;
*+html #middle,&lt;br /&gt;
*+html #right,&lt;br /&gt;
*+html #content{&lt;br /&gt;
   height: 100%&lt;br /&gt;
   float: left;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Größenbestimmung in flexiblen Layouts ==&lt;br /&gt;
Mit ein paar Standard - Tricks bei der Größendefinition wird es wesentlich leichter in flexiblen Layouts die Exakten Werte herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem bei flexiblen Layouts ist die Vererbung der Größen. Wenn für den body z.B. 0.5em als Textgröße festgelegt werden und sich in diesem Body eine Tabelle befindet, dann ist die Größe in dieser Tabelle 0.5em von 0.5em, also 0.25em.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* {   font-size: 1em; /* do not edit */}&lt;br /&gt;
html {   font-size: 62.5%; /* do not edit */}&lt;br /&gt;
body {font-size: 1.12em; /* edit here global font size - 1em is 10px */}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durch die Definition in * und html haben wir in allen Browsern in den Unterelementen eine Standardgröße von 10px auf 1em. Diese &amp;#039;runde&amp;#039; Größe läßt sich hervoragend für die Größenbestimmungen der anderen Blöcken verwenden. Möchten wir z.B. eine Spaltenbreite von 52px in der Standardeinstellung des Browsers erreichen, dann entspricht das der Größe 5.2em. Wenn der Browser resized wird wächst so nicht nur die Schrift, sondern auch die Breite der Spalten und das genau Proportional.&lt;br /&gt;
&lt;br /&gt;
== Formulare mit CSS ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Formulare per CSS Layouten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Von Gerrit Kaiser, am 09.01.04&lt;br /&gt;
&lt;br /&gt;
15.9.06 http://www.style-sheets.de/guide/formulare/formulare_per_css_layouten&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Das Formular&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Für dieses Beispiel nehmen wir uns ein einfaches Formular, wie es auf vielen Websites anzufinden ist. Nehmen wir an, es handelt sich um ein Newsletter-Formular mit Eingabefeldern für Name, eMail-Adresse und einer Dropdown-Box zum auswählen, ob man ein- oder eingetragen werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Screenshot des Beispiel-Formulares&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Formlayout_beispiel1.png]]&lt;br /&gt;
&lt;br /&gt;
Doch diese Technik lässt sich auch auf andere Formulare übertragen. Und genau das ist der Vorteil: man hat dieselbe Struktur, dieselben Abstände. Und kann sie jederzeit ändern, in allen Formularen die das Stylesheet benutzen. Man muss nicht in den HTML-Code eingreifen dafür.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Die Struktur&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man bedenkt, was ein Formular wirklich ist, woraus es besteht und nach der Maxime vorgeht, allen unnötigen HTML-Code wegzulassen, landet man bei etwas ähnlichem wie dem hier:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;form id=&amp;quot;beispielform&amp;quot; method=&amp;quot;post&amp;quot; action=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;Name&amp;quot; name=&amp;quot;Name&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;eMail-Adresse&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;email&amp;quot; name=&amp;quot;email&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Geburtsmonat&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;select id=&amp;quot;Monat&amp;quot; name=&amp;quot;Monat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;Januar&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;Februar&amp;lt;/option&amp;gt;&lt;br /&gt;
  &amp;lt;/select&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; id=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist der optimale Code. Er besteht lediglich aus den Formularelementen und ihren Bezeichnern. Nicht nur die W3C-Richtlinien zur Barrierefreiheit gebieten das Benutzen von &amp;lt;label&amp;gt;-Tags um die Beschreibungen, deren Benutzung verbessert auch die Struktur des Codes und bietet Vorteile beim Einsatz von CSS.&lt;br /&gt;
&lt;br /&gt;
Gegenüber einer Tabellen-Lösung spart man einiges an Code, was die Seite wieder ein bisschen schneller Laden lässt und die Traffic-Kosten verringert.&lt;br /&gt;
&lt;br /&gt;
Den Formularelementen muss sowohl das name, wie auch das id-Attribut mitgegeben werden. Das erste wird gebraucht, damit überhaupt Werte durch das Formular an den Server übermittelt werden. Das zweite ist notwendig, um die Labels an ihre Formularfelder zu binden (so wird z.B. durch einen Klick auf den Label-Text das Formularfeld ausgewählt). Durch die feste ID können aber auch einzelne Felder später individuell gestaltet werden. Mit Hilfe eines ID-Selektors könnte man z.B. dem eMail-Feld einen roten Hintergrund geben um es hervorzuheben.&lt;br /&gt;
&lt;br /&gt;
Um aber Benutzern nicht CSS-Fähigen Browsern wie z.B. alten Netscape-Versionen oder PDAs nicht heilloses durcheinander zu präsentieren, müssen am Ende einer Formular-Zeile Zeilenumbrüche eingefügt werden. So erhält man sich die Abwärtskompatibilität. Diese &amp;lt;br&amp;gt;-Tags machen an dieser Stelle aber auch strukturell Sinn (im Gegensatz zu Ihrem Missbrauch als Absatz-Abstandhalter). Ausserdem spielen sie später für das CSS eine wichtige Rolle.&lt;br /&gt;
&lt;br /&gt;
Wichtiger Hinweis:Der Beispiel-HTML-Code hier ist XHTML-Code. Er benutzt die /&amp;gt; Endung bei kurzen Tags um sie abzuschließen. Wenn man diesen Code in einem HTML4-Dokument benutzen will, sollte man diese Schrägstriche entfernen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nun zum layouten...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Das wichtigste hier ist es, die mittlere &amp;quot;Linie&amp;quot; herzustellen, an der sich sowohl der Label-Text als auch die Textfelder etc. ausrichten. Das erreicht man nur, indem man diesen Elementen eine feste Breite zuweist. Dies tuen wir im folgenden Beispiel, möglich wird es durch die Benutzung der Eigenschaft display: block;.&lt;br /&gt;
&lt;br /&gt;
 label, input, select { /* Alle Labels UND Formularelemente auswählen */&lt;br /&gt;
  display: block;&lt;br /&gt;
  float: left;&lt;br /&gt;
  width: 100px; /* Breite.*/&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 form br { /* Alle Zeilenumbrüche in Formularen auswählen */&lt;br /&gt;
  clear: left; /* das floating der labels und inputs aufheben */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 input#submit { /* den Submit-Button */&lt;br /&gt;
  float: none;&lt;br /&gt;
  width: auto;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Die letzte Regel ist nötig, damit der Submit-Button nicht auf die gleiche Breite gestreckt wird wie die Textfelder. Die ideale Lösung für diesen Selektor wäre input[type=&amp;quot;submit&amp;quot;], was automatisch alle Submitbuttons auswählt. Der Internet Explorer unterstützt dies jedoch noch nicht, daher muss ein Kompromiss eingegangen werden und dem Button eine eindeutige ID vergeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Abstände wurden in em definiert, damit sie sich in Relation zur Schriftgröße verhalten. Vergrößert man die Schrift, vergrößern sich auch die Abstände entsprechend.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Letzte Schritte&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Jetzt wird noch ein wenig Abstand zwischen den Labels und den Feldern eingefügt sowie der Text der Labels rechts ausgerichtet.&lt;br /&gt;
&lt;br /&gt;
 label {&lt;br /&gt;
  text-align: right; &lt;br /&gt;
  padding-right: 1em; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Wollen wir das Formular nun noch visuell attraktiver gestalten und es dem Screenshot oben näher bringen, fügen wir noch eine Regel in das Stylesheet ein. Diese ist dann dem eigenen Site-Design anzupassen.&lt;br /&gt;
&lt;br /&gt;
 form {&lt;br /&gt;
  background: #de2;&lt;br /&gt;
  border: thin solid #ab0;&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:.5em;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Fazit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Mit der hier vorgestellten Technik sind Tabellen auch für das Layout von Formularen überflüssig. Sie bietet aber auch Abwärtskompatibilität zu nicht-CSS-Browsern, und das ohne den Gewinn an Flexibilität durch den Einsatz von CSS zu schmälern. &lt;br /&gt;
&lt;br /&gt;
==Horizontale und vertikale Zentrierung in XHTML Strict==&lt;br /&gt;
Das Attribut &amp;#039;align&amp;#039; ist vom W3C als deprecated (missbilligt) eingestuft und im aktuellen XHTML Strict nicht mehr zulässig. Die bisher übliche Anweisung &lt;br /&gt;
&amp;lt;nowiki&amp;gt; &amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
zur horizontalen Zentrierung muß also ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die horizontale Zentrierung von Inline-Elemenen und Text in Paragraphen ist einfach:&lt;br /&gt;
 &amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;Dieser Text ist zentriert.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;Dieser Text ist zentriert.&amp;lt;/p&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Block-Elemente wie z.B. &amp;lt;div&amp;gt; oder Tabellen werden zentriert, indem man ihre linken und rechten Abstände gleich groß definiert, wozu man den Wert &amp;#039;auto&amp;#039; verwenden kann:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:auto; width:250px; padding:10px; border: 1px solid black;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Dieser Block sollte zentriert sein.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Block wurde bei Ihnen nicht zentriert angezeigt? Dann verwenden Sie einen Browser, der sich nicht an den CSS-Standard hält - vermutlich den Internet Explorer (der diese Anweisung ab Version 6 zwar kennt, aber nur im &amp;quot;standards-compliant mode&amp;quot; auch umsetzt). Um diesen Browser unabhängig von der Version oder dem Modus zur Zentrierung eines Blocklevel-Elements zu veranlassen, nutzen wir einen weiteren Fehler von ihm aus; er wendet nämlich das ausschließlich für Inline-Elemente zuständige Attribut &amp;#039;text-align&amp;#039; auch auf enthaltene Blocklevel-Elemente an.&lt;br /&gt;
&lt;br /&gt;
Hierdurch werden jedoch ebenfalls alle Inline-Elemente zentriert. Um nun z.B. die Blocklevel-Elemente &amp;lt;div&amp;gt; und &amp;lt;table&amp;gt; für alle Browser zu zentrieren, Texte in den Inline-Elementen &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; und in Tabellen jedoch weiterhin linksbündig ausgerichtet zu lassen, setzen wir die folgenden Style-Angaben zwischen &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt; und &amp;lt;body&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  body { text-align:center; }&lt;br /&gt;
  div,table { margin-left:auto; margin-right:auto; }&lt;br /&gt;
  p,th,td { text-align:left; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vertikale Zentrierung===&lt;br /&gt;
&lt;br /&gt;
Die vertikale Zentrierung einer Textzeile ist einfach, wenn auch wegen der hierzu zweckentfremdeten CSS-Eigenschaft line-height nicht allgemein bekannt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:5em; text-align:center; border:1px solid black;&amp;quot;&amp;gt;Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:5em; text-align:center; border:1px solid black;&amp;quot;&amp;gt;Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blocklevel-Elemente sind schwieriger vertikal zu zentrieren, da margin:auto bei der Höhe dem Initialwert des Elements entspricht. Soweit jedoch die Höhe des Elements und seines umschließenden Elements bekannt sind, können die hierzu passenden margins angegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:300px; height:80px; border:1px solid blue;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p style=&amp;quot;width:250px; height:30px; margin:24px; border:1px margin:20px; border:5px solid black;&amp;quot;&amp;gt;&lt;br /&gt;
  zentrierter Absatz&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einen Haken hat diese Methode allerdings: der Internet Explorer zieht die Rahmenbreite fälschlich von der Größe der inneren Box ab, so daß die Zentrierung nicht ganz stimmt. Dies wird allerdings erst bei breiterem Rahmen sichtbar; testen Sie 5px.&lt;br /&gt;
&lt;br /&gt;
Eine ganze Seite sollte man nur dann innerhalb eines zentrierten Rahmens darstellen, wenn hierdurch keine seiteninternen Scrollbalken provoziert werden. Eine mögliche Anwendung wäre (wie bei mir ab einer ins Fenster passenden Inhaltshöhe von 475px) eine Startseite mit einem begrenzten Inhalt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  @media screen, projection {&lt;br /&gt;
    html { height:100%; padding:0; }&lt;br /&gt;
    body { height:100%; margin:0; padding:0; }&lt;br /&gt;
    #seite { height:80%; width:90%; position:absolute; top:10%; left:5%;&lt;br /&gt;
             overflow:auto; border:1px solid black; }&lt;br /&gt;
    #innen { padding:15px; }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;div id=&amp;quot;seite&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;innen&amp;quot;&amp;gt;&lt;br /&gt;
  Seiteninhalt  (der Innenabstand erfordert hier leider eine Schachtelung)&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine solche Definition ist meist nicht drucktauglich und sollte daher wie hier auch nur für die Bildschirmdarstellung gegeben werden.&lt;br /&gt;
&lt;br /&gt;
Um ein Element mit festen Dimensionen wie die Tafelgrafik dieser Seite zentrieren zu können, ist absolute Positionierung erforderlich. Hierbei wird z.B. die obere linke Ecke des Elements in der Mitte positioniert und das Element über negative margins um die Hälfte seiner Breite nach links und die Hälfte seiner Höhe nach oben verschoben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  #Tafelgrafik {&lt;br /&gt;
    position:absolute; top:50%; left:50%;&lt;br /&gt;
    margin-left:-49px; margin-top:-43px;&lt;br /&gt;
    width:98px; height:85px;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vertikale Zentrierung in Block Elementen mit unbekannter Höhe ===&lt;br /&gt;
Eine weitere schöne Methode funktioniert mit der Eigenschaft display: table-cell;&lt;br /&gt;
&lt;br /&gt;
Damit kann man den von der Positionierung in Tabellenzellen bekannten Eigenschaft vertical-align auch außerhalb von Tabellen nutzen. Das funktioniert bei Standardbrowsern gut. Bei einigen IE nicht. Man kann aber ein paar Hacks nutzen. Ein ausführliches Beispiel hier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
#outer {height: 400px; overflow: hidden; position: relative;}&lt;br /&gt;
#outer[id] {display: table; position: static;}&lt;br /&gt;
&lt;br /&gt;
#middle {position: absolute; top: 50%;} /* for explorer only*/&lt;br /&gt;
#middle[id] {display: table-cell; vertical-align: middle; width: 100%;}&lt;br /&gt;
&lt;br /&gt;
#inner {position: relative; top: -50%} /* for explorer only */&lt;br /&gt;
/* optional: #inner[id] {position: static;} */&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Infobox im Textbereich über CSS einblenden ==&lt;br /&gt;
aus http://www.1ngo.de/web/infobox.html 6 / 2006&lt;br /&gt;
&lt;br /&gt;
Erklärungstexte können beim Überfahren eines Elements zwar über das title-Attribut angezeigt werden, jedoch ist dies nur für kurze Texte praktikabel, da diese nicht formatiert werden können und auch nur kurz eingeblendet werden. Eine Infobox mit formatiertem Inhalt kann über CSS auch ohne Verwendung von JavaScript angezeigt werden. Jedoch ist hierzu leider ein Link erforderlich, da der Internet-Explorer die Pseudoklasse :hover nur auf dieses Element anwenden kann.&lt;br /&gt;
Die Positionierung der Infobox im Textbereich relativ zu dem aktivierenden Element ist allerdings nicht ganz einfach. Das Element relativ zu positionieren und dadurch als Basis für eine absolute Positionierung der Infobox zu nehmen scheidet aus, da dessen Position im Fließtext unbekannt ist und zu nahe am Fensterrand liegen könnte, so daß die Infobox teilweise außerhalb des sichtbaren Fensters positioniert würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox { border-bottom: 1px dashed #c30; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover { cursor:help; color:#c30; background:white; }&lt;br /&gt;
  a.infobox span { visibility:hidden; position:absolute; left:16em;&lt;br /&gt;
                   margin-top:1.5em; padding:1em; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover span { visibility:visible; border:1px solid #c30;&lt;br /&gt;
                         color:blue; background:white; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;!--[if IE 5]&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox span { display:none; }&lt;br /&gt;
  a.infobox:hover span { display:block; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;p&amp;gt;Dies können &amp;lt;a class=&amp;quot;infobox&amp;quot; href=&amp;quot;#INFO&amp;quot;&amp;gt;AFAIK&amp;lt;span&amp;gt; &amp;lt;b&amp;gt;Infobox:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
englisch für: &amp;#039;As far as I know&amp;#039; (&amp;#039;soweit ich weiß&amp;#039;)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt; alle modernen Browser interpretieren:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Unterscheidung von echten Verweisen erhält der Link die CSS-Klasse &amp;#039;infobox&amp;#039; und wird mit einem gestrichelten unterem Rand formatiert; auch der im href-Attribut angegebene Anker sollte vorhanden und sinnvoll benannt sein, da er in der Statuszeile erscheinen wird. Im Zustand :hover wird für den Link ein weißer Hintergrund und ein Fragezeichen-Cursor definiert. Beachten Sie, daß mindestens eine dieser Änderungen erforderlich ist, damit der Internet Explorer die Infobox auch anzeigt; es würde sogar ausreichen, einem vorher mit background:#fff definierten Link background:#ffffff oder background:white zuzuweisen. ;-)&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Infobox wird nach dem zu erklärenden Wort in ein weiteres inline-Element (&amp;lt;span&amp;gt;, da es kein semantisch passendes Element gibt) gesetzt und als &amp;#039;unsichtbar&amp;#039; definiert.&lt;br /&gt;
Für die über &amp;#039;:hover&amp;#039; später &amp;#039;sichtbar&amp;#039; gemachte Anzeige wird das Element absolut positioniert, wobei ich einen nicht ganz standardkonformen, aber funktionierenden Trick anwende: ich gebe über &amp;#039;left:&amp;#039; den Abstand des Textbereichs zum linken Rand (hier vom &amp;lt;body&amp;gt;, da keine weiteren positionierten Elemente vorhanden sind) an und setze die Box über &amp;#039;margin-top:&amp;#039; unter die aktuelle Zeile. Da keine Angabe zu &amp;#039;top:&amp;#039; gemacht wurde, funktioniert das erfreulicherweise auch in fast allen Browsern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Trick ist der Verzicht auf eine Breitenangabe. Eigentlich müßte die Box nun die gesamte noch verfügbare Breite einnehmen, aber nur standardkonforme Browser wie Mozilla setzen dies so um. Wenn allerdings der Text der Infobox an geeigneten Stellen über &amp;lt;br /&amp;gt; umgebrochen wird, ist das zweite Ziel erreicht: alle Browser geben der Box eine zum Inhalt passende Breite und gleiche &amp;#039;padding&amp;#039;-Angaben bewirken einen einheitlichen Abstand zum Rahmen der Infobox.&lt;br /&gt;
&lt;br /&gt;
Alle Browser? Leider benötigt der Internet Explorer 5.x noch display:block zur Anzeige der Infobox. Dies hat jedoch in allen IEs zur Folge, daß die Infobox bereits beim wiederholten anmausen des eigentlich noch unsichtbaren Anzeigebereichs erscheint. Daher sollte diese &amp;quot;Hilfe&amp;quot; nur dem IE 5.x gegeben werden, z.B. wie hier über einen &amp;#039;conditional comment&amp;#039;. Außerdem würden standardkonforme Browser die Infobox mit display:block eine Zeilenhöhe tiefer setzen als der IE.&lt;br /&gt;
&lt;br /&gt;
Um in der Infobox Fließtext im Blocksatz anzuzeigen, ist eine Weite anzugeben, was allerdings auch display:block erfordert und zu den genannten Problemen führt. Wenn Sie dies inkauf nehmen wollen, nutzen Sie hierzu den folgenden CSS-Code: Infobox:&lt;br /&gt;
Diesmal im Blocksatz. Nicht nur der IE hat hier einen Fehler beim wiederholten Anzeigen der Infobox; Opera schneidet die Infobox leider oben und links etwas ab :-(&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox { border-bottom: 1px dashed #c30; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover { cursor:help; color:#c30; background:white; }&lt;br /&gt;
  a.infobox span { display:none; position:absolute; left:16em;&lt;br /&gt;
                   margin-top:0.1em; padding:1em; text-decoration:none; }&lt;br /&gt;
  a.infobox:hover span { display:block; width:20em; text-align:justify;&lt;br /&gt;
                   border:1px solid #c30; color:blue; background:white; }&lt;br /&gt;
 &amp;lt;/style&amp;gt;&lt;br /&gt;
 &amp;lt;!--[if IE]&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  a.infobox2:hover span { margin-top:1.5em; width:22em; }&lt;br /&gt;
 &amp;lt;/style&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Listenpunkte positionieren ==&lt;br /&gt;
Besser als mit&lt;br /&gt;
 ul {&lt;br /&gt;
 list-style-image: url(bild.png);&lt;br /&gt;
 }&lt;br /&gt;
lassen sich Listenpunkte mit&lt;br /&gt;
 ul li.mithintergrund {&lt;br /&gt;
 background: url(bild.png) 0 50%;&lt;br /&gt;
 padding-left: [Breite der Grafik + Abstand]px&lt;br /&gt;
 }&lt;br /&gt;
positionieren.&lt;br /&gt;
&lt;br /&gt;
== Flexibler 2-Spalter mit gleichlangen Spalten ==&lt;br /&gt;
Dazu verwendet man ein relativ positioniertes Hintergrundbild&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waagerechte Navigation mit einer Liste ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methode 1:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 display:inline;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methode 2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 float:left;&lt;br /&gt;
für das li Element + &amp;quot;Float nearly everything&amp;quot; Methode - d.h. das übergeordnete ul Element muß ebenfalls gefloatet werden, sonst werden die Listenpunkte nicht umschlossen.&lt;/div&gt;</summary>
		<author><name>79.240.74.209</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=CSS_-_Baukasten&amp;diff=19102</id>
		<title>CSS - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=CSS_-_Baukasten&amp;diff=19102"/>
		<updated>2012-04-16T14:46:12Z</updated>

		<summary type="html">&lt;p&gt;79.240.74.209: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel des Abschnittes CSS-Baukasten ist es verschiedene CSS-Skripte vorzuhalten, die für verschiedene Projekte eingesetzt werden können.&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[CSS - Tipps &amp;amp; Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[CSS - Snippets]]&lt;br /&gt;
== Standard Layouts ==&lt;br /&gt;
[[Typo3 Standard-CSS mit YUI]]&lt;br /&gt;
&lt;br /&gt;
== CSS-Grid Systeme ==&lt;br /&gt;
=== Links ===&lt;br /&gt;
http://www.tripwiremagazine.com/2009/06/45-css-grid-systems-layout-generators-and-tutorials-that-every-designer-should-know.html&lt;br /&gt;
&lt;br /&gt;
hiervon sind die engl. Beschreibungen&lt;br /&gt;
&lt;br /&gt;
=== 1140 grid ===&lt;br /&gt;
* optimiert für 1280px&lt;br /&gt;
* skaliert bei kleineren Bildschirmen (inkl. Bilder)&lt;br /&gt;
* css3 queries sorgen dafür, daß es bei smartphones funktioniert&lt;br /&gt;
&lt;br /&gt;
http://cssgrid.net/&lt;br /&gt;
&lt;br /&gt;
=== YUI Yahoo User Interface ===&lt;br /&gt;
&lt;br /&gt;
=== 960gs ===&lt;br /&gt;
CSS Framework that worth a look. The download includes templates for Fireworks, Photoshops, Inkscape and etc. so that you can start designing your web template immediately. The PSD file that comes with guides ready save designers a lot of time.&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
Blueprint: A CSS Framework&lt;br /&gt;
&lt;br /&gt;
Blueprint includes a CSS reset that eliminates the discrepancies across different browsers. There are a lot of external tools and templates to aid your web development with Blueprint. See some live Demos&lt;br /&gt;
http://www.blueprintcss.org/tests/&lt;br /&gt;
&lt;br /&gt;
=== YAML ===&lt;br /&gt;
YAML is another bulletproof CSS Framework that has a very good documentation. You can easily get started by downloading the PDF documentation and the sample project from the official site. There are some tools that will help you on your development too. For example, the YAML Builder can visually create YAML-based CSS layouts.&lt;br /&gt;
=== Tripoli Framework ===&lt;br /&gt;
&lt;br /&gt;
Tripoli had been tested and supports virtually all available browsers, including IE5! It comes with some base files, and some plugins such as “Layout”, “Visual”, “Type”, and “Negative”. Tripoli completly resets all default browser standards and rebuilds them quietly with modern web development in mind.&lt;br /&gt;
&lt;br /&gt;
Tripoli is not a CSS framework. It doesn’t tell you how to code your web site. Instead, it forms a solid HTML rendering engine and a base for creating dynamic layouts without interfering with typographic measurements.&lt;br /&gt;
&lt;br /&gt;
=== BlueTrip ===&lt;br /&gt;
&lt;br /&gt;
BlueTrip is a full featured and beautiful framework that combines advantages from different CSS Framework. The official site has a complete Documentation and Demos.&lt;br /&gt;
&lt;br /&gt;
Blueprint: A CSS Framework&lt;br /&gt;
&lt;br /&gt;
Blueprint includes a CSS reset that eliminates the discrepancies across different browsers. There are a lot of external tools and templates to aid your web development with Blueprint. See some live Demos&lt;br /&gt;
&lt;br /&gt;
=== 960 Grid System ===&lt;br /&gt;
&lt;br /&gt;
[[960 Grid System (960gs)]]&lt;br /&gt;
&lt;br /&gt;
CSS Framework that worth a look. The download includes templates for Fireworks, Photoshops, Inkscape and etc. so that you can start designing your web template immediately. The PSD file that comes with guides ready save designers a lot of time.&lt;br /&gt;
&lt;br /&gt;
=== Tripoli Framework ===&lt;br /&gt;
&lt;br /&gt;
Tripoli had been tested and supports virtually all available browsers, including IE5! It comes with some base files, and some plugins such as “Layout”, “Visual”, “Type”, and “Negative”. Tripoli completly resets all default browser standards and rebuilds them quietly with modern web development in mind.&lt;br /&gt;
&lt;br /&gt;
Tripoli is not a CSS framework. It doesn’t tell you how to code your web site. Instead, it forms a solid HTML rendering engine and a base for creating dynamic layouts without interfering with typographic measurements.&lt;br /&gt;
&lt;br /&gt;
=== YAML – Yet Another Multicolumn Layout ===&lt;br /&gt;
&lt;br /&gt;
YAML is another bulletproof CSS Framework that has a very good documentation. You can easily get started by downloading the PDF documentation and the sample project from the official site. There are some tools that will help you on your development too. For example, the YAML Builder can visually create YAML-based CSS layouts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlueTrip ===&lt;br /&gt;
&lt;br /&gt;
BlueTrip is a full featured and beautiful framework that combines advantages from different CSS Framework. The official site has a complete Documentation and Demos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== YUI Grid CSS ===&lt;br /&gt;
&lt;br /&gt;
YUI Grids CSS support fluid-width layouts as well as fixed-width layouts. This is the advantage of YUI Grids CSS over the other CSS Frameworks. To get started with YUI Grids CSS, you can download the cheat sheet and YUI Grids Builder from the official site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elastic CSS Framework ===&lt;br /&gt;
&lt;br /&gt;
Elastic provides a declarative language to define the layout structure and behavior. This is a young framework, and the best site to demo the usage of Elastic is the official site itself. The Elastic CSS Framework has a lot of classes and helpers that will aid in the process of webdesign.&lt;br /&gt;
&lt;br /&gt;
=== SenCSS ===&lt;br /&gt;
&lt;br /&gt;
SenCSS doesn’t include a layout system, but it does provide other things such as baseline, fonts, paddings, margins and more. It comes with a commented version and a minified version which suitable for production use.&lt;br /&gt;
&lt;br /&gt;
=== The Golden Grid ===&lt;br /&gt;
&lt;br /&gt;
The Golden Grid is a web grid system. It ‘s a product of the search for the perfect modern grid system. It ‘s meant to be a CSS tool for grid based web sites.&lt;br /&gt;
&lt;br /&gt;
=== Content With Style ===&lt;br /&gt;
&lt;br /&gt;
This is a fixed width layout and the zip files contains a few layouts such as vertical navigation with 1 content column, vertical navigation with 2 content columns, and etc.&lt;br /&gt;
&lt;br /&gt;
===CSS-boilerplate===&lt;br /&gt;
&lt;br /&gt;
As one of the original authors of Blueprint CSS I’ve decided to re-factor my ideas into a stripped down framework which provides the bare essentials to begin any project. This framework will be lite and strive not to suggest un-semantic naming conventions. You’re the designer and your craft is important.&lt;br /&gt;
&lt;br /&gt;
=== Typogridphy ===&lt;br /&gt;
&lt;br /&gt;
Typogridphy is a CSS framework constructed to allow web designers and front-end developers to quickly code typograhically pleasing grid layouts.&lt;br /&gt;
&lt;br /&gt;
Based on the popular 960 Grid System, Typogridphy allows you to create grid layouts which are versatile and great looking. Typogridphy is made of fully validate, semantic and strict xHTML, and validate CSS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logicss ===&lt;br /&gt;
The Logic CSS framework is a collection of CSS files and a toolset designed to cut development times for web-standards compliant web layouts and templates.&lt;br /&gt;
&lt;br /&gt;
    * Common cross-browser rendering behavior approach (not a reset).&lt;br /&gt;
    * Beautiful font stacks.&lt;br /&gt;
    * Typography with text resizing capabilities and vertical baseline/rhythm.&lt;br /&gt;
    * Three totally flexible layout grid templates, customizable with the toolset.&lt;br /&gt;
          o Elastic layout using EMs.&lt;br /&gt;
          o Liquid layout with percentages.&lt;br /&gt;
          o Fixed layout using pixel dimensions.&lt;br /&gt;
&lt;br /&gt;
== Bausteine für die CSS - Navigation ==&lt;br /&gt;
ToDo Bilder machen&lt;br /&gt;
&lt;br /&gt;
Tipp ein umschließendes Div mit Klassen wie .nav-v, .nav-h etc. um die Code-Schnipsel leicht einbinden zu können&lt;br /&gt;
=== CSS-Navigation: Vertikale Liste ===&lt;br /&gt;
Beispiel 1 (basierend auf TYPO3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.nav-v {&lt;br /&gt;
&lt;br /&gt;
	float:left;&lt;br /&gt;
	margin:0 0 0 -50px;&lt;br /&gt;
	padding:0;&lt;br /&gt;
}&lt;br /&gt;
.nav-v #nav-sub{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.nav-v ul {&lt;br /&gt;
/*padding:0 0 10px 0;*/&lt;br /&gt;
/*ie8..*/&lt;br /&gt;
float: left;&lt;br /&gt;
width:180px;&lt;br /&gt;
background: url(&amp;quot;../media/nav-divider.png&amp;quot;);&lt;br /&gt;
background-repeat: no-repeat;&lt;br /&gt;
background-position: bottom;&lt;br /&gt;
/*padding-bottom: 1px;*/&lt;br /&gt;
font-size: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li.first{&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li {&lt;br /&gt;
	background: url(&amp;quot;../media/nav-divider.png&amp;quot;);&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	font-weight:normal;&lt;br /&gt;
	list-style-position:outside;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	/* ie8 */&lt;br /&gt;
	width:180px;&lt;br /&gt;
	float: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li.last {&lt;br /&gt;
margin-bottom: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li a {&lt;br /&gt;
display:block;&lt;br /&gt;
height: 23px;&lt;br /&gt;
line-height:23px;&lt;br /&gt;
text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.nav-v li a, &lt;br /&gt;
.nav-v li a{&lt;br /&gt;
color: #333;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li a:hover,&lt;br /&gt;
.nav-v li.cur a,&lt;br /&gt;
.nav-v li.act a&lt;br /&gt;
{&lt;br /&gt;
color: #FFF;&lt;br /&gt;
background: url(&amp;quot;../media/bg-over.png&amp;quot;);&lt;br /&gt;
background-repeat: no-repeat;&lt;br /&gt;
background-position: 0 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Level 2 */&lt;br /&gt;
.nav-v ul ul{&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.nav-v li li {&lt;br /&gt;
	display: inline;&lt;br /&gt;
	font-size:11px;&lt;br /&gt;
	/* ie8 */&lt;br /&gt;
	border-bottom: 0px; &lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
.nav-v li li a{&lt;br /&gt;
	border-top: 1px dotted #e4e5e6;&lt;br /&gt;
	background:#014674;&lt;br /&gt;
	height: 24px;&lt;br /&gt;
	line-height: 24px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li.act li a,&lt;br /&gt;
.nav-v li.cur li a{&lt;br /&gt;
	color:#e4e5e6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li li a:hover, &lt;br /&gt;
.nav-v li li.cur a:visited,&lt;br /&gt;
.nav-v li li.cur a:link&lt;br /&gt;
{&lt;br /&gt;
	color: #FFF;&lt;br /&gt;
}&lt;br /&gt;
.nav-v li li.act a:visited,&lt;br /&gt;
.nav-v li li.act a:link{&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav-v li li.act {&lt;br /&gt;
}&lt;br /&gt;
.nav-v li li.act a:link, &lt;br /&gt;
.nav-v li li.act a:visited {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== CSS-Navigation: Horizontale Liste ===&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CSS-Navi: Verschachtelte Rollover Liste===&lt;br /&gt;
aus: http://css.maxdesign.com.au/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTML&lt;br /&gt;
&amp;lt;div id=&amp;quot;navcontainer&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;navlist&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li id=&amp;quot;active&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;current&amp;quot;&amp;gt;Item one&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;subnavlist&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li id=&amp;quot;subactive&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;subcurrent&amp;quot;&amp;gt;Subitem one&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Subitem two&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Subitem three&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Subitem four&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item two&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item three&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item four&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS&lt;br /&gt;
#navcontainer { margin-left: 30px; }&lt;br /&gt;
&lt;br /&gt;
#navcontainer ul&lt;br /&gt;
{&lt;br /&gt;
margin: 0;&lt;br /&gt;
padding: 0;&lt;br /&gt;
list-style-type: none;&lt;br /&gt;
font-family: verdana, arial, Helvetica, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#navcontainer li { margin: 0 0 1px 0; }&lt;br /&gt;
&lt;br /&gt;
#navcontainer a&lt;br /&gt;
{&lt;br /&gt;
display: block;&lt;br /&gt;
padding: 5px 10px;&lt;br /&gt;
width: 140px;&lt;br /&gt;
color: #fff;&lt;br /&gt;
background-color: #036;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#navcontainer a:hover&lt;br /&gt;
{&lt;br /&gt;
color: #fff;&lt;br /&gt;
background-color: #69C;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#navcontainer ul ul li { margin: 0 0 1px 0; }&lt;br /&gt;
&lt;br /&gt;
#navcontainer ul ul a&lt;br /&gt;
{&lt;br /&gt;
display: block;&lt;br /&gt;
padding: 5px 5px 5px 30px;&lt;br /&gt;
width: 125px;&lt;br /&gt;
color: #fff;&lt;br /&gt;
background-color: #369;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#navcontainer ul ul a:hover&lt;br /&gt;
{&lt;br /&gt;
color: #fff;&lt;br /&gt;
background-color: #69C;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABOUT THE CODE&lt;br /&gt;
Some lists within the Listamatic site had to be modified so that they could work on Listamatic&amp;#039;s simple list model. When in doubt, use the external resource first, or at least compare both models to see which one suits your needs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Anlehnukng an YAML werden die Dateien möglichst Modular vorgehalten und über ein Zentrales Sylesheet eingebunden&lt;br /&gt;
&lt;br /&gt;
== Konzept-Richtlinien ==&lt;br /&gt;
ToDo - evt. verwerfen erhalten bleibt das Konzept BAukastenmäßig das CSS zu verteilen. Evt. so daß man für sich funkionsfähige Skripte macht und diese durch einen Div Wrap später auf den Bereich beschränkt wo sie eingesetzt werden.&lt;br /&gt;
=== Struktur ===&lt;br /&gt;
/main.css&lt;br /&gt;
ToDo&lt;br /&gt;
&lt;br /&gt;
== Zentrales Stylesheet base.css==&lt;br /&gt;
&lt;br /&gt;
Hier werden die verschiedenen benötigten Dateien eingebunden und einige Grundeinstellungen definiert.&lt;br /&gt;
In einer späteren Ausbaustufe werden diese evt. ebenfalls ausgelagert&lt;br /&gt;
In Typo3 Projekten könnten die CSS-Dateien auch über TypoScript eingebunden werden dann entfällt die base.css&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
### &amp;quot;CSS-Baukasten (c)2006 Stephan Schlegel&amp;quot; ###&lt;br /&gt;
### Version: 0.1&lt;br /&gt;
### Datei       : base.css&lt;br /&gt;
### Funktion    : Zentrales Stylesheet, Grundeinstellungen + Einbindung der CSS-Module&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
@import url(main/base.css);&lt;br /&gt;
@import url(mods/basemod.css);&lt;br /&gt;
@import url(mods/basemod_layout_xcol_xyz.css);&lt;br /&gt;
@import url(navi/nav_slidingdoor.css);&lt;br /&gt;
@import url(main/content.css);&lt;br /&gt;
@import url(print/print_003.css);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>79.240.74.209</name></author>
	</entry>
</feed>