﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>3-spaltiges flexibles Layout</title>
<style type="text/css">
<!--
body {
	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
	background-color: #4E5869;
	margin: 0;
	padding: 0;
	color: #000;
}

/* ~~ Element-/Tag-Selektoren ~~ */
ul, ol, dl { /* Aufgrund von Abweichungen zwischen verschiedenen Browsern empfiehlt es sich, die Auffüllung und den Rand in Listen auf 0 einzustellen. Zu Konsistenzzwecken können Sie die gewünschten Werte entweder hier oder in den enthaltenen Listenelementen (LI, DT, DD) eingeben. Beachten Sie, dass die hier eingegebenen Werte hierarchisch auf die .nav-Liste angewendet werden, sofern Sie keinen spezifischeren Selektor festlegen. */
	padding: 0;
	margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
	margin-top: 0;	 /* Durch Verschieben des oberen Rands wird das Problem behoben, dass Ränder aus dem zugehörigen div-Tag geraten können. Der übrig gebliebene untere Rand hält ihn getrennt von allen folgenden Elementen. */
	padding-right: 15px;
	padding-left: 15px; /* Durch Hinzufügen der Auffüllung zu den Seiten der Elemente innerhalb der div-Tags anstelle der div-Tags selbst entfallen jegliche Box-Modell-Berechnungen. Alternativ kann auch ein verschachteltes div-Tag mit seitlicher Auffüllung verwendet werden. */
}
a img { /* Dieser Selektor entfernt den standardmäßigen blauen Rahmen, der in einigen Browsern um ein Bild angezeigt wird, wenn es von einem Hyperlink umschlossen ist. */
	border: none;
}

/* ~~ Die Reihenfolge der Stildefinitionen für die Hyperlinks der Site, einschließlich der Gruppe der Selektoren zum Erzeugen des Hover-Effekts, muss erhalten bleiben. ~~ */
a:link {
	color:#414958;
	text-decoration: underline; /* Sofern Ihre Hyperlinks nicht besonders hervorgehoben werden sollen, empfiehlt es sich, zur schnellen visuellen Erkennung Unterstreichungen zu verwenden. */
}
a:visited {
	color: #4E5869;
	text-decoration: underline;
}
a:hover, a:active, a:focus { /* Durch diese Gruppe von Selektoren wird bei Verwendung der Tastatur der gleiche Hover-Effekt wie beim Verwenden der Maus erzielt. */
	text-decoration: none;
}

/* ~~ Dieser Container umschließt alle anderen div-Tags und weist ihnen ihre als Prozentwert definierte Breite zu. ~~ */
.container {
	width: 80%;
	max-width: 1260px;/* Es empfiehlt sich die Eingabe einer maximalen Breite (Eigenschaft max-width), damit dieses Layout auf einem großen Bildschirm nicht zu breit angezeigt wird. Dadurch bleibt die Zeilenlänge besser lesbar. IE6 berücksichtigt diese Deklaration nicht. */
	min-width: 780px;/* Es empfiehlt sich die Eingabe einer minimalen Breite (Eigenschaft min-width), damit dieses Layout nicht zu schmal angezeigt wird. Dadurch bleibt die Zeilenlänge in den seitlichen Spalten besser lesbar. IE6 berücksichtigt diese Deklaration nicht. */
	background-color: #FFF;
	margin: 0 auto; /* Der mit der Breite gekoppelte automatische Wert an den Seiten zentriert das Layout. Er ist nicht erforderlich, wenn Sie die Breite von .container auf 100 Prozent setzen. */
	overflow: hidden; /* Diese Deklaration bewirkt, dass .container alle enthaltenen fließenden Spalten löscht. */
}

/* ~~ Dies sind die Spalten für das Layout. ~~ 

1) Eine Auffüllung wird nur oben und/oder unten in den div-Tags positioniert. Die Elemente innerhalb dieser div-Tags verfügen über eine seitliche Auffüllung. Dadurch müssen Sie keine Box-Modell-Berechnungen durchführen. Zu beachten: Wenn Sie dem div-Tag eine seitliche Auffüllung oder einen Rahmen hinzufügen, werden diese zu der festgelegten Breite addiert und ergeben die *gesamte* Breite. Sie können auch die Auffüllung für das Element im div-Tag entfernen und ein zweites div-Tag ohne Breite und mit der gewünschten Auffüllung im ersten div-Tag einfügen.

2) Für die Spalten wurde kein Rand angegeben, da es sich um fließende Spalten handelt. Wenn Sie unbedingt einen Rand hinzufügen möchten, platzieren Sie ihn nicht auf der Seite in Flussrichtung (z. B. ein rechter Rand in einem div-Tag, das so festgelegt ist, dass das Element nach rechts fließt). In vielen Fällen kann stattdessen eine Auffüllung verwendet werden. Bei div-Tags, bei denen diese Regel gebrochen werden muss, sollten Sie der Regel des div-Tags eine display:inline-Deklaration hinzufügen, um das Problem zu umgehen, dass in einigen Versionen von Internet Explorer der Rand doppelt angezeigt wird.

3) Da Klassen in einem Dokument mehrmals verwendet werden können (und zudem auf ein Element mehrere Klassen angewendet werden können), wurden den Spalten Klassennamen statt IDs zugewiesen. Beispielsweise können zwei div-Tags für eine Seitenleiste bei Bedarf gestapelt werden. Diese div-Tags können problemlos in IDs geändert werden, solange Sie sie nur einmal pro Dokument verwenden.

4) Wenn Sie die Navigation auf der rechten statt auf der linken Seite platzieren möchten, lassen Sie diese Spalten einfach in die andere Richtung fließen (alle nach rechts anstatt alle nach links). Die Spalten werden dann in umgekehrter Reihenfolge dargestellt. Die div-Tags in der HTML-Quelle müssen nicht verschoben werden.

*/
.sidebar1 {
	float: left;
	width: 25%;
	background-color: #93A5C4;
	padding-bottom: 10px;
}
.content {
	padding: 10px 0;
	width: 55%;
	float: left;
}
.sidebar2 {
	float: left;
	width: 20%;
	background-color: #93A5C4;
	padding: 10px 0;
}

