HTML & CSS dla początkujących

HTML & CSS dla początkujących (Część 36): Model pudełkowy

Wszystkie filmy z tutorialu HTML & CSS dla początkujących

W CSS elementy są zasadniczo traktowane jako prostokątne pola lub pasy. Do opisu tych pól używane są następujące - już z pewnością znane Wam - właściwości:

width – szerokość elementu
height – wysokość elementu
left – odległość od lewej strony
right – odległość od prawej strony
top – odległość od góry
bottom – odległość od dołu
margin – margines zewnętrzny
border – obramowanie elementu
padding – wewnętrzny odstęp, czyli odległość od obramowania do zawartości elementu

Te właściwości zostały już przedstawione.

Szerokość całkowita elementu sumuje się z szerokości poszczególnych informacji. (To samo dotyczy też wysokości).

Przykład:

div#box {
   width: 100px;
   padding: 20px;     /* po 20px z lewej i prawej /
   border: 2px solid; / po 2px z lewej i prawej  /
   margin: 0 30px;    / po 30px z lewej i prawej */
 }

Jaka szerokość ma ten obszar div? Sprawdźmy poszczególne wartości:

• 100 pikseli

• 2 razy po 20 pikseli

• 2 razy po 2 piksele

• 2 razy po 30 pikseli

To daje łączną szerokość elementu wynoszącą 204 piksele.

Szerokość i wysokość elementów są określane za pomocą width i height. Jeśli te informacje nie są jawnie określone w arkuszu stylów, obowiązują następujące zasady:

• Jeśli brakuje width, pole jest szerokie jak otaczający element.

• Jeśli brakuje height, element ma wysokość równą swojej zawartości.

Przykład:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 div#box {
    border: 1px solid; /* po 2px z lewej i prawej  */
    margin: 0 30px;    /* po 30px z lewej i prawej */
    background-color:#6600CC;
 }
 </style>
 </head>
 <body>
 <div id="box">PSD-Tutorials.de</div>
 </body>
 </html>



W przeglądarce wygląda to następująco:

HTML & CSS dla początkujących (część 36): Model pudełkowy



Elementem nadrzędnym elementu div jest element body. Dlatego element faktycznie jest tak szeroki jak element body. Co do wysokości, dostosowuje się ona do zawartości.

Wszystko na zerze

Każda przeglądarka posiada wbudowany arkusz stylów. W tych arkuszach stylów zdefiniowane są pewne wartości domyślne. Dotyczy to między innymi padding i margin. Niestety te wartości domyślne różnią się w różnych przeglądarkach. Aspekt ten sprawia, że trudno jest uzyskać identyczne wyniki w poszczególnych przeglądarkach, szczególnie w związku z modelem pudełkowym. Dlatego zaleca się ustawienie odstępów, które są predefiniowane przez przeglądarki, na zero. Można to zrobić w ten sposób:

* { padding: 0; margin: 0; }



Dodaj ten wiersz na początek arkusza stylów. W ten sposób możesz teraz zacząć umieszczać pudełka w wybranych miejscach.

Typy pudełek

Sposób wyświetlania elementu i jego wpływ na inne elementy zależy od rodzaju elementu. Faktycznie specyfikacja CSS rozróżnia między elementami blokowymi a elementami liniowymi. (Istnieją inne typy, które nie są tu omawiane, ponieważ odgrywają jedynie pomocniczą rolę).

Elementy blokowe zawsze generują nową linię. Następne elementy zaczynają się również w nowej linii. Typowymi elementami blokowymi są na przykład p, div, h1, ul itp. Dla tych elementów obowiązują wcześniej wymienione właściwości marginesu zewnętrznego, marginesu wewnętrznego, wysokości, szerokości i obramowania.

<h1>Digital Painting & Matte Painting: Definiowanie kompozycji obrazu</h1>
<p>Moduł 2 - Część 2: Obraz zawsze tworzy całość. Jednak zawsze należy rozważyć, gdzie patrzący powinien się najpierw skupić.</p>

