CSS, prescurtarea de la Cascading Style Sheets, sunt etichete folosite pentru formatarea paginilor web (de exemplu formatare text, background sau aranjare in pagina, etc.). Beneficiile sintaxei CSS sunt: formatarea este introdusa intr-un singur loc pentru tot documentul editarea rapida a etichetelor datorita introducerii intr-un singur loc a etichetelor se obtine o micsorare a codului paginii, implicit incarcarea mai rapida a acesteia
Sintaxa CSS este structurata pe trei nivele: nivelul 1 fiind proprietatile etichetelor din documentul HTML, tip inline nivelul 2 este informatia introdusa in blocul HEAD, tip embedded nivelul 3 este reprezentat de comenzile aflate in pagini separate, tip externe Cea mai mare importanta (suprascrie orice alt parametru) o are sintaxa de nivelul 1 iar cea mai mica importanta o are cea de nivelul 3. Folosirea unui fisier extern sau nivel 3 care sa contina comenzi CSS este foarte practic deoarece poate fi utilizat in mai multe situatii (mai multe fisiere HTML pot folosi acelasi fisier extern CSS) eliminand timpul necesar introducerii codului corespunzator in fiecare pagina si totodata editarea lor intr-un singur loc pentru mai multe fisiere. Extensia acestor fisiere este .css. Legatura paginilor HTML cu fisierele extene CSS se face prin introducerea urmatoarei linii: <link rel="stylesheet" type="text/css" href="fisier_css.css"> Atributele indica urmatoarele: rel - fisierul este tip styleshhet type - tip text ce contine comenzi CSS href - fisierul sau adresa fisierului CSS. Comenzile de nivel 2 sau embedded sunt cele gazduite oriunde intre perechea de etichete <head> si </head> conform sintaxei: <style type="text/css"> <!-... comenzi CSS ... --> </style> Unde style -specifica unde incepe si unde se termina blocul CSS iar type este folosit pentru a ascunde de browserele vechi, care nu cunosc sintaxa CSS, continutul blocului style.
Comenzile CSS de nivel 1 sau inline sunt cele mai folosite, ele suprascriind orice alte comenzi CSS. Sunt amplasate in interiorul etichetelor HTML aflate in zona BODY si au sintaxa: <eticheta style="codul CSS dorit"> ...textul sau obiectul asupra caruia este aplicat codul CSS... </eticheta> Este permisa folosirea comentariilor in CSS astfel: /* Acesta este un comentariu in CSS */
<title>Exemplul 1_1</title> <style type="text/css"> <!-- p{color: #00FF00;}--> </style> </head> <body> <p>Text verde</p> Text negru <p>Text verde</p> </body> </html>
Elementele id si class
id si class sunt comenzi care dau unei formatari CSS un nume. Se folosesc atunci cand dorim sa aplicam un style de formatare unei anume zone. Pentru compatibilitate cu versiunile anterioare de browsere numele asociate zonelor nu vor contine caracterul _. Elementul id se aplica unui style de format o singura data sau la o singura eticheta HTML, plasandu-se un nume acelui style. Acest element necesita existenta comezilor CSS in zona HEAD sau intr-un fisier extern. Exemplu: folosirea elementului id <html> <head> <title>Exemplu 2_1</title> <style type="text/css"> <!-- #albastru{color: #0000FF;}--> </style> </head> <body> <p id="albastru">Text albastru introdus prin id "albastru"</p> Text negru </body> </html> Elementul class se similar cu id dar spre deosebire de acesta poate fi folosit de mai multe ori sau pentru zone mai mari. Ca si la id necesita existenta comezilor CSS in zona HEAD sau intr-un fisier extern. Exemplu: folosirea elementului class <html> <head> <title>Exemplu 2_2</title> <style type="text/css"> <!-- .rosu{color: #FF0000;}--> </style> </head> <body> <p class="rosu">Primul text rosu introdus prin class "rosu"</p> Text negru <p class="rosu">Al doilea text rosu introdus prin class "rosu"</p>
</body> </html>
Exemplu: CSS introdus in HEAD aplicat etichetei p, dimensiunea exprimata in pixeli <html> <head> <title>Exemplu 3_3</title> <style type="text/css"> <!-- p{font-size: 20px;}--> </style> </head> <body> <p>Text scris cu font de 20px</p> Text negru </body> </html> Pentru dimensiunea exprimata in puncte folosim acelasi exemplu inlocuid px cu pt. Dimensiunea exprimata prin keywords foloseste cuvinte in loc de cifre. Sapte cuvinte inlocuiesc dimensiunile de la 1 la 7 de la veche eticheta FONT FACE din HTML. CSS keyword xx-small x-small small medium large x-large xx-large numar FONT size 1 2 3 4 5 6 7
Pentru verificare se poate folosi exemplul anterior in care se inlocuieste 20px cu unul din cuvintele de mai sus. Procentele sunt o alta valoare pe care o poate lua font-size. Aceasta modalitate poate fi vizualizata diferit de browsere diferite. Ca verificare folositi acelasi exemplu schimband 20px cu 200%. font-style font-style este folosit pentru a adauga caracteristica italica fontului. Poate lua valorile normal si italic. <style type="text/css"> <!-- p{font-style: italic;}--> </style> font-weight font-weight este paramerul care stabileste grosimea caracterului putand lua valorile numerice de la 100 la 900 sau BOLD, BOLDER, LIGHTER. <style type="text/css"> <!-- p{font-weight: 700;}--> </style>
Compunerea stilurilor Stilurile prezentate anterior pot fi folosite simultan in interiorul aceeasi etichete fiind despartite de caracterul ; (punct si virgula). Exemplu: folosirea unui stil compus aplicat etichetei p <html> <head> <title>Exemplu 3_4</title> <style type="text/css"> <!-p{ font-family: arial; font-size: 20px; font-style: italic; font-weight: 800;} --> </style> </head> <body> <p>Text scris cu Arial, 20px, italic, 800</p> Text negru </body> </html>
</body> </html> vertical-align este folosit pentru alinierea pe verticala a obiectelor dintr-un tabel si poate lua valorile: top, middle si bottom. In exemplul de mai jos este creat clasa sus care va putea fi aplicat elementelor <td> ale tabelului <style type="text/css"> <!-.sus{vertical-align: top;} --> </style> float este folosit pentru alinierea textului cu imaginile si poate avea valorile: left si right. In functie de valoarea aleasa imaginea va fi aliniata in partea opusa a paginii. Exemplu: cream clasa auto si o aplicam inaginii <html> <head> <title>Exemplu 4_2</title> <style type="text/css"> <!-.auto{float: left;} --> </style> </head> <body> <img src="poza.jpg" class="auto"> Textul se aliniaza la dreapta, iar poza la stanga datorita clasei "auto". </body> </html> Tabulare text-indent este folosit pentru alinierea textului in interior avand valori exprimate in inci (in), centimetri (cm) sau pixeli (px). In exemplul de mai jos text-indent este aplicat etichetei p deplasand textul cu 10 pixeli in interior <style type="text/css"> <!-p{text-indent: 10px;} --> </style> Decorare text-decoration adauga sublinierea sau taierea blocului text asociat si poate avea valorile underline, line-through sau none. Exemplu: stilul asociat etichetei p este prezentat in HEAD
<html> <head> <title>Exemplu 4_3</title> <style type="text/css"> <!-p{text-decoration: underline;} --> </style> </head> <body> Text normal <p>Text subliniat</p> </body> </html> Culoare color defineste culoarea textului dintr-o zona sau intraga pagina. Exemplu: stilul asociat etichetei p este prezentat in HEAD <html> <head> <title>Exemplu 4_4</title> <style type="text/css"> <!-p{color: #0000FF;} --> </style> </head> <body> Text normal <p>Text albastru</p> </body> </html> Stiluri pentru legaturi In HTML culoarea legaturilor poate fi stabilita prin atributele LINK, ALINK si VLINK declarate in interiorul etichetei BODY. Acelasi lucru si chiar mai mult poate fi realizat folosind sintaxa CSS. Exemplu <html> <head> <title>Exemplu 4_5</title> <style type="text/css"> <!-a{font-family: arial; font-size: 20px;} a:link {color: #0000FF;} a:visited {color: #00FF00;} a:active {color: #FF0000;} a:hover {color: #000000;} --> </style> </head> <body>
Text normal <a href="exemplu4_4.html">link</a> catre exemplul 4_4 </body> </html> a defineste stilul general pentru legatura a:link defineste stilul legaturii nevizitate a:visited defineste stilul legaturii vizitate a:active defineste stilul legaturii active (nu prea se foloseste) a:hover defineste stilul cand mouse-ul este deasupra legaturii
<body> Text normal <p>Text cu imagine de fond</p> </body> </html> Repetare Functie de dimensiunile obiectului caruia ii sunt asociate imaginile de fond se repeta pe orizontala si verticala. Repetarea poate fi controlata prin parametrul background-repeat care poate lua valorile: repeat-x imaginea se repeta pe orizontala repeat-y imaginea se repeta pe verticala no-repeat imaginea nu se repeta Exemplu: imaginea nu se repeta sub eticheta p <html> <head> <title>Exemplu 5_3</title> <style type="text/css"> <!-p {background-image: url(poza.jpg); background-repeat: no-repeat;} --> </style> </head> <body> Text normal <p>Text cu imagine de fond</p> </body> </html> Pozitia In mod normal imaginea de fundal incepe din coltul stanga sus al obiectului asociat, dar acest lucru poate fi controlat prin comanda CSS background-position. Sunt acceptate doua valori: in prima pozitie poate fi: top, center, bottom, percentage sau pixel in a doua pozitie poate fi: right, center, left, percentage sau pixel Exemplu: imaginea de fundal este asociata etichetei BODY fiind amplasata top si center, fara repetare <html> <head> <title>Exemplu 5_4</title> <style type="text/css"> <!-body {background-image: url(poza.jpg); background-repeat: no-repeat; background-position: top center;} --> </style> </head> <body>
Exemplu: lista ordonata folosind marcaje cu litere mici <html> <head> <title>Exemplu 6_1</title> <style type="text/css"> <!-li {list-style-type: lower-alpha;} --> </style> </head> <body> Necesar materiale: <ol> <li>caramida</li> <li>ciment</li> <li>ipsos</li> </ol> </body> </html>
list-style-image In afara simbolurilor de marcaj prestabilite cunoscute de browser pot fi folosite si imagini prin comansa CSS list-style-image. Imaginile sunt introduse prin adresa url(). Exemplu: lista ordonata folosind ca marcaj imaginea punct.gif <html> <head> <title>Exemplu 6_2</title> <style type="text/css"> <!-li {list-style-image: url(punct.gif);} --> </style> </head> <body> Necesar materiale: <ul> <li>caramida</li> <li>ciment</li> <li>ipsos</li> </ul> </body> </html>
Chenare si margini
Fiecare element este incadrat intr-o caseta care este compusa din urmatoarele elemente:
marginea (margin) este spatiul exterior chenarului pana la celelalte elemente chenarul (border) este o bordura care inconjoara elementul completarea (padding) stabileste distanta dintre continut si chenar continutul include informatia utila (text, tabele, imagini, formulare, etc.) Originea elementului este considerat coltul din dreapta sus fata de care se vor raporta toate dimensiunile prezentate in continuare.
width si height Latimea si inaltimea unui element sunt stabilite in HTML prin atributele width si height. Aceste atribute pot fi adaugate sau suprascrise prin comenzi CSS. Exemplu: folosind comenzi CSS modificam dimensiunile originale ale imaginii <html> <head> <title>Exemplu 7_1</title> <style type="text/css"> <!-img {width: 50px; height: 100px;} --> </style> </head> <body> <img src="margini.gif"> </body> </html> padding si margin padding stabileste distanta dintre obiect si chenar simultan pentru toate laturile. Distantele pot fi stabilite si individual folosind padding-top, padding-bottom, padding-left sau padding-right. margin stabileste distanta dintre chenar si celelalte obiecte din pagina simultan pentru toate laturile. Distantele pot fi stabilite si individual folosind margin-top, margin-bottom, margin-left sau margin-right. Valorile pentru padding si margin pot fi exprimate in: px (pixeli), in (inci), pt (puncte) sau cm (centimetri). Exemplu: folosind comenzi CSS imaginea este pozitionata la 100px fata de latura stanga si 25px fata de latura de sus <html> <head> <title>Exemplu 7_2</title> <style type="text/css"> <!-img {margin-left: 100px; margin-top: 25px;} --> </style> </head> <body> <img src="margini.gif"> </body> </html> border Netscape si Internet Explorer afiseaza diferit chenarele. Comanda CSS pentru definirea chenarului este border avand proprietatile asociate width, style si color. Pentru a fi siguri ca aceste proprietati functioneaza atat in Internet Explorer cat si in Netscape trebuie sa declaram pentru border cel putin width si style.
border-width stabileste grosimea chenarului si poate fi exprimata in px (pixeli), pt (puncte), cm (centimetri) sau in (inci). border-style stabileste tipul chenarului si poate fi dotted, dashed, solid, double, groove, ridge, inset si outset. border-color stabileste culoarea chenarului si poate fi exprimata prin valoare hexazecimala sau in cuvinte. Exemplu: definim noua clase utilizand proprietatile border-width border-style si border-color <html> <head> <title>Exemplu 7_3</title> <style type="text/css"> <!-.clasa1 {border-width: 2px; border-style: dotted; border-color: red;} .clasa2 {border-width: 3px; border-style: dashed; border-color: blue;} .clasa3 {border-width: 2px; border-style: solid; border-color: green;} .clasa4 {border-width: 3px; border-style: double; border-color: black;} .clasa5 {border-width: 2px; border-style: groove; border-color: silver;} .clasa6 {border-width: 3px; border-style: ridge; border-color: lime;} .clasa7 {border-width: 2px; border-style: inset; border-color: yellow;} .clasa8 {border-width: 3px; border-style: outset; border-color: aqua;} .clasa9 {border-width: 2px; border-style: hidden; border-color: olive;} --> </style> </head> <body> <div class="clasa1">border-width: 2px; border-style: dotted; bordercolor: red;</div><br> <div class="clasa2">border-width: 3px; border-style: dashed; bordercolor: blue;</div><br> <div class="clasa3">border-width: 2px; border-style: solid; bordercolor: green;</div><br> <div class="clasa4">border-width: 3px; border-style: double; bordercolor: black;</div><br> <div class="clasa5">border-width: 2px; border-style: groove; bordercolor: silver;</div><br> <div class="clasa6">border-width: 3px; border-style: ridge; bordercolor: lime;</div><br> <div class="clasa7">border-width: 2px; border-style: inset; bordercolor: yellow;</div><br> <div class="clasa8">border-width: 3px; border-style: outset; bordercolor: aqua;</div><br> <div class="clasa9">border-width: 2px; border-style: hidden; bordercolor: olive;</div> </body> </html>
Pozitionare
Pozitionarea permite asezarea unui obiect intr-un anume loc folosind coordonatele. Totodata obiectele pot fi pozitionate pe straturi diferite, unul deasupra celuilalt.
Atat pozitionarea absoluta (ASOLUTE) cat si cea relativa (RELATIVE) folosesc proprietatile LEFT si TOP exprimate in px (pixeli), in (inci), pt (puncte), ems, procentaje sau cm (centimetri). Pozitionare absoluta plaseaza obiectul in pagina exact in locatia data de left si top. Astfel poate fi creat un element liber fata de celelalte din pagina. Obiectul poate fi orice, de exemplu text sau imagine. Exemplu: am aplicat pozitionarea absoluta etichetei h4 <html> <head> <title>Exemplu 8_1</title> </head> <body> <h4 style="position: absolute; left: 50px; top: 50px">Text 1</h4> <h4 style="position: absolute; left: 100px; top: 200px">Text 2</h4> </body> </html> Pozitionare relativa este pozitia normala pe care o ocupa un element, dupa elementele anterioare si inaintea celor urmatoare. Poate fi deplasat fata de aceasta pozitie folosind proprietatile left si top. Exemplu: am folosit doua obiecte, unul pozitionat absolut, celalalt relativ <html> <head> <title>Exemplu 8_2</title> <style type="text/css"> <!-.absolut {position: absolute; left: 200px; top: 150px;} .relativ {position: relative; left: 50px; top: 50px;} --> </style> </head> <body> <div class="absolut">Pozitionare absoluta, independent de celelate obiecte din pagina</div> Text <div class="relativ">Pozitionare relativa, dupa "Text"</div> </body> </html> Pozitionarea tridimensionala Elementele sunt pozitionate pe ecran pe o suprafata bidimensionala dar pot fi asezate si unul deasupra celuilalt, intr-o stiva utilizand un indicativ (index-z) incepand cu 0, urmatorul 1 si tot asa in continuare. Elementul cu indexul cel mai mare este asezat deasupra. Exemplu: am folosit trei obiecte pozitionate absolut <html> <head>
<title>Exemplu 8_3</title> <style type="text/css"> <!-.element1 {position: absolute; left: 30px; top: 30px; z-index: 3} .element2 {position: absolute; left: 50px; top: 50px; z-index: 2} .element3 {position: absolute; left: 70px; top: 70px; z-index: 1} --> </style> </head> <body> <div class="element1"><img src="poza.jpg"></div> <div class="element2"><img src="poza.jpg"></div> <div class="element3"><img src="poza.jpg"></div> </body> </html>
Pozitionare
Pozitionarea permite asezarea unui obiect intr-un anume loc folosind coordonatele. Totodata obiectele pot fi pozitionate pe straturi diferite, unul deasupra celuilalt. Atat pozitionarea absoluta (ASOLUTE) cat si cea relativa (RELATIVE) folosesc proprietatile LEFT si TOP exprimate in px (pixeli), in (inci), pt (puncte), ems, procentaje sau cm (centimetri). Pozitionare absoluta plaseaza obiectul in pagina exact in locatia data de left si top. Astfel poate fi creat un element liber fata de celelalte din pagina. Obiectul poate fi orice, de exemplu text sau imagine. Exemplu: am aplicat pozitionarea absoluta etichetei h4 <html> <head> <title>Exemplu 8_1</title> </head> <body> <h4 style="position: absolute; left: 50px; top: 50px">Text 1</h4> <h4 style="position: absolute; left: 100px; top: 200px">Text 2</h4> </body> </html> Pozitionare relativa este pozitia normala pe care o ocupa un element, dupa elementele anterioare si inaintea celor urmatoare. Poate fi deplasat fata de aceasta pozitie folosind proprietatile left si top. Exemplu: am folosit doua obiecte, unul pozitionat absolut, celalalt relativ <html> <head> <title>Exemplu 8_2</title> <style type="text/css"> <!-.absolut {position: absolute; left: 200px; top: 150px;} .relativ {position: relative; left: 50px; top: 50px;}
--> </style> </head> <body> <div class="absolut">Pozitionare absoluta, independent de celelate obiecte din pagina</div> Text <div class="relativ">Pozitionare relativa, dupa "Text"</div> </body> </html> Pozitionarea tridimensionala Elementele sunt pozitionate pe ecran pe o suprafata bidimensionala dar pot fi asezate si unul deasupra celuilalt, intr-o stiva utilizand un indicativ (index-z) incepand cu 0, urmatorul 1 si tot asa in continuare. Elementul cu indexul cel mai mare este asezat deasupra. Exemplu: am folosit trei obiecte pozitionate absolut <html> <head> <title>Exemplu 8_3</title> <style type="text/css"> <!-.element1 {position: absolute; left: 30px; top: 30px; z-index: 3} .element2 {position: absolute; left: 50px; top: 50px; z-index: 2} .element3 {position: absolute; left: 70px; top: 70px; z-index: 1} --> </style> </head> <body> <div class="element1"><img src="poza.jpg"></div> <div class="element2"><img src="poza.jpg"></div> <div class="element3"><img src="poza.jpg"></div> </body> </html>
Proprietati CSS
Data publicarii: Iunie 2006 font, text font-family font-style text-align text-decoration color, background background-color background-repeat color legaturi a font-size font-weight text-indent
background-image background-position
a: link
a: active
list-style-image
dimensiuni, chenare, margini, completari width height border-width border-style border-color margin margin-top margin-bottom margin-left margin-right padding padding-top padding-bottom padding-left padding-right pozitie position-absolute z-index vertical-align position-relative float