/* ~~ Dieser gruppierte Selektor gibt die Listen im .content-Bereich an. ~~ */
.content ul, .content ol { 
	padding: 0 15px 15px 40px; /* Diese Auffüllung setzt die rechte Auffüllung in der obigen Regel für Überschriften und Absätze fort. Die Auffüllung wurde unten für den Abstand zwischen anderen Elementen in den Listen und links für den Einzug platziert. Sie können die Werte nach Bedarf ändern. */
}

/* ~~ Stile für die Navigationslisten (können entfernt werden, wenn Sie ein vordefiniertes Ausklappmenü wie Spry verwenden) ~~ */
ul.nav {
	list-style: none; /* Hiermit wird die Listenmarkierung entfernt. */
	border-top: 1px solid #666; /* Hiermit wird der obere Rand für die Hyperlinks erstellt. Alle anderen werden mit einem unteren Rand im LI-Element platziert. */
	margin-bottom: 15px; /* Hiermit wird der Abstand zwischen den Navigationselementen und den Inhalten unten erstellt. */
}
ul.nav li {
	border-bottom: 1px solid #666; /* Hiermit wird die Trennung der Schaltflächen erstellt. */
}
ul.nav a, ul.nav a:visited { /* Durch Gruppieren dieser Selektoren wird sichergestellt, dass die Hyperlinks auch nach dem Aufrufen die Form einer Schaltfläche beibehalten. */
	padding: 5px 5px 5px 15px;
	display: block; /* Hiermit werden die Blockeigenschaften für den Hyperlink angegeben, sodass das gesamte umschließende LI-Element aufgefüllt wird. Hiermit wird angegeben, dass der gesamte Bereich auf einen Mausklick reagiert. */
	text-decoration: none;
	background-color: #8090AB;
	color: #000;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* Hiermit wird der Hintergrund und die Textfarbe bei der Navigation mit der Maus und der Tastatur geändert. */
	background-color: #6F7D94;
	color: #FFF;
}

