SZUKANA FRAZA:

Struktura strony oparta na DIV'ach i CSS

Data publikacji: 2007-01-14
Autor: Wiklin

Wielu webmasterów buduje strukturę strony używając tabeli. Jest to złe rozwiązanie. Zmniejsza ono dostępność strony i przeczy idei semantyczności - każdy znacznik HTML ma swoje własne zastosowanie.



Akurat tabele służą do prezentacji danych tabelarycznych. Do tworzenia struktury strony odpowiednie są DIV'y - tagi wyświetlane w bloku, tzn. zajmujące 100% dostępnej szerokości i mające długość taką, jak ich zawartość.

Na samym początku rozpiszemy znaczniki składające się na stronę. Nie zapomnijcie dodać deklaracji DTD oraz znaczników html i body!

<h1>Nagłówek</h1>
<div id="text">Treść strony</div>
<div id="menu">Nawigacja strony</div>
<div id="stopka">Stopka strony</div>

Oprócz tagów DIV pojawił się tu h1, tj. nagłówek pierwszego stopnia. Możemy w nim zamieścić najważniejsze informacje dotyczące strony, np. jej nazwę.

Teraz oddzielne bloki wyświetlają się pod sobą. Jednak wystarczy kilka linijek kodu CSS, aby menu i miejsce na treść wyświetlały się obok siebie.

body {width: 600px; margin: 0 auto;}
h1 {margin: 0; background: #EEE;}
#text {width: 400px; background: #F7F7F7; float: left;}
#menu {width: 200px; background: #800; float: left;}
#stopka {background: #AAA; clear: both;}

Jest to kod CSS, który zrobi to o czym mówiłem - wyświetli menu obok treści.

Użyliśmy tu body, aby ograniczyć szerokość strony i ją wyśrodkować. margin: 0 auto; zeruje margines górny i dolny, a lewy i prawy ustawia jako auto, czyli zlicza ilość wolnego miejsca w oknie przeglądarki i dzieli je równo pomiędzy te dwie strony, dzięki czemu strona jest wyśrodkowana.

DIV'om menu i text dałem ograniczoną szerokość, aby zmieściły się w jednej linii. Spróbujcie zwiększyć szerokość menu - zjedzie wtedy pod treść.

Float: left; ustawia opływanie. Możemy dzięki niemu sprawić, aby elementy "wpuścić" w np. treść. Zastosowanie float: left; dla naszego menu i treści sprawi, że te DIVy będą się kończyć tam, gdzie są ich widzialne krawędzi i, dzięki odpowiedniej wielkości, ustawią się obok siebie.

Pozostaje jeszcze do omówienia stopka. Dostała ona clear: both;. Sprawia to, że nie może być opływana. W taki sposób nie będzie "szukała" miejsca, tylko do razu ustawi się pod DIVami z włączonym opływaniem. O to nam chodziło.

To już wszystko. Struktura strony jest gotowa! Do jej przygotowania nie wykorzystaliśmy tabel, które przecież do tego nie służą. Teraz wystarczy, że dostosujesz ten kod pod swoje potrzeby i będziesz mógł się cieszyć stroną dostępną i semantyczną.

P.S. Jeśli deklaracja DTD będzie inna niż XHTML, to strona nie zostanie wyśrodkowana w IE.