Elementy liniowe i blokowe oraz właściwość display
W poprzednich rozdziałach poznaliście dwa generyczne tagi HTML: <div>
oraz <span>
. Zapewne udało się Wam już użyć ich w swoim kodzie. Skąd wzięła się potrzeba wprowadzania aż dwóch rodzajów domyślnych znaczników? Zostało to już krótko wspomniane: <div>
odnosi się do elementów, które mają być wyświetlane jako blokowe, natomiast <span>
zwykle jest używany dla elementów liniowych.
Elementy blokowe
Elementy blokowe to elementy, które mają być wyświetlane jako bloki.
Jeśli nie określimy jego szerokości wprost, każdy blok domyślnie będzie zajmował 100% szerokości swojego rodzica.
Możemy określić jego marginesy oraz wypełnienie (padding).
Każdy element blokowy umieszczany jest pod poprzedzającym elementem, a element następny w kolejności również umieszczany jest pod spodem. Przypomina to złamanie linii w tekście.
Przykładami elementów HTML, które przez przeglądarkę są domyślnie wyświetlane jako blokowe, to wspomniany już <div>
, ale też <p>
, <header>
, <section>
, <nav>
, <footer>
, <article>
, <form>
, <ul>
, <ol>
oraz nagłówki, np. <h1>
.
Elementy liniowe
Elementy liniowe to takie, które zachowują się jak linie tekstu, czyli innymi słowy "płyną" razem z tekstem.
Nie można określić im wymiarów za pomocą właściwości
width
iheight
.Nie można nadwać im górnych (
margin-top
), ani dolnych (margin-bottom
) marginesów. Nadaniemargin-left
lubmargin-right
oraz wypełnień jednak w ich przypadku zadziała.Biorąc pod uwagę, że elementy liniowe zachowują się podobnie, jak linie tekstu, można określać ich wyrównanie w pionie za pomocą właściwości
vertical-align
. Zachowanievertical-align
zostało bardzo przejrzyście wytłumaczone w artykule na BitsOfCo.de.
Hipster cornhole celiac kickstarter asymmetrical cred meggings. Retro pitchfork semiotics you probably haven't heard of them, thundercats occupy raw denim DIY.
Przykładowe elementy liniowe, które już udało nam się poznać to <span>
oraz <a>
.
Warto w tym momencie wspomnieć, że istnieją elementy, których domyślne zachowanie nieco różni się od blokowych i liniowych. Można powiedzieć, że łączą w sobie ich wybrane cechy. Są to tzw. replaced elements. Należą do nich m.in. <img>
, <input>
oraz <select>
. Można określać ich wymiary za pomocą właściwości CSS, jednak w przeciwieństwie do elementów blokowych za żadnym z nich nie następuje złamanie linii. Zauważyliście to z pewnością podczas tworzenia formularzy w czystym HTML.
Określamy zachowanie elementów za pomocą właściwości display
display
Każdy z elementów HTML posiada swój domyślny rodzaj zachowania, jednak można w bardzo łatwy sposób go zmienić i sprawić, żeby np. <div>
zaczął zachowywać się jak element liniowy.
Jak to zrobić? Poznajmy właściwość display
, która odpowiada za określanie rodzaju sposobu wyświetlania elementu na stronie. Wartości właściwości display
jest bardzo dużo i sporo z nich brzmi tajemniczo nawet dla całkiem zaawansowanych deweloperów CSS.
Poznajmy cztery używane zdecydowanie najczęściej:
display: none
– za pomocą którego możemy ukryć nasz element.display: inline
– sprawia, że element będzie wyświetlany jako element liniowy.display: block
– element zostanie wyświetlony jako element blokowy.display: inline-block
– łączy cechy elementów liniowych i blokowych. Za jego pomocą możemy sprawić, że będzie możliwe nadanie naszemu elementowi wymiarów i wszystkich marginesów, a także nie nastąpi po nim przejście do kolejnej linii.
Poniżej podsumowujemy w tabeli cechy elementów liniowych, blokowych oraz liniowo-blokowych:
Prawe i lewe marginesy
Górne i dolne marginesy
Możliwość ustawienia width
i height
Wymuszenie złamania linii za elementem
vertical-align
inline
✔
✘
✘
✘
✔
block
✔
✔
✔
✔
✘
inline-block
✔
✔
✔
✘
✔
Last updated