--- title: CSS podstawy slug: Learn/Getting_started_with_the_web/CSS_basics translation_of: Learn/Getting_started_with_the_web/CSS_basics ---
Kaskadowe arkusze stylów CSS (ang. Cascading Style Sheets) to kod służący do nadawania wyglądu strony. CSS Podstawy przeprowadzi cię przez bazowe zagadnienia, abyś mógł zacząć modyfikować wygląd swojej strony. Odpowiemy na takie pytania jak: Jak zrobić, żeby mój tekst był czarny albo czerwony? Jak wyświetlić poszczególną zawartość strony w wybranych miejscach ekranu? Jak dekorować stronę obrazami czy nadać kolor tła?
Podobnie jak HTML, CSS nie jest językiem programowania. Nie jest jednak też językiem znaczników — jest językiem arkuszy stylów (ang. style sheet language). Oznacza to, że pozwala on selektywnie stosować style do elementów w dokumentach HTML. Na przykład, aby zaznaczyć wszystkie paragrafy na stronie HTML i zmienić w nich kolor tekstu na czerwono, należy napisać ten kod CSS:
p { color: red; }
Sprawdźmy: wklej te trzy linie kodu do nowego pliku. Plik nazwij style.css
i umieść go w katalogu styles
.
Wciąż jednak musimy powiązać ten kod CSS z twoim dokumentem HTML. W przeciwnym wypadku stworzony kod CSS nie będzie miał wpływu na wygląd twojej strony. (Jeśli nie śledzisz naszego projektu od poczatku, przeczytaj Struktura plików witryny oraz HTML podstawy, żeby dowiedzieć się co wpierw należy wykonać.)
index.html
i wklej poniższy kod gdzieś w sekcji nagłówka (czyli pomiędzy elementami <head>
i </head>
):
<link href="styles/style.css" rel="stylesheet" type="text/css">
index.html
a następnie otwórz go w przeglądarce. Powinieneś móc zobaczyć coś takiego:Jeśli tekst twoich akapitów jest czerwony, gratulacje! Właśnie napisałeś swój pierwszy skuteczny kod CSS.
Przyjrzyjmy się nieco bardziej szczegółowo naszemu kodowi CSS:
Cała struktura jest nazywana listą dyrektyw - reguł. Oto nazwy poszczególnych części:
p
. Aby dodać styl do innego elementu, po prostu zmień selektor;color: red;
, która ustala jakie właściwości elementu chcesz wystylizować.color
jest właściwością selektrora p
.) W CSS wybierasz, która właściwość ma być nadana w danej deklaracji.color
oprócz red
).Zauważ inne ważne części składni:
{}
).:
), aby oddzielić właściwość od jej wartości.;
), aby oddzielić każdą deklarację od następnej.Aby zmodyfikować wiele wartości właściwości jednocześnie, wystarczy napisać je oddzielone średnikami, np.:
p { color: red; width: 500px; border: 1px solid black; }
Możesz również wybrać wiele typów elementów i zastosować dla nich jeden zestaw deklaracji. Wypisz kilka selektorów oddzielonych przecinkami. Na przykład:
p,li,h1 { color: red; }
Istnieje wiele innych typów selektorów. Do tej pory używaliśmy tylko selektorów elementów, które wybierają wszystkie elementy danego typu z kodu HTML. Ale możemy stworzyć bardziej szczegółowe selektory. Oto kilka powszechnych typów selektorów:
Nazwa selektora | Co wybiera? | Przykład |
---|---|---|
Selektor elementu (czasem nazywany selektorem tagu lub typu) | Element(y) HTML o podanym typie. | p Wybiera elementy <p> |
Selektor ID | Element na stronie o podanym ID (na jednej stronie HTML możesz użyć konkretnego ID tylko raz). | #my-id Wybiera <p id="my-id"> lub <a id="my-id"> |
Selektor klasy | Element(y) na stronie o podanej klasie (Tej samej klasy możesz użyć wiele razy na stronie). | .my-class Wybiera <p class="my-class"> oraz <a class="my-class"> |
Selektor atrybutu | Element(y) na stronie o podanym atrybucie. | img[src] wybiera <img src="myimage.png"> ale nie <img> |
Selektor pseudo-klasy | Element(y) o określonym stanie np. najechanie myszą na element | a:hover Wybiera <a> , ale tylko gdy kursor znajduje się nad elementem. |
Istnieje wiele innych typów selektorów, możesz je poznać w naszym Selectors guide.
Teraz, gdy poznaliśmy podstawy CSS, dodajmy więcej reguł i informacji do naszego pliku style.css
żeby nasz przykład wyglądał lepiej. Zacznijmy od zmiany wyglądu czcionek i tekstu.
index.html
(gdziekolwiek pomiędzy tagami <head>
i </head>
). Linijka będzie wyglądała podobnie do:
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
style.css
. To był dobry test, ale czerwony tekst nie wygląda najlepiej.font-family
wygenerowanym w Google Fonts. (font-family
oznacza czcionkę lub czcionki których chcesz używać). Pierwsza reguła ustala bazową wielkość tekstu i czcionkę dla całej strony (ponieważ <html>
to element-rodzic całej strony i wszystkie elementy wewnątrz niego dziedziczą ten sam font-size
i font-family
):
html { font-size: 10px; /* px oznacz 'piksele': bazowy rozmiar tekstu to teraz 10 pikseli wysokości */ font-family: placeholder; /* tu powinnien być font-family wygenerowany w Google fonts */ }
Uwaga: Wszystko w dokumencie CSS pomiędzy /*
i */
jest komentarzem CSS, który przyglądarka zignoruje podczas wyświetlania strony. To miejsce dla Ciebie na notatki dotyczące tego co dzieje się w danym miejscu.
h1 { font-size: 60px; text-align: center; } p, li { font-size: 16px; line-height: 2; letter-spacing: 1px; }
Możesz dostosować wartości px
na jakiekolwiek chcesz, aby uzyskać wygląd jaki chcesz, ale generalnie twoja strona powinna wyglądać podobnie jak ta:
Jedną z rzeczy którą zauważysz podczas pisania CSS to, że wiele z nich dotyczy pudełek (ang. boxes) — ustawianie ich rozmiaru, koloru, pozycji etc. O większości elementów na stronie możesz myśleć jak o pudełkach stawianych jedne na drugim.
Nic dziwnego, że układ CSS opiera się głównie na modelu pudełkowym (ang. box model). Każdy z bloków zajmujących miejsce na Twojej stronie ma takie właściwości:
padding
, przestrzeń wokół elementu (np. wokół paragrafu tekstu)border
, obramowanie poza padding-iemmargin
, przestrzeń wokół zewnętrznej części elementuW tej sekcji możemy także użyć:
width
, szerokość elementu,background-color
, kolor pod zawartością i paddingiem elementu,color
, kolor treści elementu (zazwyczaj tekstu),text-shadow
: ustawia cień pod tekstem wewnątrz elementu,display
: określa sposób wyświetlania elementu (póki co nie martw się tym).Dodajmy trochę więcej CSS do naszej strony! Dodawaj nowe reguły na dole pliku i nie bój się eksperymentować ze zmianą wartości, aby zobaczyć, jak działają.
html { background-color: #00539F; }
Ten zestaw reguł ustawi kolor tła dla całej strony. Zmień powyższy kod koloru na dowolny wybrany podczas planning your site.
body { width: 600px; margin: 0 auto; background-color: #FF9500; padding: 0 20px 20px 20px; border: 5px solid black; }
Teraz element {{htmlelement("body")}}. Jest tu kilka deklaracji, więc przejrzyjmy je wszystkie jedna po drugiej:
width: 600px;
— wymusza, aby szerokość elementu body wynosiła 600 pikseli.margin: 0 auto;
— Kiedy ustawiasz dwie wartości na właściwościach takich jak margin
czy padding
, pierwsza wartość dotyczy górnej i dolnej strony elementu (ustawia je na 0 w tym wypadku), a druga wartość ustawia lewą i prawą stronę (auto
to specjalna wartość która dzieli dostępną przestrzeń w poziomie równo pomiędzy lewą i prawą stronę). Możesz równiej użyć jednej, dwóch, trzech lub czterech wartości tak jak zostało to opisane tutaj.background-color: #FF9500;
— jak wcześniej, ustawia tło elementu. Użyliśmy czerwono-pomarańczowego koloru dla body, jako przeciwieństwa dla ciemno niebieskiego koloru dla elementu {{htmlelement("html")}}, ale nie krępuj się eksperymentować.padding: 0 20px 20px 20px;
— mamy cztery wartości do ustawienia odstępów do uzyskania przestrzeni wokół elementu. Tym razem ustawiamy brak górnego odstępu i po 20 pikseli odstępu dla prawej strony, dołu i lewej strony. Wartości ustawiają kolejno górę, prawą stronę, dół i lewą stronę.border: 5px solid black;
— ta prosta reguła ustawia obramowanie ciągłą linią o szerokości 5-ciu pikseli w czarnym kolorze dla każdego z boków.h1 { margin: 0; padding: 20px 0; color: #00539F; text-shadow: 3px 3px 1px black; }
Być może zauważysz paskudną szparę na górze ciała strony. Dzieje się tak dlatego, że przeglądarki stosują pewne domyślne style dla elementu {{htmlelement("h1")}} (oraz innych), nawet jeżeli nie użyjesz żadnego stylu CSS! To może brzmieć jak zła koncepcja, ale chcemy by nawet nieostylowana strona wyglądała czytelnie. Aby pozbyć się luki, zmieniliśmy domyślny styl, ustawiając margin: 0;
.
Następnie ustawiliśmy górny i dolny margines nagłówka na 20 pikseli i nadaliśmy tekstowi nagłówka taki sam kolor, jak kolor tła dla html.
Ciekawą właściwością, którą tutaj wykorzystaliśmy, jest text-shadow
, który nadaje cień dla tekstu wewnątrz elementu. Jego cztery wartości są następujące:
Ponownie, eksperymentuj z innymi wartościami i zobacz co możesz zrobić!
img { display: block; margin: 0 auto; }
Wreszcie wycentrujemy obrazek żeby wyglądał lepiej. Możemy użyć ponownie triku margin: 0 auto
którego użyliśmy w przypadku body, ale dodatkowo musimy zrobić coś jeszcze. Element {{htmlelement("body")}} jest blokowy (ang. block), co oznacza, że zajmuje całą dostępną przestrzeń na stronie i możesz zastosować dla niego marginesy i inne ustawienia wielkości. Z drugiej strony, obrazki są elementali liniowymi (ang.inline) i nie posiadają takich właściwości. Dlatego żeby zastosować marginesy dla grafiki musimy zmienić jej sposób wyświetlania na blokowy używając display: block;
.
Note: Powyższe instrukcje zakładają, że używasz obrazu o szerokości mniejszej niż szerokość ustawiona dla elementu body (600 pikseli). Jeśli obraz jest większy, spowoduje to przelanie treści i rozlanie jej na resztę strony. Aby temu zapobiec możesz 1) zmniejszyć wielkość obrazu za pomocą editora graficznego, lub 2) zmniejszyć obraz przy użyciu CSS ustawiając właściwość {{cssxref("width")}} dla elementu <img>
na mniejszą wartość (np., 400 px;
).
Uwaga: Nie przejmuj się jeżeli jeszcze nie rozumiesz display: block;
i różnicy między elementami liniowymi a blokowymi. Zrozumiesz z czasem zgłębiania wiedzy o CSS. Więcej o różnych dostępnych sposobach wyświetlania możesz znaleźć w naszym display reference page.
Jeżeli prześledziłeś instrukcje z tego artykułu powinieneś zakończyć ze stroną wyglądającą jak ta (możesz również zobaczyć naszą wersję tutaj):
Jeżeli utkniesz możesz zawsze porównać swój kod z naszym gotowym przykładem na GitHub.
To naprawdę podstawowe informacje o CSS. Aby dowiedzieć się więcej sprawdź nasz CSS Learning topic.
{{PreviousMenuNext("Learn/Getting_started_with_the_web/HTML_basics", "Learn/Getting_started_with_the_web/JavaScript_basics", "Learn/Getting_started_with_the_web")}}