CSS (ang. Cascading Style Sheets, czyli kaskadowe arkusze stylów) to język, w którym opisuje się wygląd strony internetowej: kolory, czcionki, odstępy i rozmieszczenie elementów. HTML określa, co znajduje się na stronie, a CSS decyduje, jak te elementy wyglądają w przeglądarce.
Dzięki temu podziałowi treść i wygląd można zmieniać niezależnie, a jeden plik CSS potrafi nadać spójny styl setkom podstron. Poniżej wyjaśniamy, jak działa CSS, czym różni się od HTML i jak podłączyć arkusz stylów do strony na trzy sposoby. Jeśli potrzebujesz tylko instrukcji, przejdź od razu do sekcji Jak podłączyć CSS do HTML.
Czym jest CSS?
CSS to język arkuszy stylów, który umożliwia kontrolowanie wizualnej prezentacji elementów na stronie internetowej. Arkusze zawierają reguły, które określają, jak poszczególne elementy HTML powinny być wyświetlane w przeglądarce. Do definiowania kolorów, czcionek, układu strony, marginesów i wielu innych aspektów wizualnych używamy stylów.
Skrót CSS rozwija się jako Cascading Style Sheets. Arkusz stylów to zbiór reguł wyglądu, zapisany zwykle w osobnym pliku z rozszerzeniem .css. Słowo kaskadowe opisuje sposób rozstrzygania konfliktów. Do jednego elementu może pasować kilka reguł naraz. Przeglądarka wybiera wtedy zwycięską według pochodzenia reguły, jej szczegółowości i kolejności w kodzie. Kaskada tłumaczy większość sytuacji, w których styl nie działa, choć plik jest poprawnie podłączony.
Frontend Master 2026 · Kodożercy
Pisz kod, nie tylko prompty
Frontend Master 2026 to pakiet sześciu kursów Kodożerców (HTML, CSS, JavaScript, Git) w polskim wideo z 12-miesięcznym dostępem. Fundamenty frontu od pierwszej linijki kodu do deploy.
Wchodzę w to →

