Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs tworzenia stron - HTML + CSS

Zrozumienie modelu pudełkowego (box model)

Zrozumienie modelu pudełkowego jest kluczowe dla każdego, kto chce efektywnie projektować i stylować strony WWW. Dzięki niemu będziesz mógł kontrolować przestrzeń wokół elementów, zarządzać marginesami, obramowaniami i wypełnieniami, co pozwoli Ci tworzyć bardziej złożone i estetyczne układy.

 

Co to jest model pudełkowy?

W CSS każdy element na stronie jest traktowany jak prostokątne pudełko. Model pudełkowy opisuje, z czego składa się to pudełko i jak różne właściwości wpływają na jego rozmiar oraz położenie względem innych elementów.

Element w modelu pudełkowym składa się z następujących warstw:

    1. Content (treść): Zawartość elementu, np. tekst, obraz.
    2. Padding (wypełnienie): Przestrzeń między treścią a obramowaniem.
    3. Border (obramowanie): Linia otaczająca wypełnienie i treść.
    4. Margin (margines): Przestrzeń na zewnątrz obramowania, oddzielająca element od innych.

 

Składniki modelu pudełkowego

1. Content (treść)

Jest to rzeczywista zawartość elementu, np. tekst lub obraz.

Przykład:

<div class="pudelko">To jest treść pudełka.</div>

 

2. Padding (wypełnienie)

padding to przestrzeń między treścią a obramowaniem elementu.

Właściwości:

    • padding-top
    • padding-right
    • padding-bottom
    • padding-left
    • Skrócona składnia: padding

Przykład:

.pudelko {
  padding: 20px;
}

 

3. Border (obramowanie)

border to linia otaczająca wypełnienie i treść.

Właściwości:

    • border-width
    • border-style
    • border-color
    • Skrócona składnia: border

Przykład:

.pudelko {
  border: 2px solid #333;
}

 

4. Margin (margines)

margin to przestrzeń na zewnątrz obramowania, oddzielająca element od innych.

Właściwości:

    • margin-top
    • margin-right
    • margin-bottom
    • margin-left
    • Skrócona składnia: margin

Przykład:

.pudelko {
  margin: 10px;
}

 

 

Obliczanie rozmiarów elementu

Domyślnie, całkowita szerokość i wysokość elementu to suma:

    • Szerokość całkowita:
szerokość elementu = szerokość treści (width)
                    + wypełnienie lewe (padding-left)
                    + wypełnienie prawe (padding-right)
                    + obramowanie lewe (border-left)
                    + obramowanie prawe (border-right)

 

    • Wysokość całkowita:
wysokość elementu = wysokość treści (height)
                    + wypełnienie górne (padding-top)
                    + wypełnienie dolne (padding-bottom)
                    + obramowanie górne (border-top)
                    + obramowanie dolne (border-bottom)

 

Przykład:

.pudelko {
  width: 200px;
  height: 100px;
  padding: 10px;
  border: 2px solid #000;
  margin: 20px;
}

 

Obliczenia:

    • Szerokość całkowita:
200px (width)
+ 10px (padding-left)
+ 10px (padding-right)
+ 2px (border-left)
+ 2px (border-right)
= 224px

 

    • Wysokość całkowita:
100px (height)
+ 10px (padding-top)
+ 10px (padding-bottom)
+ 2px (border-top)
+ 2px (border-bottom)
= 124px

 

 

Zmiana modelu pudełkowego za pomocą box-sizing

Domyślnie, CSS stosuje model pudełkowy typu content-box, gdzie wymiary width i height odnoszą się tylko do treści, a wypełnienie i obramowanie są dodawane do tych wartości.

Możemy zmienić to zachowanie, stosując box-sizing: border-box, co sprawi, że width i height będą obejmować również wypełnienie i obramowanie.

Przykład:

.pudelko {
  width: 200px;
  height: 100px;
  padding: 10px;
  border: 2px solid #000;
  box-sizing: border-box;
}

 

Obliczenia:

    • Szerokość całkowita:
200px (width) – wartość ta obejmuje treść, wypełnienie i obramowanie.

 

    • Wysokość całkowita:
100px (height) – również obejmuje treść, wypełnienie i obramowanie.

 

Dlaczego warto używać box-sizing: border-box?

    • Łatwiejsze zarządzanie rozmiarami: Nie musisz ręcznie obliczać całkowitej szerokości i wysokości.
    • Spójność: Elementy zachowują się bardziej przewidywalnie podczas zmiany wypełnienia lub obramowania.
    • Uproszczenie układów: Szczególnie przydatne w responsywnym designie.

Globalne ustawienie box-sizing:

Aby zastosować box-sizing: border-box do wszystkich elementów, możemy użyć:

* {
  box-sizing: border-box;
}

 

 

Praktyczne przykłady

1. Proste pudełko z obramowaniem i wypełnieniem

HTML:

<div class="pudelko">
  To jest treść pudełka.
</div>

 

CSS:

