Menu

Zewnętrzny i wewnętrzny CSS: link i style wyjaśnione

Zewnętrzny CSS znajduje się w pliku .css, który każda strona dołącza przez <link rel="stylesheet">; wewnętrzny CSS siedzi w elemencie <style> na jednej stronie. Poznaj oba sposoby, działanie ścieżek do plików i to, która reguła wygrywa, gdy się spotkają.

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

Zewnętrzny CSS w jednej linii

Zewnętrzny CSS to osobny plik .css. Dołączasz go w <head> każdej strony, która go potrzebuje:

<head>
  <link rel="stylesheet" href="styles.css">
</head>

Sam plik zawiera zwykłe reguły CSS, bez żadnych znaczników HTML wokół nich:

/* styles.css */
body {
  font-family: system-ui, sans-serif;
  color: #111827;
}

.card {
  border: 2px solid #2563eb;
  border-radius: 8px;
  padding: 12px 16px;
}

Podgląd poniżej nie ma drugiego pliku do wczytania, więc umieszcza ten sam CSS w elemencie <style>. To wewnętrzny CSS i renderuje się dokładnie tak, jak dołączony plik:

Wewnętrzny CSS: element style

Wewnętrzny CSS (nazywany też osadzonym) to element <style> na stronie. Umieść go w <head>, żeby style były znane, zanim wyrenderuje się body. Dotyczy całej strony, a jego reguły używają selektorów, czego atrybuty style w linii nie potrafią.

Najedź kursorem na tag: :hover działa tutaj, bo to prawdziwa reguła. Trzeci sposób, atrybut style, omawia strona o CSS w linii.

Wewnętrzny a zewnętrzny CSS

Zewnętrzny (<link>)Wewnętrzny (<style>)
GdziePlik .cssWewnątrz strony HTML
ZasięgKażda strona, która go dołączaJedna strona
Pamięć podręcznaPobierany raz, używany na wielu stronachWysyłany ponownie z każdą stroną
Zmiana wyglądu witrynyEdytujesz jeden plikEdytujesz każdą stronę
Dodatkowe żądanieTak, jedno na plikNie
Dobry doPrawdziwych stron internetowychDem, pojedynczych stron, e-maili HTML, kluczowego CSS

Specyficzność jest taka sama w obu przypadkach: reguła w elemencie <style> i ta sama reguła w dołączonym pliku ważą dokładnie tyle samo. Przy remisie wygrywa ta, która występuje później w dokumencie.

Kolejność: późniejszy arkusz stylów wygrywa

Arkusze stylów są odczytywane w kolejności dokumentu, zarówno <link>, jak i <style>. Z dwóch reguł o tej samej specyficzności wygrywa późniejsza. Dwa bloki <style> poniżej udają dołączony plik, po którym następuje nadpisanie na poziomie strony:

Przycisk zachowuje padding i biały tekst z pierwszej reguły, a z drugiej bierze tylko tło. Dlatego własny arkusz stylów witryny umieszcza się po arkuszu frameworka: najpierw dołącz przez <link> bibliotekę, potem swój.

Ścieżki do plików w href

href w <link> to adres URL rozwiązywany względem położenia pliku HTML.

hrefWczytuje
styles.cssPlik w tym samym folderze co strona
css/styles.cssFolder css obok strony
../styles.cssFolder wyżej
/styles.cssOd katalogu głównego witryny
https://example.com/a.cssPełny adres URL na innym serwerze

W witrynie, której strony leżą na różnych głębokościach, forma względna wobec katalogu głównego (/css/styles.css) sprawia, że jedna ścieżka działa na każdej stronie.

Arkusze stylów do druku i innych mediów

Atrybut media ogranicza arkusz stylów do pasujących warunków. Przyjmują go zarówno <link>, jak i <style>:

<link rel="stylesheet" href="print.css" media="print">
<link rel="stylesheet" href="wide.css" media="(min-width: 900px)">

Podgląd to ekran, więc baner jest widoczny. Na prawdziwej stronie baner znika z wydruku, a w DevTools zobaczysz to samo, emulując typ mediów print (panel Rendering).

Częste błędy

  • Zła ścieżka. Literówka w href niczego nie wczytuje, a strona renderuje się bez stylów. Otwórz DevTools, kartę Network, i poszukaj błędu 404 dla pliku .css.
  • Brak rel="stylesheet". Bez niego <link href="styles.css"> nie wczytuje arkusza stylów.
  • HTML w pliku .css. Plik .css zawiera tylko reguły. Znaczniki <style> w nim nie są poprawnym CSS i psują sąsiednią regułę.
  • Własny arkusz stylów przed arkuszem frameworka. Przy równej specyficzności wygrywa późniejszy plik, więc własny CSS dołączaj na końcu.
  • Widoczna stara wersja. Przeglądarki przechowują arkusze stylów w pamięci podręcznej. Wykonaj twarde odświeżenie albo dodaj wersję do adresu URL (styles.css?v=2), gdy wdrażasz zmianę.

Najczęściej zadawane pytania

Co to jest zewnętrzny CSS?

Zewnętrzny CSS to arkusz stylów zapisany we własnym pliku .css i wczytywany przez <link rel="stylesheet" href="styles.css"> w sekcji <head> strony. Każda strona, która dołącza ten plik, dostaje te same style, a przeglądarka przechowuje plik w pamięci podręcznej między stronami.

Co to jest wewnętrzny CSS?

Wewnętrzny CSS, nazywany też osadzonym, to CSS zapisany w elemencie <style> w samym dokumencie HTML, zwykle w <head>. Dotyczy tylko tej strony.

Jak podłączyć plik CSS do HTML?

Dodaj <link rel="stylesheet" href="styles.css"> wewnątrz <head>. href to ścieżka względna wobec pliku HTML, więc css/styles.css wskazuje folder css obok niego, a /styles.css zaczyna od katalogu głównego witryny.

Co jest lepsze, wewnętrzny czy zewnętrzny CSS?

Zewnętrzny CSS dla wszystkiego, co ma więcej niż jedną stronę: jeden plik do edycji, a przeglądarki pobierają go raz i używają ponownie. Wewnętrzny CSS pasuje do pojedynczej strony, dema albo małego bloku kluczowych stylów, które chcesz mieć w pierwszej odpowiedzi serwera.

Dlaczego mój zewnętrzny CSS nie działa?

Najczęstsze przyczyny to zła ścieżka w href (sprawdź na karcie Network, czy nie ma błędu 404), brak rel="stylesheet", znaczniki <style> wpisane w pliku .css albo późniejsza reguła, która nadpisuje twoją. Twarde odświeżenie wyklucza starą kopię z pamięci podręcznej.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