/* ~~ Verschiedene float/clear-Klassen ~~ */
.fltrt {  /* Mit dieser Klasse können Sie ein Element auf der Seite nach rechts fließen lassen. Das fließende Element muss vor dem Element stehen, neben dem es auf der Seite erscheinen soll. */
	float: right;
	margin-left: 8px;
}
.fltlft { /* Mit dieser Klasse können Sie ein Element auf der Seite nach links fließen lassen. Das fließende Element muss vor dem Element stehen, neben dem es auf der Seite erscheinen soll. */
	float: left;
	margin-right: 8px;
}
.clearfloat { /* Diese Klasse kann in einem <br />-Tag oder leeren div-Tag als letztes Element nach dem letzten fließenden div-Tag (im #container) platziert werden, wenn overflow:hidden im .container entfernt wird. */
	clear:both;
	height:0;
	font-size: 1px;
	line-height: 0px;
}
-->
</style>
<!--[if lte IE 7]>
<style>
.content { margin-right: -1px; } /* Dieser negative Rand mit 1 Pixel hat in jeder Spalte in diesem Layout die gleiche korrigierende Auswirkung. */
ul.nav a { zoom: 1; }  /* Mit der zoom-Eigenschaft erhält IE den Auslöser hasLayout, der erforderlich ist, um den zusätzlichen Leerraum zwischen den Hyperlinks zu korrigieren. */
</style>
<![endif]-->
</head>
<body>
<div class="container">
  <div class="sidebar1">
    <ul class="nav">
      <li><a href="#">Hyperlink 1</a></li>
      <li><a href="#">Hyperlink 2</a></li>
      <li><a href="#">Hyperlink 3</a></li>
      <li><a href="#">Hyperlink 4</a></li>
    </ul>
    <p> Die oben stehenden Hyperlinks stellen eine allgemeine Navigationsstruktur dar, bei der eine ungeordnete Liste mit CSS formatiert wird. Verwenden Sie diese Navigationsstruktur als Ausgangspunkt und ändern Sie die Eigenschaften, um Ihre Website nach Ihren Vorstellungen zu gestalten. Wenn Sie Ausklappmenüs verwenden möchten, erstellen Sie ein eigenes Menü auf Grundlage eines Spry-Menüs, eines Menü-Widgets aus Adobe Exchange oder einer Vielzahl anderer JavaScript- oder CSS-Lösungen.</p>
    <p>Wenn sich die Navigationsstruktur am oberen Rand befinden soll, verschieben Sie ul.nav an den oberen Rand der Seite und erstellen Sie die Formatierung neu.</p>
    <!-- end .sidebar1 --></div>
  <div class="content">
    <h1>Anweisungen</h1>
    <p>Beachten Sie, dass der CSS-Code für diese Layouts mit vielen Kommentaren versehen ist. Wenn Sie vor allem in der Entwurfsansicht arbeiten, werfen Sie einen Blick auf den Code, um Tipps zum Verwenden von CSS für die fließenden Layouts zu erhalten. Sie können diese Kommentare vor dem Veröffentlichen Ihrer Site löschen. Weitere Informationen zu den in diesen CSS-Layouts verwendeten Methoden finden Sie in diesem Artikel im Adobe Developer Center - <a href="http://www.adobe.com/go/adc_css_layouts">http://www.adobe.com/go/adc_css_layouts</a>.</p>
    <h2>Clearing-Methode</h2>
    <p>Da alle Spalten fließend gestaltet sind, wird bei diesem Layout die Deklaration overflow:hidden für .container verwendet. Diese Clearing-Methode bewirkt, dass .container das Ende der Spalten erkennt, damit alle in .container platzierten Rahmen oder Hintergrundfarben angezeigt werden. Ein großes Element, das über .container hinausragt, wird abgeschnitten angezeigt. Sie können darüber hinaus keine negativen Ränder oder absoluten Positionen mit negativen Werten verwenden, um Elemente aus .container zu ziehen, da diese auch in diesem Fall nicht außerhalb von .container angezeigt werden.</p>
    <p>Wenn Sie diese Eigenschaften unbedingt verwenden möchten, müssen Sie auf eine andere Clearing-Methode zurückgreifen. Am zuverlässigsten ist das Hinzufügen eines &lt;br class=&quot;clearfloat&quot; /&gt;- oder &lt;div  class=&quot;clearfloat&quot;&gt;&lt;/div&gt;-Tags nach der letzten fließenden Spalte (jedoch vor dem Ende von .container). Dadurch wird der gleiche Clearing-Effekt erzielt.</p>
    <h3>Fußzeile</h3>
    <p>Durch Hinzufügen einer Fußzeile nach den Spalten, jedoch immer noch innerhalb von .container, schlägt die Clearing-Methode mit der Anweisung overflow:hidden fehl. Sie können einen .footer in einem zweiten .container außerhalb des ersten platzieren, ohne dass dies negative Auswirkungen hat. Am einfachsten ist es unter Umständen, ein Layout mit Kopf- und Fußzeilen zu erstellen und die Kopfzeile zu entfernen, um die Clearing-Methoden in diesem Layouttyp zu verwenden.</p>
    <h4>Bedingte Kommentare für Internet Explorer</h4>
    <p>Diese flexiblen Layouts enthalten einen bedingten Kommentar für Internet Explorer zum Beheben von zwei Problemen. </p>
    <ol>
      <li>In den verschiedenen Browsern werden die Größenangaben der div-Tags in den auf Prozentwerten basierenden Layouts unterschiedlich gerundet. Bei der Darstellung eines Werts wie 144,5 Pixel oder 564,5 Pixel in einem Browser muss dieser Wert auf die nächste Ganzzahl gerundet werden. Safari und Opera runden den Wert ab, Internet Explorer rundet auf und Firefox rundet um eine Spalte auf und um eine Spalte ab und füllt den Container vollständig auf. Dies kann zu Uneinheitlichkeiten in einigen Layouts führen. In diesem bedingten Kommentar für Internet Explorer ist ein negativer Rand mit 1 Pixel festgelegt, um das Problem in IE zu beheben. Sie können diesen Rand in jeder Spalte (rechts oder links) einfügen, um das Layout entsprechend anzupassen.</li>
      <li>Dem Anker wurde innerhalb der Navigationsliste die zoom-Eigenschaft hinzugefügt, da in IE6 und IE7 in einigen Fällen zusätzlicher Leerraum dargestellt wird. Mit der zoom-Eigenschaft erhält IE die proprietäre Eigenschaft hasLayout zum Beheben dieses Problems.</li>
    </ol>
    <!-- end .content --></div>
  <div class="sidebar2">
    <h4>Hintergründe</h4>
    <p>Die Hintergrundfarbe für jedes div-Tag wird grundsätzlich nur für die Länge des Inhalts angezeigt. Wenn Sie statt einer Hintergrundfarbe eine Trennlinie verwenden möchten, fügen Sie an der Seite des div-Tags .content einen Rahmen hinzu (jedoch nur, wenn das Tag stets mehr Inhalt enthält).</p>
    <!-- end .sidebar2 --></div>
  <!-- end .container --></div>
</body>
</html>
