Menu

Znacznik div w HTML: czym jest, div class, układ i style

Znacznik <div> to ogólny kontener blokowy bez własnego znaczenia. Dowiedz się, jak grupować nim treść, stylizować go przez klasę, budować układy z divów i flexboksa i kiedy lepszy jest znacznik semantyczny lub przycisk.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Do czego służy znacznik div

<div> (skrót od division, czyli podział) to ogólny kontener. Grupuje elementy, żeby można je było stylizować, pozycjonować lub obsługiwać skryptem jako jedną całość. Sam z siebie nie wygląda jak nic: bez marginesu, bez obramowania, bez specjalnej czcionki. To element blokowy, więc zaczyna się w nowej linii i rozciąga na całą dostępną szerokość.

Usuń linię z border w stylach, a divy staną się niewidoczne: tak wygląda div domyślnie. Wszystko, co robi wizualnie, pochodzi z CSS.

div class i id

Div zwykle dostaje class, czyli nazwę, w którą celuje twój CSS. Divy z tą samą klasą mają ten sam styl:

.card stylizuje oba pudełka, a .card.highlight dodaje niebieskie obramowanie divowi, który ma obie klasy. Używaj id, gdy musisz wskazać jeden konkretny div, na przykład jako cel linku (href="#pro"). Strona o atrybutach szczegółowo porównuje class i id.

Divy obok siebie

Divy są blokami, więc układają się jeden pod drugim. Aby ustawić je w rzędzie, zrób z ich rodzica kontener flex:

display: flex na .row ustawia dzieci w linii, gap rozsuwa je, a wartości flex dzielą szerokość (tutaj 1 : 2 : 1). Ten wzorzec rodzica i dzieci to najczęstsze użycie divów na prawdziwych stronach. O wyśrodkowaniu diva przeczytasz na stronie jak wyśrodkować diva.

Zagnieżdżanie divów

Divy mogą zawierać inne divy na dowolnej głębokości. Każdy poziom to pudełko w pudełku, co widać, gdy każdemu divowi nadasz obramowanie i trochę paddingu:

Zagnieżdżaj tak płytko, jak pozwala układ. Każdy dodatkowy wrapper to jeszcze jedno pudełko do przeanalizowania, gdy margines lub szerokość nie działa tak, jak oczekujesz.

div czy znacznik semantyczny?

Div nic nie mówi o swojej treści. HTML ma znaczniki, które tak samo grupują, a przy tym mówią, czym jest grupa:

ZamiastUżyjDo czego
<div class="header"><header>Wstęp lub górny pasek strony albo sekcji
<div class="nav"><nav>Blok linków nawigacyjnych
<div class="main"><main>Główna treść, raz na stronę
<div class="post"><article>Samodzielny element: wpis, komentarz, karta produktu
<div class="footer"><footer>Stopka strony lub sekcji

Te znaczniki wyglądają dokładnie jak div, dopóki ich nie wystylizujesz, ale czytniki ekranu je ogłaszają i pozwalają między nimi przeskakiwać, a wyszukiwarki odczytują strukturę. Diva używaj do pudełek, które istnieją tylko dla układu lub stylu, jak wrapper .row powyżej. Pełny zestaw opisuje strona semantyczny HTML.

Div to nie przycisk

Div z obsługą kliknięcia wygląda na klikalny dla użytkownika myszy, ale użytkownik klawiatury nie dojdzie do niego klawiszem Tab ani nie naciśnie go Enterem, a czytnik ekranu nie ogłosi go jako przycisku:

Do akcji używaj <button>, a do nawigacji <a href>. Oba mogą przyjąć fokus i od razu działają z klawiaturą.

Częste błędy

  • Div wewnątrz <p>. Akapit zamyka się przed divem. Zrób z diva element zewnętrzny albo użyj <span> w akapicie.
  • Zupa z divów. Strona zbudowana z samych divów nie ma struktury dla czytników ekranu. Zamień divy na <header>, <nav>, <main> i <footer> tam, gdzie pasują.
  • Klikalne divy. Zamiast nich użyj <button> lub linku.
  • Oczekiwanie, że div będzie tak szeroki jak jego tekst. Div zajmuje całą szerokość. Użyj display: inline-block, width: fit-content albo <span>, jeśli ma się zwężać.
  • To samo id na kilku divach. Do wszystkiego, co się powtarza, używaj klasy.

Najczęściej zadawane pytania

Co to jest div w HTML?

<div> to ogólny kontener. Grupuje inne elementy, żeby można je było razem stylizować lub pozycjonować, i nie ma własnego znaczenia: przeglądarki wyświetlają go jako blok, który zaczyna się w nowej linii i zajmuje całą dostępną szerokość.

Co oznacza div class?

<div class="card"> to div z atrybutem class. Klasa to nazwa, której CSS używa do stylowania (.card { ... }), a JavaScript do wyszukiwania. Wiele divów może mieć tę samą klasę, a jeden div może mieć kilka: class="card featured".

Jak ustawić dwa divy obok siebie?

Otocz je nadrzędnym divem i nadaj mu display: flex. Dzieci ustawią się wtedy w rzędzie. Dodaj gap dla odstępu między nimi i flex: 1 na dzieciach, żeby dzieliły szerokość po równo.

Używać div czy section?

Używaj <section>, <header>, <nav>, <main>, <article> lub <footer>, gdy treść pełni taką rolę, bo rozumieją je czytniki ekranu i wyszukiwarki. <div> wybieraj, gdy potrzebujesz tylko pudełka do stylowania lub układu.

Czy mogę umieścić div w znaczniku p?

Nie. Akapit może zawierać tylko treść liniową. Przeglądarka zamyka <p>, gdy tylko zobaczy <div>, co psuje style. Użyj diva jako elementu zewnętrznego albo <span> wewnątrz akapitu.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