4.5 Inhaltsbereich

In diesem Kapitel möchte ich Ihnen letztendlich zeigen, wie Sie den Inhaltsbereich für diese Seite gestalten können. Mit Inhaltsbereich ist in diesem Fall alles unterhalb der Navigation gemeint, einschließlich dem Fußbereich der Seite, in dem Sie etwa ein Copyright oder weitere Links unterbringen können.

HTML

In Quellcode 1 erweitere ich den Quellcode um den Inhalts- und Fußbereich.

Quellcode 1 - HTML Im letzten Schritt erhält die Seite einen Bereich für den Inhalt und einen weiteren für Fußnoten.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
  3. <head>
  4.   <title>Webdesign Tutorial</title>
  5.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.   <meta name="Description" content="Beschreibung der Seite" />
  7.   <link rel="Stylesheet" type="text/css" href="style.css" media="screen" />
  8. </head>
  9.  
  10. <body>
  11.   <div class="root">
  12.     <a id="top" name="top"></a>
  13.     <div id="header">
  14.       <a style="background-image:url(design/webdesigntutorial.jpg);" href="http://www.webdesign-tutorial.net">Webdesign Tutorial</a>
  15.     </div>
  16.    
  17.     <div id="navi">
  18.       <span id="corner_left"></span><span id="corner_right"></span>
  19.       <ul>
  20.         <li>
  21.           <a class="navilink" href=""><span>1</span> Grundlagen</a>
  22.           <div>
  23.             <ul>
  24.               <li><a href=""><span>1.1</span> Untermenü-Element</a></li>
  25.               <li><a href=""><span>1.2</span> Untermenü-Element</a></li>
  26.             </ul>
  27.           </div>
  28.         </li>
  29.         <li>
  30.           <a class="navilink" href=""><span>2</span> Konzept</a>
  31.         </li>
  32.         <li>
  33.           <a class="navilink" href=""><span>3</span> Design</a>
  34.         </li>
  35.         <li>
  36.           <a class="navilink" href=""><span>4</span> Umsetzung</a>
  37.         </li>
  38.         <li>
  39.           <a class="navilink" href=""><span>5</span> Programmierung</a>
  40.         </li>
  41.         <li>
  42.           <a class="navilink" href=""><span>6</span> Optimierung</a>
  43.         </li>
  44.       </ul>
  45.     </div>
  46.     <div class="subnavi"></div>
  47.     <div id="content">
  48.       <h1 class="chapter"><span>1.1</span> Überschrift</h1>
  49.       <div class="options">
  50.         <ul>
  51.           <li class="lesezeichen"><a href="javascript:addBookmark()">Lesezeichen</a></li>
  52.           <li class="fehler_melden"><a href="">Fehler melden</a></li>
  53.           <li class="empfehlen"><a href="">Weiterempfehlen</a></li>
  54.         </ul>
  55.       </div>
  56.       <div class="chapter">
  57.          Dies ist der Inhalt der Webseite...
  58.       </div>
  59.       <div class="clear"></div>
  60.     </div>
  61.     <div id="content_footer">
  62.       <span id="corner_left"></span><span id="corner_right"></span>
  63.     </div>
  64.   </div>
  65. </body>
  66. </html>

Den Bereich für den Inhalt umfasst ein div-Element mit der content-Id in den Zeilen 47 bis 60. Zunächst definiere ich eine h1-Überschrift, die nach Möglichkeit auf jeder Ihrer Unterseiten vorkommen sollte, da diese eine nicht unwichtige Relevanz für Suchmaschinen wie etwa Google oder Bing hat. In diesem Fall habe ich der Überschrift noch eine Klasse zugewiesen, da diese in den Kapiteln noch einen zusätzlichen Abstand nach links erhalten soll. Dies könnte unter Umständen für Sie irrelevant sein.
Anschließend habe ich in Zeile 49 die Optionen für jedes meiner Kapitel dieser Webseite definiert. Darin befindet sich eine Liste (ul) mit drei Elementen, wobei zum Beispiel das erste Element zum Setzen eines Lesezeichens ein JavaScript aufruft (dazu in Kapitel 6 mehr) und die anderen beiden Links zunächst nicht gesetzt wurden, da diese vorerst nicht weiter erläutert werden.
In Zeile 56 folgt das eigentliche Kapitel samt Inhalt, wobei die Klassenbezeichnung für Ihre Webseite sicherlich anders lauten würde. Damit die Optionen links und der Kapitelinhalt nebeneinander dargestellt werden können, verwende ich die float-Eigenschaften in CSS. Da der Inhaltsbereich somit lediglich umfließende Elemente enthält, benötigen Sie zum Beispiel ein Element wie in Zeile 59, durch das die float-Eigenschaften gestoppt werden. Der div-Container sorgt dafür, dass der Hintergrund bis unter die beiden umfließenden Elemente dargestellt wird.
Zu guter Letzt fehlt der Fußbereich, der in den Zeilen 61 bis 63 definiert wird. Darin befinden sich beispielsweise die beiden unteren Rundungen.

CSS

Der Inhaltsbereich benötigt einige Zeilen CSS-Quellcode, den Sie Ihrer CSS-Datei hinzufügen sollten. Inwiefern die in Quellcode 2 gezeigten Definitionen auch für Sie sinnvoll sind müssten Sie selbst entscheiden. Generell lohnt es sich, jegliche Eigenschaften nachzuvollziehen, da ungenutzte CSS-Eigenschaften die Lesbarkeit der Datei verschlechtern.

