📔
Tutorial The Awwwesomes – HTML & CSS
  • Wstęp
  • Jak działa internet?
  • Narzędzia dewelopera stron internetowych
  • Co zawiera strona internetowa?
  • Kod HTML
    • Podstawowe znaczniki HTML
    • Proste formularze
    • Definiowanie struktury strony
  • Kod CSS
  • Dołączanie fontów Google Fonts
  • Podstawowe reguły rządzące CSS
    • Kaskadowość i dziedziczenie w CSS
    • Złożone selektory i specyficzność
    • Modeł pudełkowy
    • Jednostki w CSS
  • Tworzenie layoutu strony
    • Elementy liniowe i blokowe oraz właściwość display
    • Opływanie elementów
    • Pozycjonujemy elementy na stronie
    • Jak wyśrodkować elementy w pionie i poziomie?
    • Umieszczamy elementy na siatce
  • Zaawansowane selektory
    • Pseudoelementy
    • Pseudoklasy CSS
  • Animacje w CSS
    • Właściwość transition
    • Przekształcanie elementów (transform)
    • Tworzenie animacji – @keyframes
  • Podstawy kodowania responsywnych stron
  • Co dalej?
  • Dodatki
    • Jak pisać czytelny kod?
    • Koderskie wyzwanie, czyli #codenovember
    • Layouty do zakodowania
    • Photoshop dla frontendowca
Powered by GitBook
On this page

Was this helpful?

  1. Tworzenie layoutu strony

Elementy liniowe i blokowe oraz właściwość display

PreviousTworzenie layoutu stronyNextOpływanie elementów

Last updated 4 years ago

Was this helpful?

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.

<div class="container">
  <div class="block"></div>
  <div class="block"></div>
  <div class="block"></div>
</div>
.block {
  width: 200px;
  height: 100px;
  margin: 10px;
  padding: 5px;
  background: salmon;
}

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 i height.

  • Nie można nadwać im górnych (margin-top), ani dolnych (margin-bottom) marginesów. Nadanie margin-left lub margin-right oraz wypełnień jednak w ich przypadku zadziała.

<p>
  Hipster cornhole celiac kickstarter asymmetrical cred meggings.
  Retro pitchfork semiotics you
  <span class="inline">probably haven't heard of them</span>,
  thundercats occupy raw denim DIY.
</p>
.inline {
  padding: 5px;
  vertical-align: super;
  color: lightblue;
}

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>.

Określamy zachowanie elementów za pomocą właściwości 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.

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.

<div class="container">
  <div class="inline-block-item"></div>
  <span class="inline-block-item"></span>
  <p class="inline-block-item"></p>
</div>
.inline-block-item {
  display: inline-block;
  width: 150px;
  height: 150px;
  margin: 5px 10px 6px 12px;
  background-color: lightblue;
}

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

✔

✔

✔

✘

✔

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. Zachowanie zostało bardzo przejrzyście wytłumaczone w .

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. . 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.

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 i sporo z nich brzmi tajemniczo nawet dla całkiem zaawansowanych deweloperów CSS.

Edytuj na CodePen
vertical-align
artykule na BitsOfCo.de
Edytuj na CodePen
replaced elements
bardzo dużo
Edytuj na CodePen