Concept de 17 foi de stil în cascadă css
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 . Se referă la un fișier de stil extern numit 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ă în dosar separat, de regulă, cu extensia css, iar eticheta este folosită 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. Eu insumi fișier de stil conține doar descrierea stilurilor. Această separare a html și cod 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 sale, această metodă de adăugare a unui stil este inferioară celei anterioare, dar vă permite și să stocați stiluri într-un singur loc, în acest caz direct pe pagină folosind un container
...
Dezavantajul acestei metode este că regulile CSS de stil global se aplică numai paginii web în care sunt scrise.
3. A treia cale este așa-numitele stiluri încorporate sau interne. Pentru a face acest lucru, pur și simplu trebuie să o plasați în eticheta html necesară atribut de stil, care include ca parametri un set de proprietăți CSS:
Paragraf cu fundal gri și text roșu
Mai mult, proprietățile specificate în atributul style se aplică doar unui element html. De obicei, această metodă de includere a stilurilor este utilizată în etapa de depanare a designului site-ului, iar apoi proprietățile CSS rezultate sunt transferate într-un fișier cu stiluri externe.
Crearea stilurilor CSS. Sintaxa foilor de stil în cascadă - reguli, proprietăți, selectoare.
Selector (
Valoarea proprietății;
Valoarea proprietății;
...
Valoarea proprietății
}
Acestea. o regulă de stil include un selector de stil și o listă de proprietăți de stil cu valorile lor în acolade ("(" și ")"):
- selector folosit pentru a lega elementele paginii web la care ar trebui să-și extindă acțiunea;
- perechile „Proprietate: Valoare” sunt separate prin punct și virgulă („;”) și pot fi oricât de multe doriți;
- între ultima pereche „Proprietate: Valoare” și acolada de închidere, simbolul punct și virgulă poate fi omis;
- proprietate de stil reprezintă unul dintre parametrii elementului de pagină html: culoarea textului, caracterul fontului, valoarea indentării;
- spațiile și liniile noi atunci când scrieți regulile CSS nu sunt critice, browserul le ignoră, astfel încât să puteți formata codul după cum doriți;
- de asemenea, codul nu face distincție între majuscule și minuscule.
Pentru a fi mai clar, să ne uităm la câteva exemple.
Să analizăm această regulă CSS:
- body este un selector care este numele etichetei ;
- background este o proprietate de stil care stabilește parametrii de fundal;
- #0000FF este valoarea proprietății de stil de fundal, care este un cod de culoare în format RGB.
Ca urmare, acest stil va fi aplicat elementului de corp al paginii web și va picta fundalul paginii în culoarea specificată. Stilul considerat se numește stilul de înlocuire a etichetei, deoarece numele etichetei fără caractere este specificat ca selector< и >.
Luați în considerare un alt exemplu:
h1 (
dimensiunea fontului: 24px;
culoare: verde;
}
Acest stil spune că browserul va afișa orice text plasat în etichete.
verde și dați-i o dimensiune a fontului de 24 de pixeli.
Ca selector de etichete, pe lângă numele etichetei, puteți specifica Clasă:
text galben (culoare: galben)
Numele clasei trebuie să fie format din litere latine, cifre și cratime și trebuie să înceapă cu o literă. Și în definirea unei reguli CSS, numele clasei trebuie să fie precedat de un punct, ceea ce înseamnă că clasa de stil este în curs de definire. Acest stil va fi aplicat tuturor etichetelor care au atribut de clasă iar valoarea lui va fi numele clasei de stil fără punct:
Acest paragraf are text portocaliu
În exemplu, am atașat etichetei
regula css cu numele clasei text galben. Ca urmare, textul din acest paragraf va fi afișat în portocaliu.
Atributul clsss poate fi setat la mai multe nume de clase de stil separate prin spații. În acest caz, efectul claselor de stil va fi:
text cursiv (stil font: cursiv)
text galben cu caractere cursive
În acest exemplu, eticheta
Am legat două clase simultan: text galben și text cursiv. Ca urmare, conținutul etichetei va fi afișat cu font galben și italic.
Pe lângă clase, puteți utiliza regulile css ca selector identificator Un care specifică numele unic al elementului. Aici totul este la fel ca și în cazul claselor de stil, doar că există câteva diferențe:
- în selectorul de reguli CSS este specificat și numele identificatorului, dar în locul unui punct, înaintea numelui acestuia este plasat un semn hash „#”;
- legarea la elementul html se face prin atributul id, a cărui valoare este setată la numele stilului fără semnul lire sterline;
- valoarea atributului id trebuie sa fie unica in cadrul paginii, adica in codul html nu poate exista decat un singur element cu valoarea data atributului id, altfel codul nu va fi valabil.
Să ne uităm la un exemplu pentru claritate:
#textcenter(text-align: center;)
Textul central
O regulă css este atașată elementului p (paragraf) folosind atributul id, care aliniază textul la centrul paginii. Nu mai este permisă crearea de elemente în pagină cu această valoare de atribut id, altfel codul html nu va fi valid.
Pe lângă modalitățile considerate de descriere a stilurilor, css vă permite să creați stiluri combinateși setați mai multe stiluri identice deodată. Să vedem un exemplu:
h1.redtext, p puternic (culoare: roșu)
În exemplu, sunt specificați doi selectori separați prin virgule: „h1.redtext” și „p strong”. Primul selector spune că în toate elementele h1 care au o valoare a atributului de clasă egală cu textul roșu, textul va fi afișat cu roșu. În al doilea selector, același lucru se va întâmpla pentru toate elementele puternice care sunt imbricate în eticheta p:
Acest titlu este afișat cu roșu
text simplu, text roșu
CSS (Foi de stil în cascadă) sau Foi de stil în cascadă, sunt folosite pentru a descrie aspectul unui document scris într-un limbaj de marcare. Stilurile CSS sunt de obicei folosite pentru a crea și stiliza paginile web și elementele interfeței cu utilizatorul scrise în HTML și XHTML, dar pot fi aplicate și oricărui tip de document XML, inclusiv XML, SVG și XUL.
Foile de stil în cascadă descriu modul în care elementele sunt formatate folosind proprietăți și valorile valide pentru acele proprietăți. Pentru fiecare element, puteți utiliza un set limitat de proprietăți, alte proprietăți nu vor avea niciun efect asupra acestuia.
Declarația de stil constă din două părți: elementul paginii web − selector, și comenzi de format - bloc de anunțuri. Selectorul spune browserului ce element să formateze, iar blocul de declarare (codul între acolade) listează comenzile de formatare - proprietăți și valorile acestora.
Orez. 1. Structura de declarare a stilului CSS
Tipuri de foi de stil în cascadă și specificul acestora
1. Tipuri de foi de stil
1.1. Foaie de stil externă
Foaie de stil externă este un fișier text cu extensia .css, care conține un set de stiluri CSS pentru elemente. Fișierul este creat în editorul de cod, la fel ca o pagină HTML. Fișierul poate conține doar stiluri, fără markup HTML. O foaie de stil externă este atașată unei pagini web folosind o etichetă situat in interiorul sectiei
. Aceste stiluri funcționează pentru toate paginile site-ului.Puteți atașa mai multe foi de stil la fiecare pagină web adăugând mai multe etichete în succesiune , specificând scopul acestei foi de stil în atributul etichetă media. rel="stylesheet" indică tipul de link (link către foaia de stil).
Atributul type="text/css" nu este cerut de standardul HTML5, deci poate fi omis. Dacă atributul lipsește, este implicit tip="text/css" .
1.2. Stiluri interne
Stiluri interneîncorporat în secțiune
document HTML și sunt definite în interiorul etichetei. 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 cu atribut de stil:
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 anula 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ă plasat locuri diferite pagina sau pe pagini diferite site-ul. De exemplu, pentru a crea un titlu cu clasa de titlu, trebuie să adăugați atribut de clasă cu valoarea titlului în 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.mai întâi a (culoare: verde;) - stilul dat se va aplica 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 atribut 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[attribute="valoare"] — elemente de acest tip care conțin atributul specificat cu o anumită valoare, img — toate imaginile ale căror nume conțin cuvântul floare ;
selector[atribut~="valoare"] - elemente care conțin parțial valoarea dată, de exemplu, dacă un element are mai multe clase separate printr-un spațiu, p - paragrafe al căror nume de clasă conține caracteristică ;
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ție specificată, similar cu :nth-child() , dar invers față de ultimul;
: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ânt 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 apare în modul în care diferitele tipuri de foi de stil sunt aplicate unui document și în 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) Stilurile din diferite surse pot fi aplicate unui element. Puteți verifica ce stiluri sunt aplicate în modul dezvoltator al browserului. Pentru a face acest lucru, faceți clic dreapta pe element ș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ăr de serie linii de cod.
Orez. 2. Modul dezvoltator în browser Google Crom
4) Când definiți un stil, puteți utiliza orice combinație de selectori - 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 setată 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.