Chyba każdy to wie HTML określa strukturę dokumentu, oraz css(Kaskadowe Arkusze Stylów, kaskadowe Arkusze Stylów) odpowiada za projekt strony WWW, położenie i wygląd elementów. Tak się złożyło, że HTML i CSS nie są używane osobno. Każda strona internetowa jest w rzeczywistości kombinacją kodu HTML i kodu CSS. Bez podstawowej wiedzy na ten temat
technologii, poprawne skomponowanie jednego dokumentu nie będzie możliwe. Wielu z nas bardziej szczegółowo przestudiowało te technologie. Ale osobiście nigdy nie udało mi się w pełni „zrozumieć” wszystkich prawd i możliwości CSS. Następnie postaram się podkreślić najbardziej ważne punkty rzeczy, które warto wiedzieć o CSS.
Co to są kaskadowe arkusze stylów?
Style to zestaw ustawień, które kontrolują wygląd i położenie elementów strony internetowej. Spójrz na poniższe zdjęcia, aby zrozumieć różnicę:
Kod źródłowy takiego dokumentu wygląda tak:
1 |
|
Sam kod HTML nie uległ zmianie, a jedynym dodatkiem jest string . ona odnosi się do plik zewnętrzny z opisem stylów pod nazwą style.css. Zawartość tego pliku jest pokazana poniżej:
1 | ciało ( |
W pliku styl.css właśnie opisałem wszystkie parametry projektowe takich tagów jak, <ciało>,
Zauważ, że same znaczniki w kodzie HTML są napisane jak zwykle. Ponieważ do pliku stylu można odwoływać się z dowolnego dokumentu internetowego, skutkuje to mniej powtarzalnymi danymi. A dzięki rozdzieleniu kodu i projektu zwiększa się elastyczność zarządzania rodzajem dokumentu oraz szybkość pracy na stronie.
Rodzaje stylów
Istnieje kilka typów stylów, które można zastosować razem w tym samym dokumencie. Są to styl przeglądarki, styl autora i styl użytkownika.
Styl przeglądarki. Podobne style obowiązują w przypadku korzystania z „czystego” kodu HTML.
Styl użytkownika. Jest to styl, który użytkownik witryny może włączyć za pomocą ustawień przeglądarki. Ten styl ma pierwszeństwo i zastępuje oryginalny wygląd dokumentu.
Jeśli podczas zmiany stylu tego samego elementu dokumentu wystąpi konflikt, pierwszeństwo ma styl użytkownika, a następnie styl autora i styl przeglądarki.
Jak dodać style do strony?
Istnieje kilka sposobów dodawania stylów CSS do strony:
Powiązane style
Przy korzystaniu ze stylów połączonych opis selektorów i ich wartości znajduje się w osobnym pliku, zwykle z rozszerzeniem css, a tag służy do powiązania dokumentu z tym plikiem . Ten tag jest umieszczany w pojemniku
.Możesz dodać te style w ten sposób:
1 | "-//W3C//DTD XHTML 1.0 Strict//EN" href= „http://www.htmlbook.ru/main.ess” / > head > nagłówek
h1
> |
A plik stylu będzie wyglądał tak:
1 | H1( |
Jak widać z powyższego kodu, do strony html dodawany jest wpis informujący przeglądarkę, skąd pobrać style. Sam plik stylu zawiera tylko opis stylów. To oddzielenie kodu html i css ułatwia rozwój i utrzymanie witryn. Zaleca się przestrzeganie tego stylu układu.
Style globalne
W przypadku używania stylów globalnych właściwości CSS są opisane w samym dokumencie i znajdują się w tytule strony internetowej. Pod względem elastyczności i możliwości ta metoda dodawania stylu jest gorsza od poprzedniej, ale pozwala również na przechowywanie stylów w jednym miejscu, w tym przypadku bezpośrednio na stronie za pomocą kontenera. . Style wewnętrzne mają pierwszeństwo przed stylami zewnętrznymi, ale zastępują style wbudowane (określone za pomocą atrybutu style).
...
1.3. Style wbudowane
Kiedy piszemy style wbudowane, kod CSS zapisujemy do pliku HTML, bezpośrednio w tagu elementu za pomocą atrybutu style:
Zwróć uwagę na ten tekst.
Takie style wpływają tylko na element, dla którego są ustawione.
1.4. @importuj regułę
@importuj regułę umożliwia ładowanie zewnętrznych arkuszy stylów. Aby dyrektywa @import działała, musi być umieszczona w arkuszu stylów (zewnętrznym lub wewnętrznym) przed wszystkimi innymi regułami:
Reguła @import służy również do dołączania czcionek internetowych:
@import url(https://fonts.googleapis.com/css?family=Open+Sans&subset=łac.,cyrylica);
2. Rodzaje selektorów
Selektory reprezentują strukturę strony internetowej. Służą do tworzenia reguł formatowania elementów strony internetowej. Selektorami mogą być elementy, ich klasy i identyfikatory, a także pseudoklasy i pseudoelementy.
2.1. Selektor uniwersalny
Dopasowuje dowolny element HTML. Na przykład * (margin: 0;) zresetuje marginesy dla wszystkich elementów witryny. Selektora można również użyć w połączeniu z pseudoklasą lub pseudoelementem: *:after (style CSS) , *:checked (style CSS) .
2.2. Selektor elementów
Selektory elementów umożliwiają formatowanie wszystkich elementów tego typu na wszystkich stronach serwisu. Na przykład h1 (rodzina czcionek: Lobster, kursywa;) ustawi ogólny styl formatowania dla wszystkich nagłówków h1.
2.3. selektor klasy
Selektory klas umożliwiają stylizowanie jednego lub więcej elementów o tej samej nazwie klasy, umieszczonych w różnych miejscach na stronie lub na stronie. różne strony strona. Na przykład, aby utworzyć nagłówek z klasą nagłówka, dodaj atrybut class z nagłówkiem wartości do tagu otwierającego
i ustaw styl dla określonej klasy. Style utworzone za pomocą klasy można zastosować do innych elementów, niekoniecznie tego typu.
Instrukcja obsługi komputer osobisty
.headline ( text-transform: wielkie litery; kolor: jasnoniebieski; )2.4. Selektor identyfikatora
Selektor ID umożliwia formatowanie jeden konkretny element. Identyfikator id musi być unikalny i może wystąpić tylko raz na jednej stronie.
#pasek boczny ( szerokość: 300px; pływak: lewo; )
2.5. Selektor potomków
Selektory potomka stosują style do elementów znajdujących się wewnątrz elementu kontenera. Na przykład ul li (text-transform: uppercase;) wybierze wszystkie elementy li, które są dziećmi wszystkich elementów ul.
Jeśli chcesz sformatować dzieci danego elementu, musisz nadać temu elementowi klasę stylu:
p.first a (color: green;) - ten styl zostanie zastosowany do wszystkich linków, potomków akapitu z klasą first ;
p .first a (kolor: zielony;) - jeśli dodasz spację, to linki znajdujące się wewnątrz dowolnego tagu .first class będącego dzieckiem elementu będą stylizowane
Najpierw a (kolor: zielony;) - ten styl zostanie zastosowany do dowolnego linku znajdującego się wewnątrz innego elementu, oznaczonego klasą .first.
2.6. Selektor dzieci
Element potomny jest bezpośrednim dzieckiem elementu zawierającego. Element może mieć wiele elementów podrzędnych, a każdy element może mieć tylko jeden element nadrzędny. Selektor potomny umożliwia stosowanie stylów tylko wtedy, gdy element potomny znajduje się bezpośrednio po elemencie nadrzędnym i nie ma innych elementów pomiędzy nimi, tj. element potomny nie jest zagnieżdżony w niczym innym.
Na przykład p > strong wybierze wszystkie silne elementy, które są dziećmi elementu p.
2.7. Selekcjoner siostry
Relacje rodzeństwa występują między elementami, które mają wspólnego rodzica. Selektory elementów rodzeństwa pozwalają wybrać elementy z grupy elementów rodzeństwa.
h1 + p - zaznacza wszystkie pierwsze akapity bezpośrednio po dowolnym tagu
bez wpływu na pozostałe akapity;
h1 ~ p zaznacza wszystkie akapity, które są rodzeństwem dowolnego nagłówka h1 i bezpośrednio po nim.
2.8. Selektor atrybutów
Selektory atrybutów wybierają elementy na podstawie nazwy atrybutu lub wartości atrybutu:
[atrybut] - wszystkie elementy zawierające określony atrybut, - wszystkie elementy, dla których ustawiony jest atrybut alt;
selector[atrybut] - elementy tego typu zawierające określony atrybut, img - tylko obrazki, dla których ustawiony jest atrybut alt;
selector[attribute="value"] - elementy tego typu zawierające określony atrybut z konkretne znaczenie, img — wszystkie obrazy, których tytuł zawiera słowo kwiat ;
selector[attribute~="value"] - elementy częściowo zawierające podana wartość, na przykład, jeśli element ma wiele klas oddzielonych spacją, p to akapity, których nazwa klasy zawiera feature ;
selector[attribute|="value"] - elementy, których lista wartości atrybutów zaczyna się od podanego słowa, p - akapity, których nazwa klasy feature lub zaczyna się od feature ;
selector[atrybut^="wartość"] - elementy, których wartość atrybutu zaczyna się od podanej wartości, a - wszystkie linki zaczynające się od http:// ;
selector[attribute$="value"] - elementy, których wartość atrybutu kończy się podaną wartością, img - wszystkie obrazy w formacie png;
selector[attribute*="value"] - elementy, których wartość atrybutu zawiera określone słowo w dowolnym miejscu, a - wszystkie linki, których nazwa zawiera book .
2.9. Selektor pseudoklasy
Pseudoklasy to klasy, które w rzeczywistości nie są dołączone do znaczników HTML. Pozwalają na zastosowanie reguł CSS do elementów, gdy wystąpi zdarzenie lub jest zgodne z określoną regułą. Pseudoklasy charakteryzują elementy o następujących właściwościach:
:hover - dowolny element, nad którym znajduje się kursor myszy;
:focus - interaktywny element, do którego nawigowano za pomocą klawiatury lub aktywowano myszą;
:active - element, który został aktywowany przez użytkownika;
:valid - pola formularza, których zawartość została zweryfikowana w przeglądarce pod kątem zgodności z określonym typem danych;
:invalid - pola formularza, których zawartość nie pasuje do określonego typu danych;
:enabled - wszystkie aktywne pola formularza;
:disabled - wyłączone pola formularza, czyli w stanie nieaktywnym;
:in-range - pola formularza, których wartości mieszczą się w określonym zakresie;
:out-of-range - pola formularza, których wartości nie mieszczą się w ustawionym zakresie;
:lang() - elementy z tekstem w określonym języku;
:not(selector) - elementy, które nie zawierają podanego selektora - klasa, identyfikator, nazwa lub typ pola formularza - :not();
:target jest elementem #, do którego odwołuje się dokument;
:checked - wybrane (wybrane przez użytkownika) elementy formularza.
2.10. Selektor pseudoklas strukturalnych
Pseudoklasy strukturalne wybierają elementy potomne zgodnie z parametrem podanym w nawiasach:
:nth-child(odd) - nieparzyste elementy potomne;
:nth-child(even) - parzyste elementy potomne;
:nth-child(3n) - co trzeci element wśród dzieci;
:nth-child(3n+2) - wybiera co trzeci element, zaczynając od drugiego elementu potomnego (+2) ;
:nth-child(n+2) - wybiera wszystkie elementy, zaczynając od drugiego;
:nth-child(3) - wybiera trzeci element potomny;
:nth-last-child() - na liście elementów potomnych wybiera element o określonej lokalizacji, podobnie jak :nth-child() , ale zaczynając od ostatniego, w przeciwnym kierunku;
:first-child - pozwala na stylizację tylko pierwszego elementu potomnego znacznika;
:last-child - pozwala sformatować ostatni element potomny znacznika;
:only-child - wybiera element, który jest jedynym dzieckiem;
:empty - wybiera elementy, które nie mają dzieci;
:root - wybiera element będący korzeniem dokumentu - element html.
2.11. Selektor pseudoklasy typu strukturalnego
Wskaż określony typ tagu podrzędnego:
:nth-of-type() - wybiera elementy analogicznie do :nth-child() , biorąc pod uwagę tylko typ elementu;
:first-of-type - wybiera pierwsze dziecko danego typu;
:last-of-type - wybiera ostatni element danego typu;
:nth-last-of-type() - wybiera element danego typu na liście elementów zgodnie z określoną lokalizacją, zaczynając od końca;
:only-of-type — wybiera jedyny element określonego typu spośród dzieci elementu rodzica.
2.12. Selektor pseudoelementów
Pseudoelementy służą do dodawania treści, które są generowane za pomocą właściwości content:
:first-letter - wybiera pierwszą literę każdego akapitu, dotyczy tylko elementów blokowych;
:first-line - wybiera pierwszą linię tekstu elementu, dotyczy tylko elementów blokowych;
:before - wstawia wygenerowaną zawartość przed elementem;
:after — dodaje wygenerowaną zawartość po elemencie.
3. Kombinacja selektorów
Aby dokładniej wybrać elementy do formatowania, możesz użyć kombinacji selektorów:
img:nth-of-type(even) — zaznaczy wszystkie parzyste obrazy, których tekst alternatywny zawiera słowo css .
4. Grupowanie selektorów
Ten sam styl można zastosować do wielu elementów jednocześnie. Aby to zrobić, po lewej stronie deklaracji wypisz niezbędne selektory oddzielone przecinkami:
H1, h2, p, span ( kolor: pomidor; tło: białe; )
5. Dziedziczenie i kaskada
Dziedziczenie i kaskadowanie to dwa podstawowe pojęcia w CSS, które są ze sobą ściśle powiązane. Dziedziczenie oznacza, że elementy dziedziczą właściwości po swoim rodzicu (element, który je zawiera). Kaskada przejawia się na drodze różne rodzaje arkusze stylów są stosowane do dokumentu i jak sprzeczne reguły zastępują się nawzajem.
5.1. Dziedzictwo
Dziedzictwo to mechanizm, dzięki któremu pewne właściwości są przekazywane z przodka na jego potomków. Specyfikacja CSS przewiduje dziedziczenie właściwości związanych z zawartością tekstową strony, takich jak color , font , letter-spacing , line-height , list-style , text-align , text-indent , text-transform , visible , spacje i odstępy między wyrazami. W wielu przypadkach jest to wygodne, ponieważ nie musisz ustawiać rozmiaru czcionki i rodziny czcionek dla każdego elementu na stronie internetowej.
Właściwości formatowania bloku nie są dziedziczone. Są to background , border , display , float i clear , height i width , margin , min-max-height i -width , outline , overflow , padding , position , text-decoration , vertical-align i z-index .
Dziedziczenie wymuszone
Możesz użyć słowa kluczowego inherit, aby wymusić na elemencie dziedziczenie dowolnej wartości właściwości z elementu nadrzędnego. Działa to nawet w przypadku właściwości, które nie są domyślnie dziedziczone.
Jak ustawiane są i działają style CSS
1) Style mogą być dziedziczone z elementu nadrzędnego (właściwości dziedziczone lub przy użyciu wartości inherit);
2) Style w arkuszu stylów poniżej zastępują style w arkuszu stylów powyżej;
3) Jeden element można wystylizować od różne źródła. Możesz sprawdzić, które style są stosowane w trybie programisty przeglądarki. Aby to zrobić, kliknij element. kliknij prawym przyciskiem myszy myszy i wybierz "Wyświetl kod" (lub coś podobnego). Prawa kolumna zawiera listę wszystkich właściwości, które są ustawione dla tego elementu lub odziedziczone z elementu nadrzędnego, a także pliki stylów, w których są one określone, oraz numer seryjny wiersza kodu.
![](https://i0.wp.com/html5book.ru/wp-content/uploads/2015/01/nasledovanie-stiley.png)
4) Podczas definiowania stylu możesz użyć dowolnej kombinacji selektorów — selektora elementu, pseudoklasy elementu, klasy lub identyfikatora elementu.
div (obramowanie: 1px solid #eee;) #wrap (szerokość: 500px;) .box (float: lewo;) .clear (clear: oba;)
5.2. Kaskada
Kaskadowe to mechanizm kontrolujący efekt końcowy w sytuacji, gdy do tego samego elementu stosowane są różne reguły CSS. Istnieją trzy kryteria, które określają kolejność stosowania właściwości — reguła !ważna, specyfika i kolejność, w jakiej arkusze stylów są uwzględniane.
Zasada!ważne
Wagę reguły można określić za pomocą słowa kluczowego !important, które jest dodawane bezpośrednio po wartości właściwości, na przykład span (font-weight: bold!important;) . Regułę należy umieścić na końcu deklaracji przed nawiasem zamykającym, bez spacji. Taka deklaracja będzie miała pierwszeństwo przed wszystkimi innymi przepisami. Ta reguła pozwala anulować wartość właściwości i ustawić nową dla elementu z grupy elementów w przypadku, gdy nie ma bezpośredniego dostępu do pliku stylu.
Specyficzność
Dla każdej reguły przeglądarka oblicza specyfika selektora, a jeśli element ma sprzeczne deklaracje właściwości, brana jest pod uwagę reguła o najwyższej szczegółowości. Wartość swoistości składa się z czterech części: 0, 0, 0, 0 . Specyfika selektora jest zdefiniowana w następujący sposób:
0, 1, 0, 0 dodaje się dla id;
dla klasy 0, 0, 1, 0 dodaje się;
0, 0, 0, 1 jest dodawane dla każdego elementu i pseudoelementu;
dla stylu wbudowanego dodanego bezpośrednio do elementu, 1, 0, 0, 0 ;
uniwersalny selektor nie ma specyfiki.
H1 (kolor: jasnoniebieski;) /*swoistość 0, 0, 0, 1*/ em (kolor: srebrny;) /*swoistość 0, 0, 0, 1*/ h1 em (kolor: złoty;) /*swoistość: 0, 0, 0, 1 + 0, 0, 0, 1 = 0, 0, 0, 2*/ div#main p.about (kolor: niebieski;) /*specyficzność: 0, 0, 0, 1 + 0 , 1, 0, 0 + 0, 0, 0, 1 + 0, 0, 1, 0 = 0, 1, 1, 2*/ .sidebar (kolor: szary;) /*specyficzność 0, 0, 1, 0 */ #sidebar (color: orange;) /*swoistość 0, 1, 0, 0*/ li#sidebar (color: aqua;) /*swoistość: 0, 0, 0, 1 + 0, 1, 0, 0 = 0, 1, 0, 1*/
W rezultacie do elementu zostaną zastosowane te zasady, których specyfika jest większa. Na przykład, jeśli element ma dwie specyfiki o wartościach 0, 0, 0, 2 i 0, 1, 0, 1 , wygra druga reguła.
Kolejność połączonych stołów
Możesz utworzyć wiele zewnętrznych arkuszy stylów i połączyć je z tą samą stroną internetową. Jeśli w różne stoły spotka różne znaczenia właściwości jednego elementu, to w rezultacie reguła z arkusza stylów na liście poniżej zostanie zastosowana do tego elementu.
Możesz połączyć kilka powiązanych właściwości CSS w jedną właściwość, aby zaoszczędzić czas i wysiłek.
Porównanie wartości indywidualnych i skróconych
Rozważ następującą regułę dla marginesów (skróty dla dopełnienia i obramowania działają w ten sam sposób):
div.foo ( górny margines: 1 em; prawy margines: 1,5 em; dolny margines: 2 em; lewy margines: 2,5 em; )
Tę zasadę można zapisać krócej:
div.foo ( margines: 1em 1,5em 2em 2,5em; )
Określenie mniej niż czterech wartości dla skróconej właściwości
Skrócona wartość może mieć mniej niż cztery wartości, jak podano poniżej. Wyniki są uporządkowane według liczby podanych wartości:
Katalog skrótów
Redukcje granic dla różnych właściwości |
Należy również wspomnieć, że można nawet ustawić wartości właściwości granicy (border ) tylko dla jednej granicy elementu w następujący sposób: szerokość obramowania po lewej: 2px; styl obramowania po lewej: solidny; kolor lewego obramowania: czarny; |
Skróty do niektórych właściwości margin (margin), padding ( padding ) i border ( border ) | Wszystko to działa w taki sam sposób, jak pokazano powyżej w sekcji „Wybieranie między jedną właściwością a skrótem” powyżej. |
Skróty czcionek | Za pomocą jednej linii skrótu możesz zdefiniować rozmiar czcionki, grubość, styl, rodzinę i wysokość linii. Rozważmy na przykład następujący kod: rozmiar czcionki: 1,5 em wysokość linii: 200% grubość czcionki: pogrubiona; styl czcionki: kursywa; rodzina czcionek: Georgia, „Times New Roman”, szeryf Możesz to wszystko zdefiniować za pomocą następującej linii:czcionka: 1,5em/200% pogrubiona kursywa Georgia, „Times New Roman”, szeryf; |
Skrót od tła | Za pomocą jednej linii CSS możesz zdefiniować kolor tła, obraz tła, powtórzenie obrazu i położenie obrazu. Weźmy następujący kod: kolor tła: #000; obraz w tle: url(obraz.gif); powtarzanie w tle: bez powtórzeń; pozycja tła: u góry po lewej; Można to przedstawić za pomocą następującego skrótu:background:#000 url(image.gif) bez powtarzania w lewym górnym rogu; |
Skróty dla list | W tym przypadku podobna historia z lista właściwości umożliwia ustawienie wartości właściwości dla typu znacznika listy, pozycji i obrazu w jednym wierszu. Weźmy następujący kod: typ-listy: okrąg; pozycja w stylu listy: wewnątrz; list-style-image: url(bullet.gif) ; Odpowiada to następującemu:styl listy: kółko wewnątrz url(bullet.gif); |
Stosowanie CSS do HTML
Istnieją trzy sposoby zastosowania CSS do dokumentu HTML:
- strunowy;
- zagnieżdżone;
- zewnętrzne arkusze stylów.
Style linii
Możesz zastosować arkusz stylów do elementu, używając atrybutu style w następujący sposób:
W ramach tego atrybutu wymienione są wszystkie właściwości CSS i ich wartości.
Zaletą stylów wbudowanych jest to, że przeglądarka będzie zmuszona do korzystania z tych ustawień. Wszystkie inne style zdefiniowane w innych arkuszach stylów, a nawet zagnieżdżone w tytuł dokumentu, zostaną zastąpione przez te style.
Poważnym problemem ze stylami inline jest to, że znacznie utrudniają one utrzymanie stylu. Korzystanie z CSS ma na celu oddzielenie prezentacji dokumentu od jego struktury, ale style wbudowane działają dokładnie na odwrót — rozpraszają reguły prezentacji w całym dokumencie.
Poza problemami z utrzymaniem, nie uzyskasz żadnych korzyści z istotnej części samego CSS: kaskadowania.
Style zagnieżdżone
Zagnieżdżone arkusze stylów są umieszczane na początku dokumentu wewnątrz elementu stylu, jak na poniższej przykładowej stronie:
Zaletą zagnieżdżonych arkuszy stylów jest to, że nie trzeba dodawać atrybutu stylu do każdego akapitu — można je wszystkie stylizować za pomocą jednej definicji. Oznacza to również, że jeśli musisz zmienić wygląd zewnętrzny wszystkich paragrafów będzie można to zrobić w jednym miejscu, jednak wszystko to jednak ogranicza się do jednego dokumentu.
Zewnętrzne arkusze stylów
Zewnętrzne arkusze stylów oznaczają umieszczenie wszystkich definicji CSS w osobnym pliku, zapisanie go z rozszerzeniem pliku CSS, a następnie zastosowanie go do dokumentów HTML za pomocą elementu połączyć w tytule dokumentu. Na przykład:
Zewnętrzne arkusze stylów umożliwiają przechowywanie wszystkich definicji stylów w jednym pliku. Oznacza to, że możesz wprowadzać zmiany w całej witrynie, zmieniając tylko jeden . przeglądarka internetowa może jednak pobrać go raz, a następnie buforować dla wszystkich innych dokumentów, które się do niego odwołują, co zmniejsza ilość pobieranych informacji.
Importowanie arkuszy stylów
Istnieje inny sposób importowania zewnętrznych arkuszy stylów w pliki HTML- Oświadczenie @import. Jest wstawiany do zagnieżdżonego arkusza stylów w taki sam sposób, jak zagnieżdżony CSS pokazany powyżej. Składnia wygląda tak:
Dwie podstawowe koncepcje CSS to: dziedzictwo oraz kaskadowe. Dziedzictwo dotyczy tego, w jaki sposób element w znacznikach HTML dziedziczy właściwości elementów przodków (w których jest zawarty) i przekazuje je swoim potomkom, podczas gdy kaskadowe zajmuje się deklaracjami CSS, które mają zastosowanie do dokumentu i jak sprzeczne reguły zastępują się nawzajem.
Dziedzictwo
Dziedzictwo w CSS jest mechanizmem, dzięki któremu pewne właściwości są przekazywane z elementu przodka do jego elementów potomnych.
Korzystając z dziedziczenia, możesz na przykład zdefiniować właściwości czcionki dla elementów html lub body, które będą dziedziczone przez wszystkie inne elementy. Możesz zdefiniować kolory tła i pierwszego planu dla konkretnego elementu kontenera, a kolor pierwszego planu będzie automatycznie dziedziczony przez elementy podrzędne w tym kontenerze.
Każdy element w Dokument HTML odziedziczy wszystkie odziedziczone właściwości swojego przodka, z wyjątkiem element główny(html ), który nie ma rodzica.
Kaskadowe
Kaskadowe jest mechanizmem, który rządzi efektem końcowym, gdy wiele sprzecznych deklaracji CSS jest zastosowanych do tego samego elementu. Istnieją trzy główne pojęcia, które rządzą kolejnością stosowania deklaracji CSS:
- Znaczenie
- Specyficzność
- Zamówienie kod źródłowy
Znaczenie jest najważniejsza. Jeżeli dwie deklaracje mają jednakowe znaczenie, specyfika przepisów decyduje o tym, które z nich zostanie zastosowane. Jeśli reguły mają tę samą specyfikę, to kolejność kodu źródłowego kontroluje wynik.
Znaczenie
Znaczenie Deklaracje CSS zależą od tego, gdzie jest zdefiniowany. Sprzeczne deklaracje będą stosowane w następującej kolejności, późniejsze zastąpią poprzednie:
- Arkusze stylów agenta użytkownika
- Regularne deklaracje w arkuszach stylów użytkownika
- Regularne deklaracje w autorskich arkuszach stylów
- Ważne deklaracje w arkuszach stylów autorów
- Ważne deklaracje w arkuszach stylów użytkownika
Arkusz stylów agenta użytkownika to wbudowany arkusz stylów przeglądarki. Każda przeglądarka ma własne domyślne reguły, które określają sposób wyświetlania różnych elementy HTML jeśli żaden styl nie jest zdefiniowany przez użytkownika lub projektanta strony. Na przykład nieodwiedzone linki są zazwyczaj wyświetlane w kolorze niebieskim i podkreślone.
Arkusz stylów użytkownika to arkusz stylów zdefiniowany przez użytkownika. Nie wszystkie przeglądarki obsługują arkusze stylów użytkownika, ale mogą być bardzo przydatne, szczególnie dla użytkowników z pewnymi rodzajami braków funkcjonalnych. Na przykład osoba z dysleksją może mieć arkusz stylów, który definiuje pewne czcionki i kolory, które ułatwiają czytanie.
Arkusz stylów autora jest to, co zwykle nazywa się „arkuszem stylów”. Jest to arkusz stylów, który autor dokumentu (lub bardziej prawdopodobnie projektant witryny) napisał i dołączył (lub dołączył).
Aby zamienić zwykłą deklarację w ważną, musisz umieścić za nią !ważną dyrektywę. Jak widać, ważne deklaracje w arkuszu stylów użytkownika zastąpią wszystko inne, co ma sens.
Domyślny widok przeglądarki zostanie zastosowany tylko wtedy, gdy te deklaracje nie zostaną zastąpione przez żadne reguły w arkuszu stylów użytkownika lub autora, ponieważ arkusz stylów klienta użytkownika ma najniższy priorytet.
Specyficzność
Specyficzność jest definiowany jako miara tego, jak szczegółowy jest selektor jakiejś reguły. Selektor o niskiej wartości może pasować do wielu elementów (np. *, który dopasowuje każdy element w dokumencie), podczas gdy selektor o wysokiej wartości może pasować tylko do jednego elementu na stronie (np. #nav , który dopasowuje tylko element o identyfikatorze, który pasuje nawig. ).
Specyfikę selektora można łatwo obliczyć. Jeśli co najmniej dwie deklaracje są sprzeczne dla danego elementu, a wszystkie deklaracje mają jednakowe znaczenie, to deklaracja z najbardziej szczegółowym selektorem będzie miała pierwszeństwo w regule.
Specyfika składa się z czterech komponentów, które można nazwać a, b, c i d. Składnik a jest najbardziej ograniczający, d najmniej.
- Składnik a jest zdefiniowany bardzo prosto: jest to 1 dla deklaracji atrybutu stylu, w przeciwnym razie jest to 0 .
- składnik b to liczba selektorów identyfikatora w selektorze (te, które zaczynają z#).
- Składnik c to liczba selektory atrybutów, w tym selektory klas - i pseudoklasy.
- Komponent d to liczba typów elementów i pseudoelementów w selektorze.
Po niewielkich obliczeniach można uzyskać ciąg tych czterech składników, który określa specyfikę dowolnej reguły. Deklaracje CSS w atrybucie style nie mają selektora, więc ich specyfika zawsze będzie wynosić 1,0,0,0 .
W tabeli przedstawiono kilka przykładów.
Selektor | a | b | c | d | Specyficzność |
---|---|---|---|---|---|
h1 | 0 | 0 | 0 | 1 | 0,0,0,1 |
.bla | 0 | 0 | 1 | 0 | 0,0,1,0 |
#bar | 0 | 1 | 0 | 0 | 0,1,0,0 |
html>głowa+ciało ul#nav *.home a:link | 0 | 1 | 2 | 5 | 0,1,2,5 |
Pamiętaj, że łączące znaki (takie jak > , + i
Stosowanie arkusza stylów do dokumentu
Osadzanie arkuszy stylów w dokumencie
Ustalanie stylu dla pojedynczego fragmentu dokumentu
Importowanie arkusza stylów
Określanie wielu właściwości jednocześnie
Selektory grupujące
Komentowanie arkusza stylów
Właściwości stylu
właściwości tła
Elementy oprawy
Lista właściwości
Właściwości tekstu
Grupowanie właściwości w celu łatwiejszego definiowania stylu
Dziedziczenie własności
Korzystanie z selektorów kontekstowych
Dlaczego arkusze stylów nazywane są kaskadowymi
Arkusze stylów są dostarczane przez zalecenia W3C i są standardowym narzędziem do formatowania stron internetowych przy użyciu metod DTP. Microsoft Internet Explorer 3.0 był pierwszą przeglądarką obsługującą arkusze stylów. Przeglądarka Netscape Navigator obsługuje arkusze stylów od wersji 4.0B2 (Beta 2), dostępnej od lutego 1997 roku.
Szczegóły zaleceń W3C można znaleźć pod adresem: h ttp://www.w3.org/pub/WWW/TR/WD-cssl.html . Standard W3C używa terminu „kaskadowe arkusze stylów poziomu 1 (CSSI”).
Na początek konieczne jest wyjaśnienie, co oznacza nazwa „arkusze stylów”. Większość nowoczesnych edytorów tekstu pozwala użytkownikowi zdefiniować styl, który będzie używany do formatowania dokumentu. W szczególności możesz wybrać styl akapitowy z pojedynczym odstępem między wierszami, czcionką Courier i jednocalowym lewym marginesem. Ten styl formatowania można następnie zastosować do dowolnej liczby akapitów w tym i innych dokumentach. Arkusze stylów NT
M Działam dokładnie w ten sam sposób. Poniżej znajduje się krótka lista głównych funkcji:Zmiana odstępów między wierszami, słowami i poszczególnymi znakami.
Ustawia lewy, prawy, górny i dolny margines elementu (blok tekstu kontenera HTML).
Ustaw dopełnienie elementu.
Zmień rozmiar, styl i inne atrybuty czcionki elementu.
Ustawia obramowanie wokół elementu.
Włączenie zdjęcie w tle i kolor tła elementu.
Ogromną zaletą arkuszy stylów HTML jest możliwość oddzielenia operacji formatowania od treści dokumentu. Najpierw określa się, jak tekst powinien wyglądać w tym czy innym miejscu na stronie, a następnie wprowadza się sam tekst. Jeśli później zdecydujesz się np. zmienić kolor czcionki nagłówków na niebieski, wystarczy zmienić tylko styl tych nagłówków. Nie musisz wprowadzać żadnych zmian w tekście. .
Istnieją cztery metody zastosowania arkusza stylów do dokumentu:
-
border - służy do definiowania granicy z lewej, prawej, górnej i dolnej części elementu. Możesz ustawić szerokość, kolor i styl ramki.
-
margines — służy do definiowania marginesów z lewej, z prawej, u góry i u dołu elementu. Możesz także ustawić szerokość marginesów.
-
padding służy do wskazania wolnej przestrzeni między obramowaniem a zawartością elementu.
-
kontener UL .
Właściwości zapewniają pełną kontrolę nad sposobem renderowania tekstu przez przeglądarkę. Za ich pomocą można kontrolować kolor, rozmiar, czcionkę, odstępy między wierszami itp. Wszystkie właściwości tekstu zostaną szczegółowo opisane poniżej.
Wiele z opisanych powyżej właściwości można ze sobą zgrupować. Więc zamiast reguły
H1 (grubość czcionki: pogrubienie; styl czcionki: normalny; rozmiar czcionki: 12 punktów; rodzina czcionek: szeryfowa)
krótsze oświadczenie można napisać:
H1 (czcionka: pogrubiona normalna szeryfowa 12pt)
Arkusze stylów HTML umożliwiają grupowanie właściwości obramowania, tła, czcionki, listy, marginesów i dopełnienia. Rozważmy każdą z grup osobno.
graniczna grupa majątkowa
Właściwości obramowania można pogrupować na pięć różnych sposobów. Możesz zdefiniować właściwości dla oddzielna strona framework przy użyciu
b order-top, border-right, border-bottom AND border-left lub zdefiniuj całe obramowanie naraz z obramowaniem.Za pomocą każdej z tych właściwości możesz określić szerokość, styl i kolor obramowania, na przykład:
b top zamówienia: cienka kropkowana czarna
grupa właściwości tła
W grupie właściwości tła możesz określić wartości koloru, obrazu, powtórzenia, załącznika i pozycji, na przykład:
tło: biały adres URL (http://www.myserver.com/image/bg.gif) naprawiono powtarzanie-x w lewym górnym rogu
czcionka grupy właściwości
Grupie czcionek można nadać wagę, styl, rozmiar i wartości rodziny, na przykład:
czcionka: pogrubiona normalna 12pt razy, szeryfowa
lista właściwości grupy
Właściwości są grupowane przy użyciu właściwości list-style. Istnieje możliwość określenia obrazu dla znacznika, rodzaju i położenia znacznika, na przykład:
styl listy: kwadratowy adres URL (http://www.myserver.com/images/marker.gif) wewnątrz
marża grupa nieruchomości
W przypadku grupy marginesów możesz zdefiniować szerokość każdego z marginesów górnego, prawego, dolnego i lewego w następujący sposób:
margines: .5in 1in .5in 1in
Jeśli określona jest tylko jedna wartość, przeglądarka sprawi, że pozostałe pola będą miały taką samą szerokość. Jeśli jedna lub dwie wartości nie zostaną określone, marginesy o nie określonej wartości będą miały taką samą szerokość jak marginesy przeciwne. Na przykład, jeśli pominiesz ostatnią wartość (lewą), szerokość lewych marginesów będzie równa szerokości prawych marginesów, czyli 1 cal.
dopełnienie grupy właściwości
W grupie dopełnienia można określić wartości dla górnego, prawego, dolnego i lewego, na przykład:
wyściółka: 0,25 cala 0,25 cala 0,25 cala 0,25 cala
Jeśli określono tylko jedną wartość, przeglądarka przypisze tę samą wartość do brakujących wartości. Jeśli jedna lub dwie wartości nie zostaną określone, spacje z nie określonymi wartościami będą miały taką samą szerokość jak ich przeciwieństwa. Na przykład, jeśli pominiesz ostatnią wartość (po lewej), wolna przestrzeń między lewą stroną ramki a zawartością elementu będzie taka sama, jak spacja po prawej stronie.
W HTML znaczniki podrzędne dziedziczą niektóre właściwości znaczników nadrzędnych. Na przykład wszystkie tagi kontenera
(< P >oraz- ) będzie miał pewne właściwości tagu . Ten sam tag
- dziedziczy właściwości tagów
- . Rozważ następujący kod:
- : jeden, gdy jest objęty tagiem
- tylko jeśli ten znacznik jest znacznikiem podrzędnym
-
:
- możesz zdefiniować inny styl, który jest ważny tylko wtedy, gdy jest podporządkowany tagowi
-
:
UL LI (typ listy: kwadrat)
Zauważ, że lista selektorów nie jest oddzielona przecinkami. W przeciwnym razie wszystkim znacznikom listy zostanie przypisany ten sam styl.
W wytycznych W3C arkusze stylów są określane jako „kaskadowe arkusze stylów”. " ponieważ do układu strony internetowej można użyć nie jednej, ale kilku tabel jednocześnie. Jednocześnie widz sam określa kolejność korzystania z tabel i rozwiązuje konflikty między nimi na zasadzie kaskadowania. Na przykład arkusz stylów dla strony może być określony nie tylko przez jej autora, ale także przez czytelnika, a następnie kaskadowe reguły decydują, który arkusz stylów zacznie obowiązywać.
Jak to działa? Przeglądarka przypisuje wagę każdej regule. Interpretując każdy tag, program przegląda wszystkie reguły tego tagu i sortuje je według wartości współczynnika wagowego. Wygrywa najbardziej „ważna” zasada.
Istnieją następujące ogólne zasady rozwiązywania konfliktów między arkuszami stylów:
Pierwszeństwo typów arkuszy stylów w dokumencie (w porządku malejącym): bieżące przypisanie stylu (inline), osadzanie, łączenie.
Możesz również zmienić wagę reguły za pomocą słowa kluczowego ważne. W poniższym przykładzie wartość czerwonej właściwości
OL LI (typ-listy: dziesiętny)
Dla tego samego tagu
- możesz zdefiniować inny styl, który jest ważny tylko wtedy, gdy jest podporządkowany tagowi
Cześć. To jest akapit tekstu. To jest podkreślone
Arkusz stylów tego dokumentu ustawia kolor znacznika
< P > jednak niebieski to kolor znacznika nie zdefiniowany wprost (domyślnie czarny). Nie ma się czym martwić, ponieważ ten tag znajduje się w kontenerze nadrzędnymI w ten sposób dziedziczy kolor niebieski.
Czasami konieczne jest zdefiniowanie dwóch (lub więcej) stylów dla jednego tagu. Na przykład może być konieczne określenie dwóch stylów tagu
-
, a drugi, gdy podlega tagowi
- . Można to zrobić za pomocą selektorów kontekstowych.
Selektor kontekstu określa dokładną sekwencję tagów, do których zostanie zastosowany określony styl. Innymi słowy, możesz określić, że jakiś styl ma być zastosowany, na przykład w tagu
H1 (kolor: czerwony ! ważna grubość czcionki: pogrubiona rodzina czcionek: bezszeryfowa ! ważna)
Klasa to definicja kilku stylów jednego elementu, z których każdy może być użyty w odpowiednim miejscu na stronie. Na przykład można zdefiniować trzy odmiany stylu nagłówka H1. Definiowanie odmian jest podobne do określania stylu, do nazwy znacznika dodawana jest tylko dowolna nazwa klasy, oddzielona kropką:
H1 niebieski (kolor: niebieski) H1.red (kolor: czerwony) H1.black (kolor: czarny)
Teraz, w tym tag w dokumencie
, możesz określić w nim określony styl za pomocą atrybutu CLASS:
czerwony nagłówek
- dziedziczy właściwości tagów
Łączenie — możesz połączyć dokument HTML z arkuszem stylów przechowywanym w osobnym pliku.
Osadzanie - możesz osadzić arkusz stylów w dokumencie HTML za pomocą kontenera
Etykietka
Jak wspomniano wcześniej, arkusze stylów są przechowywane w plikach tekstowych, które można łatwo edytować. Ich ręczne tworzenie nie jest trudne, ale istnieją specjalne edytory arkuszy stylów, takie jak popularny program Microsoft FrontPage.
Arkusze stylów umożliwiają zdefiniowanie stylu dla jednego lub więcej znaczników. Na przykład możesz utworzyć arkusz stylów, który definiuje style dla tagów
,
,
I
. Każda definicja nazywa się reguła
(rule mi). Reguła zawiera selektor(tag HTML), po którym następuje deklaracja(definicja stylu). Selektor jest łącznikiem między definicją a tagiem. Poniżej znajduje się przykład reguły określającej styl dla każdego z tagów nagłówka
:
H1 (kolor: niebieski)
Deklaracja jest ujęta w nawiasy klamrowe. Każda deklaracja składa się z dwóch części: nazwy właściwości i przypisanej jej wartości, oddzielonych dwukropkiem. HTML zawiera dziesiątki właściwości (rozmiar czcionki, styl czcionki, kolor, prawy margines itp.), które zostaną omówione poniżej. Każda właściwość może przyjmować kilka wartości, z których jedna jest do niej domyślnie przypisana.
W poprzednim przykładzie określono tylko jedną właściwość koloru. Nic jednak nie stoi na przeszkodzie, aby w jednym tagu zdefiniować całą gamę właściwości, oddzielając je od siebie średnikiem:
HI (kolor: niebieski; rozmiar czcionki: 12 pkt; linia tekstu: środek)
W tym przykładzie przeglądarka wyświetli każdy nagłówek pierwszego poziomu za pomocą 12-punktowej niebieskiej czcionki i wyrówna je do środka okna. Wszystkie inne właściwości będą używać swoich wartości domyślnych (na przykład właściwość font-style zostanie ustawiona na normalny).
Jeśli chcesz zdefiniować ten sam styl dla wielu tagów, możesz umieścić je na osobnej liście:
P (rozmiar czcionki: 12 pkt)
UL (rozmiar czcionki: 12 pkt)
LI (rozmiar czcionki: 12 pkt)
HTML pozwala zrobić to samo w bardziej zwartej formie - w jednym wierszu:
P, UL, LI (rozmiar czcionki: 12 pkt)
Przecinek jest tutaj wymagany. Jeśli zostanie pominięty, zmieni się znaczenie reguły (patrz sekcja „ ” w dalszej części tego rozdziału).
Ponieważ arkusz stylów staje się coraz bardziej złożony, prawdopodobnie będziesz musiał podać więcej informacji o celu konkretnej reguły. Komentarze są umieszczane między znakami /* i */ i są ignorowane przez widzów, na przykład:
KORPUS (margines lewy: lin) /* Margines 1 cal */
H1 (margin-lewy: -lin) /* Przesunięcie w lewo o 1 cal */
H2 (margines-lewy: -lin) /* Przesunięcie w lewo o 1 cal */
HTML umożliwia zdefiniowanie szerokiej gamy właściwości arkusza stylów. Nazwy właściwości składają się z jednego, a częściej dwóch lub trzech słów oddzielonych myślnikiem. W nazwach złożonych pierwsze słowo zwykle reprezentuje kategorię i jest również skrótem nazwy właściwości (patrz sekcja „ ”).
Tabela zawiera przegląd właściwości arkusza stylów HTML Kolumna Kategoria pokazuje, czy właściwość można pogrupować z innymi właściwościami. Trzecia kolumna zawiera informacje o tym, czy właściwość jest dziedziczona przez znaczniki podrzędne (patrz rozdział " " o dziedziczeniu właściwości).
Dziedzictwo |
||||
Arkusze stylów HTML umożliwiają dekorowanie tła elementu strony kolorem lub obrazem. Należy zauważyć, że tutaj i poniżej omówimy użycie właściwości nie dla całej strony, ale dla osobnego elementu. Na przykład, jeśli zdefiniujesz tło dla tagu
U L (obraz w tle: URL(http://www.myserver.com/images/watermark.gif)) Zalecenia W3C zapewniają możliwość definiowania obramowań, marginesów i odstępów dla elementów strony. Możesz na przykład umieścić nagłówek w ramce lub zmienić marginesy w tagu akapitu<Р>tak, aby wciąć wszystkie akapity tekstu. Do tych celów możesz użyć następujących grup właściwości: Te właściwości służą do określania sposobu wyświetlania list. Można ich używać do zmiany pozycji znacznika (właściwość list-style-position), stylu lub obrazu znacznika (właściwości list-style-type i list-style-image). Właściwości listy są dziedziczone, tj. jeśli właściwość jest zdefiniowana w tagu
|