Probabil că toată lumea știe asta HTML specifică structura documentului și css(Cascading Style Sheets, cascading style sheets) este responsabil pentru proiectarea unei pagini web, poziția și aspectul elementelor. S-a întâmplat ca HTML și CSS să nu fie folosite separat. Orice pagină web este, de fapt, o combinație de cod HTML și cod CSS. Fără cunoștințe de bază despre acestea
tehnologii, nu va fi posibilă alcătuirea corectă a unui singur document. Mulți dintre noi am studiat aceste tehnologii mai detaliat. Dar personal, nu am reușit niciodată să „înțeleg” pe deplin toate adevărurile și posibilitățile CSS. În continuare, voi încerca să scot în evidență cel mai mult Puncte importante lucruri de știut despre CSS.
Ce sunt foile de stil în cascadă?
Stilurile sunt un set de setări care controlează aspectul și poziția elementelor paginii web. Priviți imaginile de mai jos pentru a înțelege diferența:
Codul sursă pentru un astfel de document arată astfel:
1 |
|
Codul HTML în sine nu s-a schimbat, iar singura adăugare este șirul . Ea se referă la fișier extern cu o descriere a stilurilor sub numele style.css. Conținutul acestui fișier este afișat mai jos:
1 | corp ( |
În dosar stil.css tocmai a descris toți parametrii de design ai unor etichete cum ar fi, <corp>,
Rețineți că etichetele în sine în codul HTML sunt scrise ca de obicei. Deoarece fișierul de stil poate fi referit din orice document web, acest lucru are ca rezultat date mai puțin repetitive. Și datorită separării codului și designului, crește flexibilitatea gestionării tipului de document și viteza de lucru pe site.
Tipuri de stil
Există mai multe tipuri de stiluri care pot fi aplicate împreună aceluiași document. Acestea sunt stilul browser, stilul autorului și stilul utilizatorului.
Stil browser. Stiluri similare se aplică atunci când utilizați HTML „pur”.
Stilul utilizatorului. Acesta este un stil pe care utilizatorul site-ului îl poate activa prin setările browserului. Acest stil are prioritate și suprascrie aspectul original al documentului.
Dacă apare un conflict la schimbarea stilului aceluiași element de document, atunci stilul utilizatorului are prioritate, urmat de stilul autorului și stilul browserului.
Cum se adaugă stiluri la o pagină?
Există mai multe moduri de a adăuga stiluri CSS la o pagină:
Stiluri înrudite
Când utilizați stiluri legate, descrierea selectoarelor și a valorilor acestora se află într-un fișier separat, de obicei cu extensia css, iar eticheta este utilizată pentru a lega documentul la acest fișier . Această etichetă este plasată în container
.Puteți adăuga aceste stiluri astfel:
1 | „-//W3C//DTD XHTML 1.0 Strict//EN” href= „http://www.htmlbook.ru/main.ess” / > head > antet
h1
> |
Și fișierul de stil va arăta astfel:
1 | H1( |
După cum puteți vedea din codul de mai sus, pe pagina html este adăugată o intrare care îi spune browserului de unde să obțină stilurile. Fișierul de stil în sine conține doar descrierea stilurilor. Această separare a codului html și css facilitează dezvoltarea și întreținerea site-urilor. Acest stil de aspect este recomandat să fie urmat.
Stiluri globale
Când se utilizează stiluri globale, proprietățile CSS sunt descrise în documentul însuși și se află în titlul paginii web. În ceea ce privește flexibilitatea și capacitățile, această metodă de adăugare a stilului este inferioară celei anterioare, dar vă permite și să stocați stiluri într-un singur loc, în acest caz chiar pe pagină folosind un container. . Stilurile interne au prioritate față de stilurile externe, dar înlocuiesc stilurile inline (specificate prin atributul stil).
...
1.3. Stiluri inline
Când scriem stiluri inline, scriem codul CSS în fișierul HTML, direct în interiorul etichetei elementului folosind atributul style:
Fii atent la acest text.
Astfel de stiluri afectează numai elementul pentru care sunt setate.
1.4. regulă @import
regulă @import vă permite să încărcați foi de stil externe. Pentru ca directiva @import să funcționeze, aceasta trebuie să fie plasată în foaia de stil (externă sau internă) înaintea tuturor celorlalte reguli:
Regula @import este folosită și pentru a include fonturi web:
@import url(https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,cyrillic);
2. Tipuri de selectoare
Selectoare reprezintă structura unei pagini web. Sunt folosite pentru a crea reguli pentru formatarea elementelor paginii web. Selectorii pot fi elemente, clasele și identificatorii acestora, precum și pseudo-clase și pseudo-elemente.
2.1. Selector universal
Se potrivește cu orice element HTML. De exemplu, * (marja: 0;) va reseta marginile pentru toate elementele site-ului. Un selector poate fi folosit și în combinație cu o pseudo-clasă sau pseudo-element: *:after (stiluri CSS) , *:checked (stiluri CSS) .
2.2. Selector de elemente
Selectoarele de elemente vă permit să formatați toate elementele de acest tip pe toate paginile site-ului. De exemplu, h1 (familie de fonturi: homar, cursiv;) va seta stilul general de formatare pentru toate titlurile h1.
2.3. selector de clasă
Selectorii de clasă vă permit să stilați unul sau mai multe elemente cu același nume de clasă, plasate în locuri diferite pe pagină sau pe pagini diferite site-ul. De exemplu, pentru a crea un titlu cu clasa de titlu, adăugați atributul de clasă cu titlul de valoare la eticheta de deschidere
și setați stilul pentru clasa specificată. Stilurile create cu o clasă pot fi aplicate altor elemente, nu neapărat de acel tip.
Manual de utilizare calculator personal
.titlu (text-transform: majuscule; culoare: albastru deschis; )2.4. Selector ID
Selectorul ID permite formatarea unu element specific. ID-ul trebuie să fie unic și poate apărea o singură dată pe o singură pagină.
#sidebar ( lățime: 300px; float: stânga; )
2.5. Selector de descendenți
Selectorii descendenți aplică stiluri elementelor situate în interiorul unui element container. De exemplu, ul li (text-transform: majuscule;) va selecta toate elementele li care sunt copii ale tuturor elementelor ul.
Dacă doriți să formatați copiii unui anumit element, trebuie să dați acelui element o clasă de stil:
p.first a (culoare: verde;) - acest stil va fi aplicat tuturor legăturilor, descendenți ai paragrafului cu clasa întâi ;
p .first a (culoare: verde;) - dacă adăugați un spațiu, atunci linkurile situate în interiorul oricărei etichete .first class care este un copil al elementului vor fi stilate
Mai întâi a (culoare: verde;) - acest stil va fi aplicat oricărui link situat în interiorul altui element, notat cu clasa .first.
2.6. Selector de copii
Un element copil este un copil direct al elementului său care îl conține. Un element poate avea mai multe elemente copil, iar fiecare element poate avea doar un element părinte. Selectorul copil permite aplicarea stilurilor numai dacă elementul copil vine imediat după elementul părinte și nu există alte elemente între ele, adică elementul copil nu este imbricat în nimic altceva.
De exemplu, p > strong va selecta toate elementele puternice care sunt copii ale elementului p.
2.7. Sora selectoare
Relațiile de frați apar între elemente care au un părinte comun. Selectoarele de elemente frați vă permit să selectați elemente dintr-un grup de elemente frați.
h1 + p - selectează toate primele paragrafe imediat după orice etichetă
fără a afecta restul paragrafelor;
h1 ~ p va selecta toate paragrafele care sunt frați cu orice titlu h1 și imediat după acesta.
2.8. Selector de atribute
Selectorii de atribute selectează elemente în funcție de numele sau valoarea atributului:
[atribut] - toate elementele care conțin atributul specificat, - toate elementele pentru care este setat atributul alt;
selector[atribut] - elemente de acest tip care contin atributul specificat, img - doar pozele pentru care este setat atributul alt;
selector[atribut="valoare"] - elemente de acest tip care conțin atributul specificat cu sens specific, img — toate imaginile al căror titlu conține cuvântul floare ;
selector[atribut~="valoare"] - elemente care conțin parțial valoare dată, de exemplu, dacă un element are mai multe clase separate printr-un spațiu, p sunt paragrafe al căror nume de clasă conține caracteristica ;
selector[atribut|="valoare"] - elemente a căror listă de valori de atribut începe cu cuvântul specificat, p - paragrafe al căror nume de clasă prezintă sau începe cu caracteristică;
selector[atribut^="valoare"] - elemente a căror valoare de atribut începe cu valoarea specificată, a - toate legăturile care încep cu http:// ;
selector[attribute$="valoare"] - elemente a căror valoare de atribut se termină cu valoarea specificată, img - toate imaginile în format png;
selector[atribut*="valoare"] - elemente a căror valoare de atribut conține cuvântul specificat oriunde, a - toate linkurile al căror nume conține book .
2.9. Selector de pseudo-clase
Pseudo-clasele sunt clase care nu sunt atașate etichetelor HTML. Acestea vă permit să aplicați reguli CSS elementelor atunci când are loc un eveniment sau respectă o anumită regulă. Pseudoclase caracterizează elemente cu următoarele proprietăți:
:hover - orice element care este trecut cu cursorul mouse-ului;
:focus - un element interactiv la care a fost navigat cu tastatura sau activat cu mouse-ul;
:active - elementul care a fost activat de utilizator;
:valid - câmpuri de formular al căror conținut a fost validat în browser pentru conformitatea cu tipul de date specificat;
:invalid - câmpuri de formular al căror conținut nu corespunde tipului de date specificat;
:activat - toate câmpurile de formular active;
:disabled - câmpuri de formular dezactivate, adică într-o stare inactivă;
:in-range - câmpuri de formular ale căror valori sunt în intervalul specificat;
:out-of-range - câmpuri de formular ale căror valori nu sunt incluse în intervalul setat;
:lang() - elemente cu text în limba specificată;
:not(selector) - elemente care nu conțin selectorul specificat - clasă, identificator, nume sau tip câmp de formular - :not() ;
:target este elementul # la care se face referire în document;
:checked - elemente de formular selectate (selectate de utilizator).
2.10. Selector structural de pseudo-clasă
Pseudoclase structurale selectează elementele copil conform parametrului specificat în paranteze:
:nth-child(odd) - elemente copil impar;
:nth-child(even) - chiar elemente copil;
:nth-child(3n) - fiecare al treilea element dintre copii;
:nth-child(3n+2) - selectează fiecare al treilea element, începând de la al doilea element copil (+2) ;
:nth-child(n+2) - selectează toate elementele, începând cu al doilea;
:nth-child(3) - selectează al treilea element copil;
:nth-last-child() - în lista de elemente copil, selectează elementul cu locația specificată, similar cu :nth-child() , dar începând de la ultimul, în sens invers;
:first-child - vă permite să stilați doar primul element copil al etichetei;
:last-child - vă permite să formatați ultimul element copil al etichetei;
:only-child - selectează un element care este singurul copil;
:empty - selectează elemente care nu au copii;
:root - selectează elementul care este rădăcina documentului - elementul html.
2.11. Selector de pseudo-clase de tip structural
Indicați un anumit tip de etichetă copil:
:nth-of-type() - selectează elemente prin analogie cu :nth-child() , luând în considerare doar tipul elementului;
:first-of-type - selectează primul copil al tipului dat;
:last-of-type - selectează ultimul element din tipul dat;
:nth-last-of-type() - selectează un element de tipul dat în lista de elemente în funcție de locația specificată, începând de la sfârșit;
:only-of-type - selectează singurul element de tipul specificat dintre copiii elementului părinte.
2.12. Selector de pseudo-element
Pseudo-elementele sunt folosite pentru a adăuga conținut care este generat folosind proprietatea conținut:
:first-letter - selectează prima literă a fiecărui paragraf, se aplică doar elementelor bloc;
:first-line - selectează prima linie a textului elementului, se aplică numai elementelor bloc;
:before - inserează conținutul generat înaintea elementului;
:after - Adaugă conținut generat după element.
3. Combinație de selectoare
Pentru o selecție mai precisă a elementelor pentru formatare, puteți utiliza combinații de selectoare:
img:nth-of-type(even) - va selecta toate imaginile par al căror text alternativ conține cuvântul css .
4. Gruparea selectoarelor
Același stil poate fi aplicat mai multor elemente în același timp. Pentru a face acest lucru, în partea stângă a declarației, enumerați selectorii necesari, despărțiți prin virgule:
H1, h2, p, span (culoare: roșie; fundal: alb; )
5. Moștenire și cascadă
Moștenirea și cascada sunt două concepte fundamentale în CSS care sunt strâns legate. Moștenirea înseamnă că elementele moștenesc proprietăți de la părintele lor (elementul care le conține). Cascada se manifestă în mod tipuri diferite foile de stil sunt aplicate documentului și modul în care regulile conflictuale se suprascriu reciproc.
5.1. Moştenire
Moştenire este mecanismul prin care anumite proprietăți sunt transmise de la un strămoș la descendenții săi. Specificația CSS prevede moștenirea proprietăților legate de conținutul text al unei pagini, cum ar fi culoarea , fontul , spațierea literei , înălțimea liniilor , stilul listei , alinierea textului , indentarea textului , transformarea textului , vizibilitatea , spații albe și spațiere între cuvinte. În multe cazuri, acest lucru este convenabil deoarece nu trebuie să setați dimensiunea și familia de fonturi pentru fiecare element de pe pagina web.
Proprietățile de formatare a blocurilor nu sunt moștenite. Acestea sunt fundal , chenar , afișare , float și clar , înălțime și lățime , margine , min-max-înălțime și -lățime , contur , overflow , padding , position , text-decoration , vertical-align and z-index .
Moștenirea forțată
Puteți utiliza cuvântul cheie moștenire pentru a forța un element să moștenească orice valoare de proprietate din elementul părinte. Acest lucru funcționează chiar și pentru proprietăți care nu sunt moștenite în mod implicit.
Cum sunt setate și cum funcționează stilurile CSS
1) Stilurile pot fi moștenite de la elementul părinte (proprietăți moștenite sau folosind valoarea de moștenire);
2) Stilurile din foaia de stil de mai jos suprascrie stilurile din foaia de stil de mai sus;
3) Un element poate fi stilat surse diferite. Puteți verifica ce stiluri sunt aplicate în modul dezvoltator al browserului. Pentru a face acest lucru, faceți clic pe element. Click dreapta mouse-ul și selectați „Vizualizare cod” (sau ceva similar). Coloana din dreapta va lista toate proprietățile care sunt setate pentru acest element sau moștenite de la elementul părinte, precum și fișierele de stil în care sunt specificate și numărul de serie al liniei de cod.
![](https://i0.wp.com/html5book.ru/wp-content/uploads/2015/01/nasledovanie-stiley.png)
4) Când definiți un stil, puteți utiliza orice combinație de selectoare - un selector de element, o pseudo-clasă de element, o clasă sau un identificator de element.
div (chenar: 1px solid #eee;) #wrap (lățime: 500px;) .box (float: stânga;) .clear (clear: ambele;)
5.2. Cascadă
În cascadă este un mecanism care controlează rezultatul final într-o situație în care reguli CSS diferite sunt aplicate aceluiași element. Există trei criterii care determină ordinea în care sunt aplicate proprietățile - regula !importantă, specificitatea și ordinea în care sunt incluse foile de stil.
Regulă!important
Greutatea unei reguli poate fi specificată folosind cuvântul cheie !important, care este adăugat imediat după valoarea proprietății, de exemplu, span (font-weight: bold!important;) . Regula trebuie pusă la sfârșitul declarației înaintea parantezei de închidere, fără spațiu. O astfel de declarație va avea prioritate față de toate celelalte reguli. Această regulă vă permite să anulați valoarea unei proprietăți și să setați una nouă pentru un element dintr-un grup de elemente în cazul în care nu există acces direct la fișierul de stil.
Specificitate
Pentru fiecare regulă, browserul calculează specificitatea selectorului, iar dacă elementul are declarații de proprietate conflictuale, se ia în considerare regula cu cea mai mare specificitate. Valoarea specificității are patru părți: 0, 0, 0, 0 . Specificitatea selectorului este definită după cum urmează:
0, 1, 0, 0 se adaugă pentru id;
pentru clasa 0, 0, 1, 0 se adaugă;
Se adaugă 0, 0, 0, 1 pentru fiecare element și pseudo-element;
pentru un stil inline adăugat direct unui element, 1, 0, 0, 0 ;
selectorul universal nu are specificitate.
H1 (culoare: albastru deschis;) /*specificitate 0, 0, 0, 1*/ em (culoare: argintiu;) /*specificitate 0, 0, 0, 1*/ h1 em (culoare: auriu;) /*specificitate: 0, 0, 0, 1 + 0, 0, 0, 1 = 0, 0, 0, 2*/ div#main p.about (culoare: albastru;) /*specificitate: 0, 0, 0, 1 + 0 , 1, 0, 0 + 0, 0, 0, 1 + 0, 0, 1, 0 = 0, 1, 1, 2*/ .sidebar (culoare: gri;) /*specificitate 0, 0, 1, 0 */ #sidebar (culoare: portocaliu;) /*specificitate 0, 1, 0, 0*/ li#sidebar (culoare: aqua;) /*specificitate: 0, 0, 0, 1 + 0, 1, 0, 0 = 0, 1, 0, 1*/
Ca urmare, acele reguli, a căror specificitate este mai mare, vor fi aplicate elementului. De exemplu, dacă un element are două specificități cu valorile 0, 0, 0, 2 și 0, 1, 0, 1, atunci a doua regulă va câștiga.
Ordinea meselor conectate
Puteți crea mai multe foi de stil externe și le puteți lega la aceeași pagină web. Dacă în mese diferite se va întâlni sensuri diferite proprietățile unui element, apoi, ca rezultat, regula care se află în foaia de stil din lista de mai jos va fi aplicată elementului.
Puteți combina mai multe proprietăți CSS asociate într-o singură proprietate pentru a economisi timp și efort.
Compararea valorilor individuale și abreviate
Luați în considerare următoarea regulă pentru margini (abrevierile pentru umplutură și chenare funcționează în același mod):
div.foo ( margine-sus: 1em; margine-dreapta: 1,5em; margine-jos: 2em; margine-stânga: 2,5em; )
Această regulă poate fi scrisă mai scurt:
div.foo (marja: 1em 1.5em 2em 2.5em; )
Specificarea mai puțin de patru valori pentru o proprietate scurtă
Valoarea prescurtată poate avea mai puțin de patru valori, după cum este listat mai jos. Rezultatele sunt ordonate după numărul de valori furnizate:
Director de abrevieri
Reduceri de limite pentru diverse proprietăți |
De asemenea, trebuie menționat că puteți seta chiar și valorile proprietăților de margine (border ) pentru un singur chenar al unui element, după cum urmează: chenar-stânga-lățime: 2px; border-left-style: solid; chenar-stânga-culoare: negru; |
Comenzi rapide pentru unele proprietăți de margine (margină), padding (padding) și chenar (border). | Toate acestea funcționează în același mod ca cel arătat mai sus în secțiunea „Alegerea între o singură proprietate și o comandă rapidă” de mai sus. |
Abrevieri de font | Cu o singură linie de abreviere, puteți defini dimensiunea fontului, greutatea, stilul, familia și înălțimea liniei. De exemplu, luați în considerare următorul cod: dimensiunea fontului: 1,5 em înălțimea liniei: 200% greutatea fontului: bold; font-style: italic; familie de fonturi: Georgia, „Times New Roman”, serif Puteți defini toate acestea cu următoarea linie:font: 1,5 em/200% aldine cursive Georgia, „Times New Roman”, serif; |
Abreviere pentru fundal | Cu o singură linie de CSS, puteți defini culoarea de fundal, imaginea de fundal, repetarea imaginii și poziția imaginii. Să luăm următorul cod: culoare de fundal: #000; imagine de fundal: url(image.gif); background-repeat: fără repetare; fundal-poziție: stânga sus; Aceasta poate fi reprezentată cu următoarea abreviere:background:#000 url(image.gif) fără repetare, sus, stânga; |
Abrevieri pentru liste | În acest caz, o poveste similară cu listă proprietăți vă permite să setați valorile proprietăților pentru tipul, poziția și imaginea marcatorului de listă pe o singură linie. Să luăm următorul cod: list-style-type: cerc; list-style-position: interior; list-style-image: url(bullet.gif) ; Aceasta este echivalentă cu următoarele:list-style: cerc în interiorul url(bullet.gif); |
Aplicarea CSS la HTML
Există trei moduri de a aplica CSS unui document HTML:
- şir;
- cuibărit;
- foi de stil externe.
Stiluri de linii
Puteți aplica o foaie de stil unui element folosind atributul de stil astfel:
În cadrul acestui atribut, sunt listate toate proprietățile CSS și valorile acestora.
Avantajul stilurilor inline este că browserul va fi forțat să folosească aceste setări. Toate celelalte stiluri definite în alte foi de stil sau chiar imbricate în interior titlul documentului, vor fi înlocuite de aceste stiluri.
O problemă serioasă cu stilurile în linie este că fac întreținerea stilului mult mai dificilă. Folosind CSS are scopul de a separa prezentarea unui document de structura sa, dar stilurile inline fac exact opusul - dispersează regulile de prezentare pe tot documentul.
În afară de problemele de întreținere, nu veți obține niciun beneficiu din partea esențială a CSS în sine: cascada.
Stiluri imbricate
Foile de stil imbricate sunt plasate în capul documentului în interiorul unui element de stil, ca în următoarea pagină de exemplu:
Avantajul foilor de stil imbricate este că nu trebuie să adăugați un atribut de stil la fiecare paragraf - le puteți stila pe toate cu o singură definiție. Aceasta înseamnă, de asemenea, că dacă trebuie să te schimbi aspect toate paragrafele, va fi posibil să faceți acest lucru într-un singur loc, cu toate acestea, toate acestea sunt totuși limitate la un singur document.
Foi de stil externe
Foile de stil externe înseamnă plasarea tuturor definițiilor CSS într-un fișier separat, salvarea acestuia cu o extensie de fișier CSS și apoi aplicarea documentelor HTML folosind elementul legăturăîn titlul documentului. De exemplu:
Foile de stil externe vă permit să stocați toate definițiile de stil într-un singur fișier. Aceasta înseamnă că puteți face modificări întregului site schimbând doar unul. browser web cu toate acestea, îl poate descărca o dată și apoi îl poate stoca în cache pentru toate celelalte documente care se referă la el, ceea ce reduce cantitatea de informații descărcate.
Importul foilor de stil
Există o altă modalitate de a importa foi de stil externe în fișiere HTML- declarație @import. Este inserat într-o foaie de stil imbricată, în același mod ca și CSS imbricat prezentat mai sus. Sintaxa arată astfel:
Cele două concepte fundamentale ale CSS sunt moştenireși în cascadă. Moştenire are de-a face cu modul în care un element din marcajul HTML moștenește proprietățile elementelor sale strămoși (în care este conținut) și le transmite descendenților săi, în timp ce în cascadă se ocupă de declarațiile CSS care se aplică unui document și de modul în care regulile conflictuale se suprascriu reciproc.
Moştenire
Moştenireîn CSS, este mecanismul prin care anumite proprietăți sunt transmise de la un element strămoș la elementele sale descendente.
Folosind moștenirea, puteți, de exemplu, defini proprietățile fontului pentru elementele html sau body, iar acestea vor fi moștenite de toate celelalte elemente. Puteți defini culorile de fundal și de prim-plan pentru un anumit element de container, iar culoarea de prim-plan va fi moștenită automat de elementele descendente din acel container.
Fiecare element din document HTML va moșteni toate proprietățile moștenite ale strămoșului său, cu excepția element rădăcină(html ) care nu are părinte.
În cascadă
În cascadă este mecanismul care guvernează rezultatul final atunci când mai multe declarații CSS conflictuale sunt aplicate aceluiași element. Există trei concepte principale care guvernează ordinea în care sunt aplicate declarațiile CSS:
- Importanţă
- Specificitate
- Ordin cod sursa
Importanţă este cel mai semnificativ. Dacă două declarații sunt de importanță egală, specificul regulilor determină care dintre ele va fi aplicată. Dacă regulile au aceeași specificitate, atunci ordinea codului sursă controlează rezultatul.
Importanţă
Importanţă Declarațiile CSS depind de locul în care sunt definite. Declarațiile aflate în conflict se vor aplica în următoarea ordine, cele ulterioare le vor înlocui pe cele anterioare:
- Foi de stil pentru agentul utilizatorului
- Declarații obișnuite în foile de stil ale utilizatorului
- Declarații regulate în foile de stil ale autorului
- Declarații importante în foile de stil ale autorului
- Declarații importante în foile de stil ale utilizatorului
Foaie de stil agent utilizator este foaia de stil încorporată în browser. Fiecare browser are propriile reguli implicite care determină modul de afișare a diferitelor elemente HTML dacă nu este definit niciun stil de utilizator sau de designerul paginii. De exemplu, linkurile nevizitate vor apărea de obicei în albastru și subliniate.
Foaie de stil utilizator este o foaie de stil definită de utilizator. Nu toate browserele acceptă foi de stil pentru utilizatori, dar pot fi foarte utile, mai ales pentru utilizatorii cu anumite tipuri de deficiențe funcționale. De exemplu, o persoană cu dislexie poate avea o foaie de stil care definește anumite fonturi și culori care fac mai ușor de citit.
Foaie de stil autor este ceea ce se numește de obicei „foaia de stil”. Aceasta este o foaie de stil pe care autorul documentului (sau mai probabil designerul site-ului) a scris-o și inclusă (sau inclusă).
Pentru a transforma o declarație obișnuită într-una importantă, trebuie să plasați o directivă !importantă în spatele ei. După cum puteți vedea, declarațiile importante din foaia de stil a utilizatorului vor suprascrie orice altceva, ceea ce are sens.
Vizualizarea implicită a browserului va fi aplicată numai dacă aceste declarații nu sunt înlocuite de nicio regulă din foaia de stil a utilizatorului sau foaia de stil a autorului, deoarece foaia de stil a agentului utilizator are cea mai mică prioritate.
Specificitate
Specificitate este definită ca o măsură a cât de specific este selectorul unei reguli. Un selector specific scăzut poate potrivi mai multe elemente (cum ar fi *, care se potrivește cu fiecare element din document), în timp ce un selector specific înalt poate potrivi doar un element pe pagină (cum ar fi #nav , care se potrivește numai elementului cu un id care se potrivește nav).
Specificitatea selectorului poate fi ușor de calculat. Dacă două sau mai multe declarații sunt în conflict pentru un element dat și toate declarațiile sunt de importanță egală, atunci declarația cu cel mai specific selector va avea prioritate în regulă.
Specificitatea are patru componente, care pot fi denumite a, b, c și d. Componenta a este cea mai delimitantă, d este cea mai mică.
- Componenta a este definită foarte simplu: este 1 pentru declarația atributului de stil, altfel este 0 .
- componenta b este numărul de selectori de id în selector (cele care pornesc cu#).
- Componenta c este un număr selectoare de atribute, inclusiv selectori de clasă - și pseudo-clase.
- Componenta d este numărul de tipuri de elemente și pseudo-elemente din selector.
După un mic calcul, puteți obține un șir din aceste patru componente, care determină specificul oricărei reguli. Declarațiile CSS din atributul style nu au un selector, deci specificitatea lor va fi întotdeauna 1,0,0,0 .
Tabelul prezintă câteva exemple.
Selector | A | b | c | d | Specificitate |
---|---|---|---|---|---|
h1 | 0 | 0 | 0 | 1 | 0,0,0,1 |
.foo | 0 | 0 | 1 | 0 | 0,0,1,0 |
#bar | 0 | 1 | 0 | 0 | 0,1,0,0 |
html>head+body ul#nav *.home a:link | 0 | 1 | 2 | 5 | 0,1,2,5 |
Rețineți că caracterele de conectare (cum ar fi > , + și
Aplicarea unei foi de stil la un document
Încorporarea foilor de stil într-un document
Setarea unui stil pentru un singur fragment dintr-un document
Importul unei foi de stil
Specificarea mai multor proprietăți în același timp
Selectoare de grupare
Comentând o foaie de stil
Proprietăți de stil
proprietăți de fundal
Elemente de încadrare
Listă proprietăți
Proprietăți text
Proprietăți de grupare pentru definirea mai ușoară a stilului
Moștenirea proprietății
Utilizarea selectoarelor contextuale
De ce foile de stil sunt numite în cascadă
Foile de stil sunt furnizate de recomandările W3C și sunt un instrument standard pentru formatarea paginilor Web folosind abordări de publicare desktop. Microsoft Internet Explorer 3.0 a fost primul browser care a suportat foi de stil. Browserul Netscape Navigator acceptă foi de stil începând cu versiunea 4.0B2 (Beta 2), disponibilă din februarie 1997.
Detalii despre recomandările W3C pot fi găsite la: h ttp://www.w3.org/pub/WWW/TR/WD-cssl.html . Standardul W3C folosește termenul „cascading style sheets level 1 (CSSI”).
Pentru început, este necesar să clarificăm ce se înțelege prin denumirea „foi de stil”. Majoritatea editoarelor de text moderne permit utilizatorului să definească stilul care va fi folosit pentru formatarea documentului. În special, puteți alege un stil de paragraf cu o singură spațiere între rânduri, font Courier și o marjă stângă de un inch. Acest stil de formatare poate fi apoi aplicat la orice număr de paragrafe din acest document și din alte documente. Foi de stil NT
M L acționează exact în același mod. Mai jos este o listă scurtă a principalelor caracteristici:Modificarea distanței dintre linii, cuvinte și caractere individuale.
Setează marginile din stânga, dreapta, de sus și de jos ale unui element (un bloc de text container HTML).
Setați umplutura unui element.
Modificați dimensiunea, stilul și alte atribute ale fontului unui element.
Setează o chenar în jurul unui element.
Includere imagine de fundalși culoarea de fundal a elementului.
Marele avantaj al foilor de stil HTML este capacitatea de a separa operația de formatare de conținutul documentului. În primul rând, se stabilește cum ar trebui să arate textul într-un loc sau altul pe pagină, apoi introduceți textul în sine. Dacă vă decideți mai târziu, de exemplu, să schimbați culoarea fontului titlurilor în albastru, va fi suficient să schimbați doar stilul acestor titluri. Nu trebuie să faceți nicio modificare textului. .
Există patru metode de aplicare a unei foi de stil la un document:
-
chenar - folosit pentru a defini chenarul din stânga, dreapta, sus și jos al unui element. Puteți seta lățimea, culoarea și stilul cadrului.
-
margine - folosită pentru a defini marginile la stânga, la dreapta, sus și jos ale unui element. De asemenea, puteți seta lățimea marginilor.
-
padding sunt folosite pentru a indica spațiul liber dintre chenar și conținutul elementului.
-
container UL .
Proprietățile vă oferă control complet asupra modului în care vizualizatorul redă textul. Cu ajutorul lor, puteți controla culoarea, dimensiunea, fontul, spația dintre linii etc. Toate proprietățile textului vor fi descrise în detaliu mai jos.
Multe dintre proprietățile descrise mai sus pot fi grupate între ele. Deci, în loc de regulă
H1 (greutatea fontului: bold; stilul fontului: normal; dimensiunea fontului: 12pt; familia de fonturi: serif)
se poate scrie o afirmație mai scurtă:
H1 (font: bold normal serif de 12 puncte)
Foile de stil HTML vă permit să grupați proprietățile de chenar, fundal, font, listă, marjă și umplutură. Să luăm în considerare fiecare dintre grupuri separat.
grup de proprietate de frontieră
Puteți grupa proprietățile chenarului în cinci moduri diferite. Puteți defini proprietăți pentru latura separata cadru folosind
b comandă-sus, chenar-dreapta, chenar-jos ȘI chenar-stânga sau definiți întreaga chenar simultan cu chenar.Cu fiecare dintre aceste proprietăți, puteți specifica lățimea, stilul și culoarea chenarului, de exemplu:
b order-top: subțire punctat negru
grup de proprietăți de fundal
În grupul de proprietăți de fundal, puteți specifica valori pentru culoare, imagine, repetare, atașament și poziție, de exemplu:
fundal: alb URL(http://www.myserver.com/image/bg.gif) repetare-x fix sus stânga
fontul grupului de proprietăți
Grupului de fonturi i se poate da greutate, stil, dimensiune și valori de familie, astfel:
font: bold normal de 12 pt ori, serif
listează grupul de proprietăți
Proprietățile sunt grupate folosind proprietatea de tip listă. Este posibil să specificați o imagine pentru marker, tipul și poziția markerului, de exemplu:
stil listă: URL pătrat (http://www.myserver.com/images/marker.gif) în interior
grup de proprietate în marjă
Pentru grupul de margini, puteți defini o lățime pentru fiecare dintre marginile de sus, dreapta, jos și stânga, astfel:
margine: .5in 1in .5in 1in
Dacă este specificată o singură valoare, vizualizatorul va face ca celelalte câmpuri să aibă aceeași lățime. Dacă nu sunt specificate una sau două valori, marginile cu valoarea nespecificată vor avea aceeași lățime ca și marjele opuse. De exemplu, dacă omiteți ultima valoare (stânga), lățimea marginilor din stânga va fi egală cu lățimea marginilor din dreapta, adică 1 inch.
grup de proprietăți de umplutură
În grupul de umplutură, puteți specifica valori pentru sus, dreapta, jos și stânga, de exemplu:
umplutură: .25in .25in .25in .25in
Dacă este specificată o singură valoare, vizualizatorul va atribui aceeași valoare valorilor lipsă. Dacă nu sunt specificate una sau două valori, spațiile cu valorile nespecificate vor avea aceeași lățime ca opuse. De exemplu, dacă omiteți ultima valoare (stânga), spațiul liber dintre partea stângă a cadrului și conținutul elementului este același cu spațiul din partea dreaptă.
În HTML, etichetele secundare moștenesc unele dintre proprietățile etichetelor părinte. De exemplu, toate etichetele containerului
(< P >și- ) va avea unele proprietăți de etichetă . Aceeași etichetă
- moștenește proprietățile etichetei
- . Luați în considerare următorul cod:
- : unul pentru când este supus unei etichete
- numai dacă această etichetă este o etichetă subordonată
-
:
- puteți defini un stil diferit care este valabil numai dacă este subordonat unei etichete
-
:
UL LI (tip listă: pătrat)
Rețineți că lista de selectoare nu este separată prin virgulă. În caz contrar, tuturor etichetelor de listă li se va atribui același stil.
Foile de stil sunt denumite „foi de stil în cascadă” în ghidurile W3C. " deoarece pentru aspectul unei pagini Web, puteți utiliza nu unul, ci mai multe tabele simultan. În același timp, privitorul însuși determină succesiunea utilizării tabelelor și rezolvă conflictele dintre ele conform principiului cascadării. De exemplu, o foaie de stil pentru o pagină poate fi determinată nu numai de autorul acesteia, ci și de cititor, iar apoi regulile în cascadă decid ce foaie de stil va avea efect.
Cum functioneazã? Browserul atribuie o pondere fiecărei reguli. Când interpretează fiecare etichetă, programul analizează toate regulile acestei etichete și le sortează în funcție de valoarea coeficientului de greutate. Cea mai „greută” regulă câștigă.
Există următoarele principii generale pentru rezolvarea conflictelor dintre foile de stil:
Prioritatea tipurilor de foi de stil în document (în ordine descrescătoare): atribuirea stilului curent (inline), încorporare, legare.
De asemenea, puteți modifica ponderea regulii folosind cuvântul cheie important. În exemplul următor, valoarea proprietății roșii
OL LI (tip listă-stil: zecimal)
Pentru aceeași etichetă
- puteți defini un stil diferit care este valabil numai dacă este subordonat unei etichete
Buna ziua. Acesta este un paragraf de text. Acest lucru este subliniat
Foaia de stil a acestui document stabilește culoarea etichetei
< P > albastrul este însă culoarea etichetei nu este definit în mod explicit (implicit este negru). Nu este nimic de care să vă faceți griji aici, deoarece această etichetă se află în containerul părinteȘi astfel moștenește culoarea albastră.
Uneori devine necesar să definiți două (sau mai multe) stiluri pentru o etichetă. De exemplu, poate fi necesar să specificați două stiluri pentru etichetă
-
, iar al doilea atunci când este supus etichetei
- . Acest lucru se poate face folosind selectoare de context.
Selectorul de context determină secvența exactă de etichete pentru care va fi aplicat un anumit stil. Cu alte cuvinte, puteți specifica că un anumit stil ar trebui aplicat, de exemplu, într-o etichetă
H1 (culoare: roșu ! important font-weight: bold font-family: sans-serif ! important)
O clasă este o definiție a mai multor stiluri ale unui element, fiecare dintre acestea putând fi folosit în locul potrivit pe pagină. De exemplu, puteți defini trei variante ale stilului de titlu H1. Definirea variațiilor este similară cu specificarea unui stil, doar un nume de clasă arbitrar este adăugat la numele etichetei, separat de un punct:
H1 albastru (culoare: albastru) H1.roșu (culoare: roșu) H1.negru (culoare: negru)
Acum, inclusiv eticheta în document
, puteți specifica un stil specific în el folosind atributul CLASS:
antet roșu
- moștenește proprietățile etichetei
Conectare - Puteți lega un document HTML la o foaie de stil stocată într-un fișier separat.
Încorporare - puteți încorpora o foaie de stil într-un document HTML folosind un container
Etichetă
După cum am menționat mai devreme, foile de stil sunt stocate în fișiere text care sunt ușor de editat. Nu sunt greu de creat manual, dar există editori speciale de foi de stil, cum ar fi popularul program Microsoft FrontPage.
Foile de stil vă permit să definiți un stil pentru una sau mai multe etichete. De exemplu, puteți crea o foaie de stil care definește stilurile pentru etichete
,
,
Și
. Fiecare definiție este numită regulă
(rul e). Regula contine selector(etichetă HTML) urmată de declaraţie(definiția stilului). Selectorul este legătura dintre definiție și etichetă. Mai jos este un exemplu de regulă care specifică stilul pentru fiecare dintre etichetele de antet
:
H1 (culoare: albastru)
Declarația este cuprinsă între paranteze. Fiecare declarație are două părți: numele proprietății și valoarea atribuită acesteia, separate prin două puncte. Există zeci de proprietăți incluse în HTML (font-size, font-style, color, margin-right, etc.), care vor fi discutate mai jos. Fiecare proprietate poate lua mai multe valori, dintre care una îi este atribuită implicit.
În exemplul anterior, a fost specificată o singură proprietate de culoare. Cu toate acestea, nimic nu vă împiedică să definiți o întreagă gamă de proprietăți într-o etichetă, separându-le unele de altele cu un punct și virgulă:
HI (culoare: albastru; dimensiune font: 12 pt; linie text: centru)
În acest exemplu, vizualizatorul va afișa fiecare antet de primul nivel în font albastru de 12 puncte și le va alinia la centrul ferestrei. Toate celelalte proprietăți își vor folosi valorile implicite (de exemplu, proprietatea stil font va fi setată la normal).
Dacă trebuie să definiți același stil pentru mai multe etichete, le puteți lista într-o listă separată:
P (dimensiunea fontului: 12 pt)
UL (dimensiunea fontului: 12 pt)
LI (dimensiunea fontului: 12 pt)
HTML vă permite să faceți același lucru într-o formă mai compactă - într-o singură linie:
P, UL, LI (dimensiunea fontului: 12 pt)
Aici este necesară virgula. Dacă este omisă, sensul regulii se va schimba (vezi secțiunea „ ” mai târziu în acest capitol).
Pe măsură ce foaia de stil devine mai complexă, probabil că va trebui să includeți mai multe informații despre scopul unei anumite reguli. Comentariile sunt plasate între caracterele /* și */ și sunt ignorate de spectatori, de exemplu:
BODY (marja-stânga: lin) /* Marja 1 inch */
H1 (marja-stânga: -lin) /* Schimbați la stânga 1 inch */
H2 (marja-stânga: -lin) /* Schimbați la stânga 1 inch */
HTML vă permite să definiți o mare varietate de proprietăți ale foii de stil. Numele de proprietăți constau dintr-unul, și mai frecvent două sau trei cuvinte, separate printr-o cratimă. În numele compuse, primul cuvânt reprezintă de obicei categoria și este, de asemenea, o prescurtare pentru numele proprietății (vezi secțiunea " ").
Tabelul oferă o prezentare generală a proprietăților foii de stil HTML. Coloana Categorie arată dacă o proprietate poate fi grupată cu alte proprietăți. A treia coloană conține informații despre dacă proprietatea este moștenită sau nu de sub-etichete (consultați secțiunea „ ” despre moștenirea proprietății).
Moştenire |
||||
Foile de stil HTML vă permit să decorați fundalul unui element de pagină cu o culoare sau o imagine. Trebuie menționat că aici și mai jos vom vorbi despre utilizarea proprietăților nu pentru întreaga pagină, ci pentru un element separat. De exemplu, dacă definiți un fundal pentru o etichetă
U L (imagine de fundal: URL(http://www.myserver.com/images/watermark.gif)) Recomandările W3C oferă posibilitatea de a defini margini, margini și spații albe pentru elementele paginii. Puteți, de exemplu, să includeți titlul într-un cadru sau să modificați marginile din eticheta de paragraf<Р>astfel încât să se indenteze toate paragrafele de text. În aceste scopuri, puteți utiliza următoarele grupuri de proprietăți: Aceste proprietăți sunt utilizate pentru a specifica modul în care sunt afișate listele. Ele pot fi folosite pentru a schimba poziția markerului (proprietatea list-style-position), stilul sau imaginea markerului (proprietățile list-style-type și list-style-image). Proprietățile listei sunt moștenite, adică dacă o proprietate este definită într-o etichetă
|