.pudelko {
  width: 300px;
  padding: 20px;
  border: 5px solid #3498db;
  background-color: #ecf0f1;
  margin: 30px auto;
  box-sizing: border-box;
}

 

Wyjaśnienie:

    • Ustawiliśmy szerokość pudełka na 300px, która obejmuje wypełnienie i obramowanie dzięki box-sizing: border-box.
    • Pudełko jest wyśrodkowane dzięki margin: 30px auto;.

2. Dwa pudełka obok siebie

HTML:

<div class="container">
  <div class="box">Pudełko 1</div>
  <div class="box">Pudełko 2</div>
</div>

 

CSS:

.container {
  display: flex;
  gap: 20px;
}

.box {
  flex: 1;
  padding: 20px;
  border: 2px solid #2ecc71;
  background-color: #bdc3c7;
  box-sizing: border-box;
}

 

Wyjaśnienie:

    • Używamy display: flex; na kontenerze, aby ustawić pudełka obok siebie.
    • gap: 20px; dodaje odstęp między pudełkami.
    • flex: 1; sprawia, że pudełka zajmują równą szerokość.

 

Dobre praktyki

    • Używaj box-sizing: border-box: Ułatwia zarządzanie rozmiarami elementów i tworzenie układów.
    • Unikaj negatywnych wartości margin i padding: Mogą prowadzić do nieprzewidywalnych rezultatów.
    • Stosuj skróconą składnię: Ułatwia to czytelność kodu.

Przykład:

/* Zamiast */
margin-top: 10px;
margin-right: 15px;
margin-bottom: 20px;
margin-left: 15px;

/* Użyj */
margin: 10px 15px 20px 15px;

 

    • Pamiętaj o jednostkach miary: Zawsze podawaj jednostki przy wartościach liczbowych.

 

Częste błędy i jak ich unikać

    • Nieuwzględnienie wypełnienia i obramowania w rozmiarach elementu: Bez box-sizing: border-box wymiary width i height odnoszą się tylko do treści.

Rozwiązanie: Używaj box-sizing: border-box lub dokładnie obliczaj całkowite wymiary.

    • Zapominanie o skróconej składni: Może prowadzić do nadpisywania niektórych wartości.

Przykład:

/* Jeśli najpierw ustawisz */
padding-top: 10px;
padding-bottom: 10px;

/* A potem użyjesz skróconej składni */
padding: 20px;

/* To wcześniejsze wartości zostaną nadpisane */

 

    • Brak spójności w jednostkach miary: Mieszanie jednostek (np. px z em) może prowadzić do nieprzewidywalnych rezultatów.
    • Nieprawidłowe użycie marginesów automatycznych: margin: auto; działa poprawnie tylko w określonych warunkach (np. gdy element ma określoną szerokość i jest elementem blokowym).

 

Podsumowanie

W tej lekcji nauczyliśmy się:

    • Czym jest model pudełkowy (box model) i jakie są jego składniki: treść, wypełnienie, obramowanie, margines.
    • Jak obliczać całkowite wymiary elementów uwzględniając wszystkie warstwy modelu pudełkowego.
    • Jak zmieniać domyślne zachowanie modelu pudełkowego za pomocą box-sizing: border-box.
    • Jak stosować właściwości margin, padding, border w praktyce.
    • Dobre praktyki w korzystaniu z modelu pudełkowego i jak unikać typowych błędów.

Zrozumienie modelu pudełkowego jest kluczowe dla tworzenia efektywnych i estetycznych układów stron internetowych. Dzięki niemu możesz precyzyjnie kontrolować przestrzeń wokół elementów i tworzyć responsywne projekty.

 

Zadania do samodzielnego wykonania

    1. Stwórz kartę produktu:

      • Utwórz element zawierający obrazek produktu, nazwę i cenę.
      • Użyj modelu pudełkowego, aby dodać wypełnienie, obramowanie i marginesy.
      • Zastosuj box-sizing: border-box i obserwuj, jak wpływa to na wymiary elementu.
    2. Zaprojektuj prosty układ strony:

      • Stwórz nagłówek, sekcję z treścią i stopkę.
      • Użyj marginesów i wypełnień, aby dodać odstępy między sekcjami.
      • Sprawdź, jak zmiana wartości padding i margin wpływa na układ strony.
    3. Eksperymentuj z obramowaniami:

      • Stwórz element z różnymi stylami obramowań (dotted, dashed, double, groove).
      • Zmień kolor i szerokość obramowań.
      • Połącz różne style obramowań na jednym elemencie (np. border-top inny niż border-bottom).

 

Ciekawostka

Czy wiesz, że CSS Box Model był źródłem wielu problemów kompatybilności między przeglądarkami w początkowych latach rozwoju CSS? Internet Explorer wprowadził własną interpretację modelu pudełkowego, co powodowało, że strony wyglądały inaczej w różnych przeglądarkach. Dopiero wprowadzenie box-sizing i standaryzacja specyfikacji CSS pomogły rozwiązać te problemy.

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się