Bloki i elementy liniowe

Preview Mode

You're viewing this material in preview mode. Sign up to track your progress and access all features.

Bloki i elementy liniowe
In Progress

Elementy blokowe i liniowe w HTML

W HTML każdy element ma swój model wyświetlania (display mode) – domyślnie jest to block (blokowy) albo inline (liniowy). Zrozumienie różnicy między elementami blokowymi a liniowymi jest kluczowe przy tworzeniu układu strony.

Elementy blokowe

Elementy blokowe zajmują całą dostępną szerokość w swoim kontenerze (o ile nie zostanie to zmienione CSS-em) i zawsze zaczynają się od nowej linii. Ponieważ blok zajmuje całą szerokość, kolejny element blokowy pojawi się dopiero poniżej niego. Elementy blokowe mogą zawierać w sobie inne elementy (zarówno block, jak i inline).

Przykłady elementów blokowych:

  • <p> (paragraf)
  • <h1> - <h6> (nagłówki)
  • <ul> i <ol> (listy)
  • <div>, <section>, <article> i większość semantycznych elementów strukturalnych

Elementy liniowe (inline)

Elementy liniowe zajmują tylko taką szerokość, jaką potrzebuje ich zawartość i nie wymuszają nowej linii. Układają się obok siebie w ramach bieżącego wiersza, dopóki nie zabraknie miejsca. Elementy inline nie powinny zawierać elementów blokowych w środku (specyfikacja HTML tego zabrania dla poprawnej struktury), natomiast mogą zawierać tekst i inne elementy inline.

Typowe elementy liniowe:

  • <span>
  • <a> (odnośnik)
  • <strong>, <em> i inne znaczniki tekstowe
  • <img> (obraz jest traktowany jak element liniowy)
  • <input>, <label> (pola formularza)

Przykład ilustrujący różnicę

<!-- Elementy blokowe -->
<div>To jest blok DIV - pojawi się w osobnej linii i zajmie całą szerokość.</div>
<div>To jest drugi DIV - zostanie umieszczony poniżej poprzedniego.</div>

<!-- Elementy liniowe w tekście -->
<span style="background: #eef;">To jest span</span> w akapicie, a obok niego jest <span style="background: #eef;">drugi span</span>.

W powyższym przykładzie dwa elementy <div> wyświetlą się jeden pod drugim (każdy jako oddzielny blok). Natomiast elementy <span> zostały wstawione w zdaniu i pojawiają się obok siebie, nie przerywając ciągłości linii tekstu (tu dodatkowo z delikatnym kolorowym tłem, by było widać ich zakres).

<div> i <span> — podstawowe elementy kontenerowe

<div> jest elementem blokowym. Używamy go, gdy potrzebujemy podzielić stronę na sekcje lub grupy elementów w celach stylowania lub skryptowania, a nie mamy do dyspozycji bardziej semantycznego tagu (lub semantyka nie jest istotna w danym przypadku). Przykładowo, możemy otoczyć grupę obrazków w <div class="galeria">...</div>, aby potem łatwo ostylować całą galerię poprzez tę klasę. Sam <div> nie niesie żadnego znaczenia — to po prostu kontener.

<span> jest elementem liniowym. Służy do wydzielania fragmentów tekstu lub małych elementów wewnątrz innych, gdy chcemy zmienić ich styl lub wyróżnić je za pomocą JavaScript, a nie istnieje specjalny semantyczny element dla tego fragmentu. Na przykład, jeśli w akapicie chcemy jednemu słowu nadać inny kolor, możemy to słowo objąć <span style="color: red;">...</span>. Podobnie jak <div>, <span> sam w sobie nic nie znaczy dla treści — to po prostu kontener inline.

Podsumowanie

Elementy blokowe to klocki budujące strukturę w pionie (jeden pod drugim), a elementy liniowe to elementy wpinające się w linię tekstu lub innego otoczenia. W kolejnych lekcjach, gdy zaczniemy stosować CSS, zobaczymy też, jak można zmieniać zachowanie elementów (np. sprawić, by element blokowy zachowywał się jak inline i odwrotnie) za pomocą właściwości display.