Menu

Inline CSS: atrybut style i 3 sposoby dodania CSS

Inline CSS umieszcza deklaracje bezpośrednio na elemencie za pomocą atrybutu style. Poznaj składnię, sytuacje, w których style inline są dobrym wyborem, powód, dla którego wygrywają z arkuszami stylów, i porównanie z wewnętrznym i zewnętrznym CSS.

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

Czym jest inline CSS

Inline CSS to CSS zapisany bezpośrednio na elemencie HTML za pomocą atrybutu style. Jego wartość to lista deklaracji, property: value;, które działają tylko na ten element.

Nie ma selektora ani nawiasów klamrowych: celem jest element, na którym stoi atrybut. Deklaracje oddzielaj średnikami. Ostatni średnik jest opcjonalny, ale jego zachowanie sprawia, że dopisanie kolejnej deklaracji jest bezpieczne.

Składnia

<element style="property: value; property: value;">
CzęśćPrzykładUwagi
Atrybutstyle="..."Atrybut globalny: dozwolony na każdym elemencie HTML
Deklaracjacolor: #2563eb;Taka sama składnia jak w regule arkusza stylów
Kilka deklaracjipadding: 8px; border: 1px solid #e5e7eb;Oddzielone ;
Cudzysłowy w środkustyle="font-family: 'Courier New', monospace;"W atrybucie w podwójnym cudzysłowie używaj pojedynczych

Wszystko, co nie jest deklaracją, jest niedozwolone. :hover, ::before, @media i selektory nie mają miejsca w atrybucie style.

3 sposoby dodania CSS do HTML

CSS trafia na stronę na trzy sposoby. Ta strona omawia pierwszy; zewnętrzny i wewnętrzny CSS mają własną stronę.

SposóbGdzie jest CSSZasięgTypowe użycie
InlineAtrybut style na jednym elemencieTen elementJednorazowe wartości, wartości ustawiane przez JavaScript
WewnętrznyElement <style> na stronieTa stronaJednostronicowe dema, szablony e-maili, krytyczny CSS
ZewnętrznyPlik .css podpięty przez <link>Każda strona, która go podpinaStylizowanie całej witryny

Ten sam akapit ostylowany na wszystkie trzy sposoby (plik zewnętrzny pokazano jako komentarz, bo podgląd nie ma drugiego pliku do wczytania):

Trzeci akapit zachowuje padding i zaokrąglenie z reguły .note i zastępuje tylko tło, bo styl inline ustawia wyłącznie tę jedną właściwość.

Dlaczego style inline wygrywają

Gdy reguła z arkusza stylów i styl inline ustawiają tę samą właściwość, wygrywa styl inline. Nie ma znaczenia, jak specyficzny jest selektor: nawet selektor ID przegrywa.

Jedynym wyjątkiem jest !important. Deklaracja z arkusza stylów oznaczona !important pokonuje zwykłą deklarację inline, a !important inline pokonuje obie. Właśnie dlatego style inline utrudniają utrzymanie witryny: żeby zmienić je z arkusza stylów, potrzebujesz !important, co zaczyna eskalację. Strona o !important omawia pełną kolejność.

Kiedy inline CSS jest dobrym narzędziem

Style inline dobrze pasują, gdy wartość jest danymi, a nie projektem: zmienia się dla każdego elementu i zapisuje ją szablon albo JavaScript.

Wygląd (kolory, wysokość, zaokrąglenie) jest w arkuszu stylów. Inline jest tylko szerokość, która różni się dla każdego paska. JavaScript zapisuje ten sam atrybut przez element.style:

Po kliknięciu HTML akapitu zawiera style="color: rgb(245, 158, 11); font-weight: bold;". Nazwy właściwości z łącznikiem zamieniają się w JavaScripcie na camelCase (font-weight to fontWeight).

Zmienna CSS jest często najczystszym rozwiązaniem pośrednim: ustaw inline tylko zmienną, style="--progress: 35%", i pozwól arkuszowi stylów jej użyć. Zobacz zmienne CSS.

Gdzie inline CSS nie wystarcza

  • Brak stanów i pseudoelementów. W atrybucie style nie napiszesz :hover, :focus ani ::before.
  • Brak media queries. Szerokość inline nie zmieni się na telefonie.
  • Powtarzanie. Dziesięć przycisków z tym samym stylem inline to dziesięć miejsc do edycji.
  • Trudne nadpisywanie. Pokonuje go tylko !important w arkuszu stylów.
  • Content Security Policy. Restrykcyjna CSP bez 'unsafe-inline' w style-src blokuje atrybuty style zapisane w HTML.

Częste błędy

  • Pisanie selektora albo nawiasów klamrowych w style. style="p { color: red }" zostaje zignorowane. Trafiają tam tylko deklaracje.
  • Używanie = zamiast :. Pisze się color: red, a nie color=red.
  • Zagnieżdżanie podwójnych cudzysłowów. style="font-family: "Arial"" kończy atrybut za wcześnie. W środku używaj pojedynczych cudzysłowów.
  • Zapominanie o jednostkach. style="width: 200" zostaje zignorowane; napisz 200px. Tylko długość 0 może obyć się bez jednostki.
  • Stylizowanie całej witryny inline. Przenieś powtarzające się style do klasy w arkuszu stylów, a inline zostaw wartości zależne od elementu.

Najczęściej zadawane pytania

Czym jest inline CSS?

Inline CSS to CSS zapisany w atrybucie style elementu, na przykład <p style="color: red;">. Deklaracje działają tylko na ten jeden element, bez selektora.

Jakie są 3 sposoby dodania CSS do HTML?

Inline, przez atrybut style na elemencie; wewnętrzny, przez element <style> na stronie; oraz zewnętrzny, przez osobny plik .css podpięty w <head> za pomocą <link rel="stylesheet" href="styles.css">. Dla całej witryny zwykle wybiera się pliki zewnętrzne.

Czy inline CSS nadpisuje zewnętrzny CSS?

Tak, w większości przypadków. Deklaracja w atrybucie style pokonuje każdy selektor z arkusza stylów, bez względu na jego specyficzność. Arkusz stylów może wygrać tylko przez !important, a !important inline pokonuje także to.

Czy inline CSS to zła praktyka?

Przy stylizowaniu całej witryny tak: powtarza się, nie może używać :hover ani media queries i trudno go nadpisać. Sprawdza się przy jednorazowych wartościach ustawianych przez JavaScript albo szablon, takich jak szerokość paska postępu czy kolor wybrany przez użytkownika.

Czy można użyć hover w inline CSS?

Nie. Atrybut style przyjmuje tylko deklaracje, więc nie da się w nim zapisać pseudoklas takich jak :hover, pseudoelementów takich jak ::before ani reguł @media. Umieść je w elemencie <style> albo w arkuszu stylów.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