Spójrz na wynik w przeglądarce, gdzie h1 i p generują osobne linie.

HTML & CSS dla początkujących (część 36): Model pudełkowy



Elementy liniowe natomiast nie generują osobistego akapitu, lecz są wyświetlane normalnie w tekście. Typowymi elementami liniowymi są span, em, strong, img, br itp. Dla elementów liniowych nie obowiązują odstępy pionowe, oraz nie mają one określonych szerokości i wysokości.

<h1><em>Digital Painting & Matte Painting</em>: Definiowanie kompozycji obrazu</h1>

<p>Moduł 2 - Część dwa: <strong>Obraz zawsze tworzy całość</strong>. Jednak zawsze należy rozważyć, gdzie patrzący powinien się najpierw skupić.</p>

I tutaj również spojrzenie na wynik:

HTML & CSS dla początkujących (część 36): Model pudełkowy



Teraz możecie zamienić elementy blokowe na elementy inline.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Moduł 2 - Część 2: <em>Obraz zawsze jest całością</em>. Jednak zawsze trzeba zastanowić się, gdzie pierwszy kieruje wzrok obserwator.</p>
 </body>
 </html>

Sprawdźcie wynik w przeglądarce.

HTML & CSS dla początkujących (Część 36): Model pudełkowy



Kolor tła nagłówka h1 sygnalizuje, że element zajmuje całą szerokość. Szerokość orientuje się przy elementach nadrzędnych body.

Teraz pojawia się właściwość display.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 display:inline;
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Moduł 2 - Część 2: <em>Obraz zawsze jest całością</em>. Jednak zawsze trzeba zastanowić się, gdzie pierwszy kieruje wzrok obserwator.</p>
 </body>
 </html>



Za pomocą display: inline zmienia się szerokość elementu.

HTML & CSS dla początkujących (Część 36): Model pudełkowy

Faktycznie teraz szerokość elementu dostosowuje się do zawartości. Oto przegląd, które wartości można jeszcze przypisać właściwości display:

none – brak wyświetlania

block – element jest wyświetlany jako element blokowy, tworzy nową linię.

inline – element jest wyświetlany jako element inline, pojawia się w bieżącym przepływie tekstu.

inline-block – zewnętrznie wygląda jak element blokowy, dla którego można określić wysokość, szerokość i margines zewnętrzny. Każdy element pozostaje jednak w bieżącym przepływie tekstu. Jest to zatem kombinacja elementu blokowego i elementu inline.

list-item – element jest wyświetlany jako element blokowy, ale poprzedzony jest znakiem punktowym.

run-in – w zależności od zawartości tworzy element blokowy lub element inline.

table – działa jak znane z HTML element table.

inline-table – działa jak element HTML table, ale w trybie inline.

table-row – element zawiera kolejno ułożone elementy potomne. Działa jak element HTML tr.

table-cell – element reprezentuje komórkę tabeli i działa jak dwa elementy HTML th i td.

table-row-group – element zawiera grupę elementów z kolejno ułożonymi elementami potomnymi i działa jak tbody z HTML.

table-header-group – element zawiera grupę elementów z kolejno ułożonymi elementami potomnymi i działa jak thead z HTML.

table-footer-group – element zawiera grupę elementów z kolejno ułożonymi elementami potomnymi i działa jak tfoot z HTML.

table-column – służy do opisu właściwości komórek kolumny. table-column działa jak element col z HTML.

table-column-group – ten element zawiera grupę elementów, które opisują właściwości komórek kolumny. Działa jak colgroup z HTML.

table-caption – służy do zdefiniowania nagłówka tabeli. Ta właściwość działa jak element caption z HTML.

Faktycznie CSS oferuje różne opcje wyświetlania dla różnych typów elementów. Pełnią one istotną rolę w kontekście pozycjonowania elementów. O tym więcej w kolejnych samouczkach.