Jak CSS współpracuje z HTML?
HTML i CSS to dwa podstawowe języki używane w tworzeniu stron internetowych. HTML (HyperText Markup Language) odpowiada za strukturę i treść strony, natomiast CSS kontroluje jej wygląd. Dzięki temu drugiemu możemy modyfikować wygląd elementów HTML bez zmiany ich struktury.
Przy pomocy arkuszy CSS możemy zastosować jednolite style do wielu stron jednocześnie, co znacznie ułatwia rozwój stron internetowych. Plik CSS zawiera definicje stylów, które są następnie powiązane z dokumentem HTML.
HTML a CSS: czym się różnią
HTML i CSS to dwa osobne języki, które przeglądarka czyta razem. HTML (HyperText Markup Language) to język znaczników: opisuje strukturę i treść strony, czyli nagłówki, akapity, linki i obrazy. CSS to język arkuszy stylów, który przyjmuje gotową strukturę i nadaje jej wygląd. Można to porównać do domu, w którym HTML odpowiada za ściany i układ pokoi, a CSS za farbę, meble i oświetlenie.
| HTML | CSS | |
|---|---|---|
| Za co odpowiada | struktura i treść: co jest nagłówkiem, co akapitem, gdzie stoi link | wygląd: kolory, czcionki, odstępy, układ na różnych ekranach |
| Rodzaj języka | język znaczników | język arkuszy stylów |
| Jak wygląda kod | znaczniki w nawiasach ostrych, np. <h1>Witaj</h1> | reguły z selektorem i deklaracjami, np. h1 { color: navy; } |
| Gdzie się go zapisuje | plik z rozszerzeniem .html | osobny plik .css, znacznik <style> w sekcji <head> albo atrybut style przy elemencie |
| Co się stanie bez drugiego | strona działa, ale wygląda jak surowy dokument z domyślnymi stylami przeglądarki | sam plik CSS niczego nie wyświetli, bo nie ma czego ostylować |
Do tej pary dochodzi zwykle trzeci język, JavaScript, który odpowiada za zachowanie strony, na przykład za to, co się stanie po kliknięciu przycisku. Jeśli dopiero zaczynasz, ucz się w kolejności HTML, CSS, JavaScript. Podstawy znaczników opisujemy w poradniku HTML dla zielonych.
Podstawowe pojęcia w CSS
Selektory
Selektor elementu HTML pozwala wybrać konkretne elementy na stronie, które chcemy stylować. Reguły składają się z selektora i deklaracji stylu.
Selektor tagu – np.
p { }– styluje wszystkie elementy<p>.Selektor klasy – np.
.nazwa-klasy { }– styluje wszystkie elementy z klasą elementu HTMLclass="nazwa-klasy".Selektor ID – np.
#nazwa-id { }– styluje element z atrybutemid="nazwa-id".
Najważniejsze selektory w CSS: Jak wybierać elementy?
Właściwości i wartości
Właściwości definiują, jakie aspekty wyglądu chcemy zmienić, np. kolor, rozmiar czcionki, marginesy. Jak zapisać sam kolor, od nazwy przez kod HEX po RGB i HSL, pokazujemy w tekście o kolorach HTML i CSS.
Przykład:
h1 {
color: blue;
font-size: 24px;
}Jak podłączyć CSS do HTML: trzy sposoby
CSS można podłączyć do HTML na trzy sposoby: przez zewnętrzny plik dołączony znacznikiem <link>, przez znacznik <style> w sekcji <head> albo przez atrybut style przy konkretnym elemencie. Na co dzień używa się pierwszego sposobu, dwa pozostałe przydają się w szczególnych sytuacjach.
1. Zewnętrzny plik CSS (znacznik link)
Tak zbudowana jest prawie każda strona. Style trafiają do osobnego pliku z rozszerzeniem .css, a plik HTML tylko na niego wskazuje. Na początek utwórz folder z dwoma plikami:
moja-strona/
├── index.html
└── css/
└── style.cssW pliku index.html dodaj w sekcji <head> znacznik <link>:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Moja pierwsza strona</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Witaj na mojej stronie</h1>
<p class="wstep">Ten akapit dostaje wygląd z pliku style.css.</p>
</body>
</html>Plik css/style.css zawiera same reguły, bez znaczników HTML:
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
}
h1 {
color: navy;
}
.wstep {
font-size: 18px;
color: #333;
}Po otwarciu index.html w przeglądarce nagłówek zrobi się granatowy, tło jasnoszare, a akapit z klasą wstep dostanie czcionkę 18 px. Atrybut rel="stylesheet" mówi przeglądarce, że dołączany plik jest arkuszem stylów, a href podaje ścieżkę do niego, liczoną od pliku HTML. Gdyby style.css leżał w tym samym folderze co index.html, wystarczyłoby href="style.css".
Największa zaleta tego sposobu polega na tym, że jeden plik CSS obsługuje wszystkie podstrony serwisu. Kolor nagłówków zmieniasz w jednym miejscu i zmiana pojawia się wszędzie. Przeglądarka zapisuje też plik w pamięci podręcznej, więc przy przechodzeniu między podstronami nie pobiera go za każdym razem od nowa.
Do jednej strony możesz dołączyć kilka arkuszy. Przeglądarka stosuje je w kolejności, w jakiej stoją w kodzie HTML. Przy konflikcie równie szczegółowych reguł wygrywa reguła z arkusza dołączonego niżej. Dlatego plik zerujący domyślne style przeglądarki (np. reset.css) umieszcza się przed własnym arkuszem:
<head>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
</head>Arkusz można też wczytać z wnętrza innego pliku CSS dyrektywą @import url("reset.css");, wpisaną na samej górze pliku. W nowych projektach lepiej jej unikać: przeglądarka dowiaduje się o zaimportowanym pliku dopiero po pobraniu pierwszego, co wydłuża ładowanie strony. Kilka znaczników <link> w sekcji <head> pozwala pobrać arkusze równolegle.
2. Znacznik style w sekcji head
Drugi sposób polega na wpisaniu reguł CSS do samego pliku HTML, między znaczniki <style> w sekcji <head>. Taki styl nazywa się wewnętrznym (ang. internal) i działa tylko na tej jednej stronie:
<head>
<meta charset="UTF-8">
<title>Strona ze stylem w head</title>
<style>
h1 {
color: darkgreen;
}
</style>
</head>Sprawdza się na pojedynczej stronie, przy szybkim teście albo w zadaniu na lekcji, gdy wszystko ma się zmieścić w jednym pliku. Przy większej liczbie podstron trzeba by kopiować te same reguły do każdego pliku, a potem poprawiać je w wielu miejscach.
3. Atrybut style (styl inline)
Trzeci sposób to wpisanie deklaracji CSS w atrybucie style konkretnego elementu. Taki styl działa tylko na ten jeden element:
<p style="color: red; font-weight: bold;">Uwaga: ten akapit jest czerwony.</p>Styl inline wygrywa ze zwykłymi regułami z arkuszy, więc nadaje się do jednorazowej poprawki albo do stylów ustawianych przez JavaScript. Na co dzień lepiej go unikać, bo reguły rozsiane po atrybutach trudno znaleźć i zmienić. Nadpisanie ich z poziomu pliku CSS wymaga dopisku !important.
Który sposób wybrać
| Sposób | Gdzie zapisujesz style | Kiedy go użyć |
|---|---|---|
Zewnętrzny plik (<link>) | osobny plik .css dołączony w sekcji <head> | domyślnie, zawsze gdy strona ma więcej niż jedną podstronę |
Znacznik <style> | sekcja <head> pliku HTML | jedna strona, szybki test, zadanie w jednym pliku |
Atrybut style | przy konkretnym elemencie HTML | jednorazowa zmiana jednego elementu, style ustawiane skryptem |
Najczęstsze błędy przy podłączaniu CSS
Strona wygląda tak samo jak bez stylów albo jakaś reguła jest ignorowana? Przyczyna leży zwykle w jednym z pięciu miejsc:
- Zła ścieżka w
href. Ścieżka liczy się od pliku HTML. Jeśli arkusz leży wcss/style.css, a w kodzie wpiszeszhref="style.css", przeglądarka go nie znajdzie i wyświetli stronę bez stylów. Zwróć też uwagę na wielkość liter: Windows nie odróżniaStyle.cssodstyle.css, ale serwery z Linuksem już tak. Strona działająca na twoim komputerze może więc stracić style po wgraniu do internetu. - Brak
rel="stylesheet". Bez tego atrybutu znacznik<link>nie wczyta pliku jako arkusza stylów, nawet jeśli ścieżka jest poprawna. - Stara wersja pliku w pamięci przeglądarki. Przeglądarka zapamiętuje pliki CSS, żeby nie pobierać ich przy każdym wejściu. Jeśli zmian w arkuszu nie widać, odśwież stronę z pominięciem pamięci podręcznej: Ctrl + F5 albo Ctrl + Shift + R w Windowsie, Cmd + Shift + R na Macu.
- Kolejność reguł. Gdy dwie reguły są równie szczegółowe, wygrywa ta, która stoi niżej w kodzie albo w później wczytanym pliku. Jeśli w sekcji
<head>najpierw dołączysz plik z regułąh1 { color: navy; }, a pod nim znacznik<style>zh1 { color: darkgreen; }, nagłówek będzie zielony. Po zamianie kolejności zrobi się granatowy. - Szczegółowość selektora (ang. specificity). Reguła z bardziej konkretnym selektorem wygrywa niezależnie od kolejności: identyfikator (
#menu) jest silniejszy od klasy (.wstep), a klasa od nazwy znacznika (p). Styl z atrybutustylewygrywa z nimi wszystkimi, chyba że reguła w arkuszu ma dopisek!important.
Przykład szczegółowości w praktyce:
.wstep {
color: #333;
}
p {
color: green;
}
Akapit <p class="wstep"> zostanie ciemnoszary (#333), choć reguła dla p stoi niżej, bo selektor klasy jest bardziej szczegółowy od selektora znacznika.
Przyczynę najszybciej znajdziesz w narzędziach deweloperskich przeglądarki (klawisz F12). Na karcie Elements (Elementy) zaznacz element, a panel Styles pokaże wszystkie pasujące do niego reguły. Przekreślone są te, które przegrały w kaskadzie. Na karcie Network (Sieć) plik CSS, którego nie udało się wczytać, jest oznaczony na czerwono. Jeśli wskazana ścieżka nie istnieje na serwerze, zobaczysz przy nim kod 404.
Jak stylować strony HTML za pomocą CSS?
Dlaczego warto używać CSS?
Umożliwia:
Oddzielenie treści od prezentacji – co ułatwia zarządzanie stroną.
Zmiany stylu w jednym miejscu – modyfikacja arkusza stylów wpływa na wszystkie powiązane strony.
Tworzenie responsywnych stron internetowych – dostosowujących się do różnych rozdzielczości ekranów.
Ulepszenie wyglądu strony – poprzez dodanie estetycznych elementów i układów.
Dzięki stylom możemy tworzyć atrakcyjne i funkcjonalne strony, które przyciągają użytkowników.
Podstawowe właściwości CSS
Kolor tła (
background-color) – ustawia kolor tła elementu.Kolor czcionki (
color) – definiuje kolor tekstu.Marginesy wewnętrzne i zewnętrzne (
padding,margin) – kontrolują odstępy wokół elementów.Szerokość i wysokość (
width,height) – określają rozmiar elementów.
Wersje i standardy CSS
Standard jest rozwijany przez organizację W3C (World Wide Web Consortium). Historia języka obejmuje kilka wersji:
CSS1 – zalecenie W3C z grudnia 1996 roku, podstawowe stylowanie: czcionki, kolory, marginesy.
CSS2 (1998) i CSS 2.1 (oficjalny standard od 2011 roku) – między innymi pozycjonowanie elementów i style dla różnych typów mediów, np. wydruku.
CSS3 – od tej wersji specyfikacja dzieli się na osobne moduły, takie jak Flexbox, Grid czy animacje.
Wersji CSS4 nie ma. Od CSS3 każdy moduł ma własny numer poziomu (np. Selectors Level 4) i rozwija się we własnym tempie, a aktualny stan całego języka W3C zbiera w zestawieniu CSS Snapshot. Najnowsze wydanie, CSS Snapshot 2026, ukazało się 22 czerwca 2026 roku.
Zaawansowane techniki w CSS
Flexbox
Flexbox (Flexible Box Layout) to moduł z rodziny CSS3, który ułatwia tworzenie elastycznych układów stron. Dzięki niemu możemy łatwo dostosowywać układ strony do różnych rozmiarów ekranu.
CSS Flexbox: Tworzenie elastycznych układów
CSS Frameworks
Frameworki to gotowe biblioteki stylów, które przyspieszają projektowanie stron internetowych, dzięki czemu programiści mogą szybko budować estetyczne i responsywne strony. Przykłady:
- Bootstrap: Popularny framework zawierający gotowe komponenty i arkusze stylów, co pozwala na szybkie budowanie responsywnych i stylowych stron bez potrzeby pisania niestandardowego kodu.
- Tailwind: Nowoczesny framework utility-first, który nie dostarcza gotowych komponentów, ale oferuje setki klas narzędziowych do stylizowania elementów, dzięki czemu programiści mogą tworzyć niestandardowe interfejsy szybko i bez nadmiaru stylów.
- Foundation: Elastyczny framework do tworzenia responsywnych stron, co zapewnia łatwość w dostosowywaniu do różnych urządzeń i rozdzielczości ekranu.
- Blueprint: Framework ułatwiający tworzenie spójnych i estetycznych interfejsów, ponieważ oferuje zestaw narzędzi i reguł, które pozwalają na szybkie projektowanie z minimalnym wysiłkiem.
Tailwind CSS: Nowoczesne podejście do stylowania
Praktyczne zastosowania CSS
Zmiany wyglądu strony bez modyfikacji kodu HTML.
Dostosowywanie wyglądu elementów HTML w zależności od interakcji użytkownika (pseudoklasy).
Tworzenie animacji i przejść – wzbogacając wygląd stron internetowych.
Tworzenie animacji w CSS: Efektywne interakcje
Dzięki arkuszom CSS możemy kontrolować nie tylko kolor czy czcionkę, ale również skomplikowane struktury, takie jak siatki czy układy kolumnowe.
Zasoby edukacyjne
Aby pogłębić wiedzę, warto skorzystać z:
Mozilla Developer Network (MDN) – obszerna dokumentacja i poradniki dotyczące CSS.
CSS-Tricks – artykuły i wskazówki dla zaawansowanych użytkowników.
FAQ: Pytania i odpowiedzi
Co to jest CSS w prostych słowach?CSS to język, którym opisuje się wygląd strony internetowej. HTML mówi przeglądarce, że dany fragment to nagłówek albo akapit. CSS ustala, jakiego ma być koloru i rozmiaru oraz gdzie ma stać na ekranie. Skrót pochodzi od angielskiego Cascading Style Sheets, czyli kaskadowe arkusze stylów.
Czy CSS to język programowania?Zwykle nie zalicza się go do języków programowania. CSS to język arkuszy stylów: opisuje, jak elementy mają wyglądać, ale nie służy do pisania programów, które krok po kroku liczą i podejmują decyzje, tak jak JavaScript czy Python. Ma za to zmienne, funkcje takie jak calc() i reguły warunkowe @media, więc praca z nim wymaga logicznego myślenia.
Najlepiej przez zewnętrzny plik: zapisz style w pliku style.css i dodaj w sekcji <head> dokumentu HTML znacznik <link rel="stylesheet" href="style.css">. Pozostałe sposoby to znacznik <style> w sekcji <head> albo atrybut style przy konkretnym elemencie. Wszystkie trzy z kodem opisujemy w sekcji Jak podłączyć CSS do HTML.
Najczęściej przez złą ścieżkę w atrybucie href, brak rel="stylesheet" albo starą wersję pliku zapamiętaną przez przeglądarkę. Sprawdź, czy ścieżka prowadzi od pliku HTML do pliku CSS, z zachowaniem wielkości liter. Potem odśwież stronę skrótem Ctrl + F5 (na Macu Cmd + Shift + R). Jeśli plik się wczytuje, a styl dalej nie działa, przyczyną jest zwykle kolejność albo szczegółowość reguł.
Najpierw HTML, bo CSS stylizuje elementy, które tworzy HTML. W praktyce oba języki poznaje się równolegle: po pierwszych znacznikach warto od razu podłączyć arkusz stylów i patrzeć, jak zmienia się wygląd strony. JavaScript przychodzi w następnej kolejności.
Jaka jest historia języka CSS?Historia języka rozpoczęła się w 1996 roku, kiedy organizacja W3C wprowadziła pierwszy standard, znany jako CSS1. Umożliwiał on podstawową stylizację elementów na stronach internetowych. Z czasem powstały kolejne wersje, takie jak CSS2 i CSS3, które wprowadziły bardziej zaawansowane funkcje, takie jak Flexbox i Grid, umożliwiające tworzenie nowoczesnych i responsywnych stron internetowych.
Czym jest atrybut style i jak go używać?Atrybut style to sposób na bezpośrednie dodanie stylu do elementu HTML. Używamy go, aby nadawać stylów elementom w HTML, bez konieczności korzystania z zewnętrznego arkusza. Na przykład, aby ustawić kolor tła akapitu, można zastosować:
<p style="background-color: yellow;">Tekst z żółtym tłem</p>Chociaż atrybut style jest przydatny w prostych przypadkach, lepiej stosować zewnętrzne arkusze stylów w większych projektach, aby ułatwić rozwój stron internetowych.
CSS nie zmienia struktury dokumentu HTML, ale umożliwia prezentację strony w sposób estetyczny i przejrzysty. Dzięki CSS możemy modyfikować wygląd stron internetowych, określając m.in układ, kolory, czcionki i odstępy między elementami. Poprzez oddzielenie treści od wyglądu, pozwala na bardziej efektywne zarządzanie strukturą strony internetowej i szybsze zmiany stylu.
Dlaczego warto używać CSS w Web Front-end Development?CSS jest kluczowym elementem Web Front-end Development, ponieważ pozwala tworzyć atrakcyjne, funkcjonalne i responsywne strony internetowe, które dostosowują się do różnych rozmiarów ekranów. Dzięki niemu możemy poprawić wygląd stron internetowych, bez konieczności zmiany ich struktury. Co więcej, zmiany w jednym pliku mogą mieć wpływ na wiele stron jednocześnie, co ułatwia zarządzanie dużymi projektami.
Jakie są najczęściej używane właściwości CSS?Niektóre z najczęściej używanych właściwości obejmują:
Kolor tła (
background-color) – pozwala na ustawienie tła elementu.Kolor tekstu (
color) – definiuje barwę tekstu.Marginesy (
margin) i padding – kontrolują odstępy wokół elementów. Dzięki tym i innym właściwościom możemy dostosowywać styl dokumentu HTML i prezentację strony, nadając jej unikalny wygląd.
Podsumowanie
Kaskadowe arkusze stylów to nieodłączny element tworzenia stron internetowych. Język ten umożliwia kontrolowanie wyglądu i prezentacji dokumentów HTML, co jest kluczowe w dzisiejszym projektowaniu stron internetowych. Dzięki niemu możemy tworzyć estetyczne, responsywne i funkcjonalne strony, które spełniają oczekiwania użytkowników. Na start wystarczy jeden plik style.css dołączony do strony znacznikiem <link> w sekcji <head>.