Quellcode 2 - CSS Für den Inhaltsbereich sind viele, aber dennoch unkomplizierte Id- und Klassendefinitionen notwendig.
  1. #content
  2. {
  3.     background-color: #e6e6e6;
  4.     padding: 5px 30px 15px 30px;
  5. }
  6. #content li
  7. {
  8.     padding: 3px 0;
  9. }
  10. #content .chapter
  11. {
  12.     width: 800px;
  13.     float: right;
  14. }
  15. #content .options
  16. {
  17.     width: 110px;
  18.     float: left;
  19.     padding-right: 10px;
  20.     font-size: 10px;
  21. }
  22. #content .options ul
  23. {
  24.     list-style-type: none;
  25.     padding: 0;
  26. }
  27. #content .options li
  28. {
  29.     padding: 3px 0 3px 22px;
  30. }
  31. #content .options li a
  32. {
  33.     padding: 3px 0 4px 0;
  34. }
  35. #content .options .lesezeichen
  36. {
  37.     background: url(design/icon_lesezeichen.gif) no-repeat scroll 2px 2px;
  38. }
  39. #content .options .fehler_melden
  40. {
  41.     background: url(design/icon_fehler_melden.gif) no-repeat scroll 2px 2px;
  42. }
  43. #content .options .empfehlen
  44. {
  45.     background: url(design/icon_empfehlen.gif) no-repeat scroll 2px 2px;
  46. }
  47.  
  48. #content_footer
  49. {
  50.     background-color: #e6e6e6;
  51.     height: 2px;
  52. }
  53. #content_footer #corner_left
  54. {
  55.     width: 2px;
  56.     height: 2px;
  57.     background-image: url(design/content_corner_left.gif);
  58.     background-repeat: no-repeat;
  59.     float: left;
  60. }
  61. #content_footer #corner_right
  62. {
  63.     width: 2px;
  64.     height: 2px;
  65.     background-image: url(design/content_corner_right.gif);
  66.     background-repeat: no-repeat;
  67.     float: right;
  68. }
  69.  
  70. /***** allgemeine Klassen *****/
  71. h1
  72. {
  73.     color: #374d5b;
  74.     font-size: 18px;
  75.     clear: both;
  76.     margin: 0;
  77.     padding: 10px 0;
  78. }
  79. h1 span
  80. {
  81.     padding-right: 15px;
  82. }
  83. h1.chapter
  84. {
  85.     margin: 0 0 0 120px;
  86. }
  87. h2
  88. {
  89.     color: #374d5b;
  90.     font-size: 15px;
  91.     clear: both;
  92.     margin: 0;
  93.     padding: 20px 0 5px 0;
  94. }
  95. h3
  96. {
  97.     color: #374d5b;
  98.     font-size: 13px;
  99.     clear: both;
  100.     margin: 0;
  101.     padding: 20px 0 5px 0;
  102. }
  103.  
  104. ul
  105. {
  106.     margin: 0;
  107. }
  108.  
  109. .clear
  110. {
  111.     clear: both;
  112. }

Da viele der in Quellcode 2 definierten Eigenschaften recht einfach zu verstehen sein sollten, möchte ich lediglich auf ein paar davon eingehen. Dazu gehört etwa die Klassen-Definition in Zeile 10 und 15 für die Optionen und den Inhaltsbereich. Beide Klassen erhalten jeweils die float:left- bzw. float:right-Eigenschaft, was so viel bedeutet, dass das Container-Element linksbündig bzw. rechtsbündig angeordnet wird und alle darauf folgenden Elemente um es herum fließen. Damit dies funktioniert habe ich den beiden Klassen feste Breitenangaben zugewiesen. Die Angabe von #content vor den Klassen kann weggelassen werden, aber was ich Ihnen damit gerne zeigen möchte ist, dass wenn Sie Ihre Klassen so allgemein wie etwa Optionen oder Kapitel definieren, Sie diese unterschiedlich einsetzen können. In diesem Fall werden die Eigenschaften nur dann gesetzt, wenn sich beispielsweise das Element für die Optionen innerhalb der content-Id befindet. Somit können 2 gleich lautende Klassen anhand des Oberelements unterschiedliche Eigenschaften erhalten.
Diese Möglichkeit der Verschachtelung können Sie beliebig fortsetzen, wie es etwa Zeile 35 zeigt. Dort wird das Icon für den Lesezeichen-Link als Hintergrund definiert.
Ab Zeile 70 folgen ein paar allgemeine Definitionen, die für die ganze Webseite gelten sollen. Mit /* können Sie in CSS Kommentare beginnen und mit */ beenden lassen. Um den Kommentar weiter hervorzuheben können Sie auch mehrere Sternchen oder Zeilen verwenden.
Ziele 83 zeigt, dass das zuvor in Zeile 71 definierte h1-Element zusätzliche Eigenschaften erhalten kann, falls diesem eine chapter-Klasse zugewiesen wird.
Zum Schluss möchte ich Sie noch auf Zeile 106 aufmerksam machen. Dort erhält jedes Listenelement einen Außenabstand von 0 Pixeln. Null ist der einzige Wert, der keine Maßangabe erfordert. Daher sollten Sie stets anstatt 0px einfach 0 schreiben.

Ergebnis

In diesem Kapitel hat die Webseite abschließend ihren Inhaltsbereich erhalten. Dieser kann, wie beispielhaft in Abbildung 1 dargestellt, eine Überschrift und mehrere verschieden breite Inhalte haben. Abgeschlossen wird die Seite durch den Fußbereich, in dem die Rundungen der Seite definiert werden.

Abbildung 1Unter der Navigation befindet sich nun der Inhaltsbereich, der durch 2 nur minimal sichtbare Rundungen abgeschlossen wird.