Umieszczanie elementu na środku strony
Thursday, 21. June 2007, 12:14:43
div na środku strony. Jeszcze kilka lat temu najczęstszym rozwiązaniem było zastosowanie tabeli z wysokością i szerokością ustawioną na 100%. Jest to sposób najgorszy z możliwych, dzięki któremu uzyskamy niesemantyczny, zaśmiecony kod strony. Wyśrodkowanie, które mam na myśli, można osiągnąć, korzystając wyłącznie z CSS.Zacznijmy od początku. Za element, który będziemy pozycjonować, odpowiada kod:
<div id="box">This is the box.</div>
Powininen on znajdować się wewnątrz znacznika body. Nadanie identyfikatora id="box" możemy pominąć tylko w przypadku, gdy w dokumencie znajdować się będzie dokładnie jeden element div. To tyle, jeśli chodzi o HTML.
Przejdźmy do arkusza stylów. Na początek, dla świętego spokoju, zresetujmy margines (margin) i dopełnienie (padding) dla body, ustawiając dla nich wartość 0.
Nasz wycinek będzie miał wymiary 200x70 pikseli, co naturalnie definiujemy w arkuszu. Będziemy pozycjonować absolutnie, więc dla #box musimy ustawić ujemne marginesy. Lewy margines to ujemna wartość, będąca połową szerokości; górny - analogicznie, czyli połową wysokości. Otrzymujemy zatem:
div#box {
width: 200px;
height: 70px;
margin-left: -100px;
margin-top: -35px;
}
Zostało tylko właściwe centrowanie. Ta czynność jest już banalnie prosta - do stylów naszego #box dorzucamy:
position: absolute; left: 50%; top: 50%;
Teoretycznie to już koniec, ale wypadałoby zadbać o względy estetyczne
Zwykle najbardziej praktyczne będzie ustawienie text-align: center; dla wycinka. Jeśli blok posiada tylko jedną linię tekstu, warto ustawić line-height o wartości równej wysokości bloku (w naszym przypadku 70px). Wtedy tekst pojawi się dokładnie pośroku centrowanego elementu.







![Apach[PL]](http://static.myopera.com/upic/pool1/wE/dGY/D_+gRuXZ9BfTBxtpG2+DLU/498878_s.jpg)
Reinmar.B # 21. June 2007, 17:01
Wasacz # 21. June 2007, 17:08
I witamy na OC!
Anonymous # 25. June 2007, 16:04
a nie ;) ?
Wasacz # 25. June 2007, 16:46
No, sir
Anonymous # 4. January 2008, 18:09
jest zdeprecjonowany