Curs CSS
Curs CSS
Cuvant introductiv
Notiunile de baza a CSS
o Sintaxa normelor CSS
o Metodele de inserare a normelor CSS intr-un document web
o Comentariile in fisierele css
Selectorii CSS
o Selectorii uzuali ai CSS
o Selectorii avansati ai CSS
o Gruparea selectoarelor
Rezumatul lectiei
o Sintaxa normelor CSS
o Metodele de inserare a normelor CSS intr-un document web
o Comentariile in fisierele css
o Selectorii CSS
Exercitii
Titlu principal
Subtitlu 1
Paragraf 1 ..
Dr. Popescu...
Paragraf 2 ...
HTML este....
Exemplul 1 - 1.
Reintoarcere la cuprins
stilizare in linie
stilizare incorporata
stilizare externa
Exemplul 1 - 2.
Retineti ca propietatile de stilizare CSS sunt introduse in elementele HTML
prin atributul style, respectand regulile sintactice definite in subcapitolul
precedent, cu deosebirea ca nu avem selector si propietatile nu se inchid
intre acolade.
Acest mod de stilizare are toate neajunsurile stilizarii cu HTML, de aceea
este bine sa-l folosim cat mai putin, preferabil de loc.
selector element
selector class
selector id
...Final de paragraf
</p>
</body>
Sel element
Subtitlu 4
Subtitlu 5
Exemplul 1 - 3.
Sel class
Subtitlu 1
Subtitlu 2
Paragraf 3 ... ...Final de paragraf
Exemplul 1 - 4.
browser-ul va afisa ceva asemanator cu ceea ce se poate vedea in
imaginea din dreapta, adica toate elementele (indiferent ca
sunt h2 sau p), care au ca atributclass='ex4', vor fi afisate cu caractere
albastre.
1.3.1.3. - Selectorul id
Acest selector aplica propietatile continute, elementului care are valoarea
atributului ididentica cu selectorul.
#nume_id {color:orange;}
Sel. id
Subtitlu 1
Subtitlu 2
Paragraf 3 ... ...Final de paragraf
Exemplul 1 - 5.
browser-ul va afisa, cum puteti vedea in imaginea din dreapta a
exemplului de mai sus, cu caractere verzi doar elementul care are ca
atribut id="ex5", nu si elementele care au ca atribut class="ex5", adica
paragraful 3 si Subtitlul1.
Reintoarcere la cuprins
Exemplul 1 - 6.
Sel atribute
Subtitlu 1
Paragraf 1 . ...
. ..Final de paragraf
Subtitlu 2
Paragraf 2 .. .
. ..Final de paragraf
Exemplul 1 - 7.
Dar selectorii de atribute sunt cu mult mai folositori atunci cand puteti
face selectia si in functie de valoarea atributului.
[nume_atribut="valoare_atribut"] { border: 2px solid #00ff00; }
Sa vedem si un exemplu:
<head>
<style type='text/css'>
[class='ex_1']{ color:brown;}
</style>
</head>
<body>
<h2>Sel atribut cu valoare</h2>
<h3 class='ex_1'>Subtitlu 1</h3>
<p class='ex2'>Paragraf 1 ..</p>
<h3 class='ex_2'>Subtitlu 2</h3>
<p class='ex_1'>Paragraf 2 . ..</p>
</body>
Subtitlu 2
Paragraf 2 . ..
Exemplul 1 - 8.
Daca vi se pare ca este inutil acest selector, ei bine eu zic ca va inselati.
Este foarte util in timpul depanarii, deoarece da posibilitatea selectarii
doar a unei fractiuni a atributului, cea ce face selectia mai restransa sau
chiar la obiect ca si cand ar fi cu id, dar fara sa mai fie nevoie sa introduci
un atribut suplimentar.
Acest selector mai are inca doua variante, una care face selectia daca
valoarea atributului contine un cuvant:
[title~="cuvant sau propozitie"] { border: 2px solid #00ff00; }
Sa vedem si un exemplu:
<head>
<style type='text/css'>
[alt~=din]
{width:200px;
height:156px;}
</style>
</head>
<body>
<h2>Sel atribut cu ~</h2>
<img src='camping-ok.jpg'
alt='Imagine din camping'/>
<img src='camping-ok.jpg'
alt='Imagine camping'/>
</body>
Sel atribut cu ~
Exemplul 1 - 9.
Selectorul de atribute care contine caracterul ~ este destinat mai mult
atributelor a caror valoare poate contine spatii, si acestea sunt title si alt.
<head>
<style type='text/css'>
[alt|=foto]
{width:230px;
height:170px;}
[class|=ex]
{color:blue ;}
</style>
</head>
<body>
<h2>Sel atribut cu |</h2>
<h3 class='ex-812'> Subtitlu1</h3>
<p class='ex811'>Paragraf 1...</p>
<img src='camping-ok.jpg' alt='foto'/>
<p class='ex_8'>Paragraf 2 . ..</p>
</body>
Sel atribut cu |
Subtitlu1
Paragraf 1...
Paragraf 2 . ..
Exemplul 1 - 10.
Cealalta varianta de selector de atribute, a fost gandit pentru
atributul lang="en-US", astfel incat sa permita selectarea mai multor
variante de engleza. Se poate folosii si cu alte atribute, dar valoarea
atributului dupa sirul cautat trebuie sa contina liniuta de unire -.
child
Subtitlu 1
Paragraf 1 ...
Paragraf 2...
Paragraf 3...
Exemplul 1 - 11.
Observati ca acest selector aplica propietatile sale, doar primei generatii.
p > b nu s-a aplicat si paragrafelor care erau copiii directi ai
elementului q, deci erau a doua generatie a elementului p.
Sa privim la un exemplu:
<head>
<style type='text/css'>
p b.ex101 { color:#00a; }
div h3.ex102 { color:#0a0; }
</style>
</head>
<body>
<h1>descendent</h1>
<div>
<h3 class='ex102'>Subtitlu 1</h3>
<p>Paragraf 1 ...</p>
</div>
<p><b class='ex101'>Paragraf 2</b> ...</p>
<p><q><b class='ex101'>Paragraf 3</b></q>...</p>
</body>
descendent
Subtitlu 1
Paragraf 1 ...
Paragraf 2 ...
Paragraf 3...
Exemplul 1 - 12.
<head>
<style type='text/css'>
h2 + p.ex999 {color:red}
div + h2 { color:#0a0; }
</style>
</head>
<body>
<h1>Titlu</h1>
<div>
<h2>Subtitlu 1</h2>
<p class='ex999'>Paragraf 1 .. .</p>
<p id='ex999'>Paragraf 2 .. .</p>
</div>
<h2>Subtitlu 2</h2>
<p class='exemplu1'>Paragraf 3 . ..</p>
</body>
Titlu
Subtitlu 1
Paragraf 1 .. .
Paragraf 2 .. .
Subtitlu 2
Paragraf 3 . ..
Exemplul 1 - 13.
Observati ca doar paragrafelede langa titlurile h2 au fost inrosite, si doar
subtitlul h2de langa div a fost facut verde.
Sa stilizam link-urile, sau mai bine zis setarile lor, dupa cum urmeaza:
Pseudo class
Opera
Un site nevizitat
Exemplul 1 - 14.
Observati ca site-urile vizitate sunt cafenii, si siteul, pe care este pointerul
mouse-ului, este nesubliniat. Site-ul nevizitat este verde. Din pacate,
vizualizarea starii :active este dificila, fiindca daca ai un browser rapid,
acea stare dureaza fractiuni de secunda, multa lume nici nu o observa.
Starea :focus a pseudo-classes, este recomandata pentru cresterea
accesibilitatii formelor. De exemplu puteti sa evidentiati caseta de intrare
care este activa, cu urmatoarea norma:
input:focus
{ border: 2px solid red;
background color: skytblue;
}
Name:
Age:
Exemplul 1 - 15.
first-child
1. Capitolul 1
2. Capitolul 2
3. Capitolul 3
Exemplul 1 - 16.
pseudo clasa: lang
- care selecteaza elementele ale caror limba vor fi setate intr-o limba
diferita de a restului paginii, utilizand atributul lang.
Sintaxa acestui selector este:
p:lang(en-US){lista propietati:valoare} }
Sa incepem sa le detaliem.
:first-letter
Ca sa facem ca prima litera a fiecarui paragraf sa fie evidentiata, putem
scrie urmatoarea norma:
p:first-letter
{ font-weight: bold;
font-size: 200%
background-color: red;
}
Sa luam si un exemplu:
<head>
<style type='text/css'>
h3#ex151:first-letter
{color:green;}
p.ex152:first-line
{color:maroon;}
</style>
</head>
<body>
<h1>first-line</h1>
<h3 id='ex151'>first-letter</h3>
<p class='ex152'>Paragraf 1 ...<br />
a doua linie a paragrafului</p>
<p class='ex152'>Paragraf 2 ..<br />....</p>
</body>
first-line
first-letter
Paragraf 1 ...
a doua linie a paragrafului
Paragraf 2 ..
....
Exemplul 1 - 17.
:before si :after
Cum spuneam si mai sus aceste pseudo elemente se folosesc pentru a
insera un continut, inaintea sau dupa un element. Sintaxa ar fi
urmatoarea:
h2:after
{ content: "Text care se insereaza " );
propietate:valoare;
}
Imagine
Continut text
Paragraf 1 ...
Paragraf 2 ...
Exemplul 1 - 18.
Aceste selectoare nu sunt suportate de IE6 si premergatoarele. De
asemenea retineti ca nu se pot insera informatii importante prin CSS, sau
ca acest continut nu este disponibil tehnologiilor asistive. Regula de aur
este ca CSS este folosit pentru stilizare, iar pentru structurarea
continutului HTML.
Reintoarcere la cuprins
h2 {color:blue;}
putem sa scriem:
h1, h2
{color:blue;}
<head>
<style type='text/css'>
h1.ex17, h2.ex17, h3.ex17 {color:blue;}
</style>
</head>
<body>
<h1 class='ex17'>Titlu principal</h1>
<h2 class='ex17'>Subtitlu 1</h2>
<h3 class='ex17'>Subtitlu 2</h3>
<p>Paragraf 1 ...</p>
<p>Paragraf 2 ...</p>
</body>
Titlu principal
Subtitlu 1
Subtitlu 2
Paragraf 1 ...
Paragraf 2 ...
Exemplul 1 - 19.
In cazul ca avem nevoie ca doar anumite elemente p care au
atributulclass="nume_clasa" sa aiba anumite propietati atunci putem
folosi asa numita unire a selectoarelor:
p.nume_clasa {color:orange;}
Iata un exemplu:
<head>
<style type='text/css'>
p.unire
{color:#f0a;}
</style>
</head>
<body>
<h2>unirea sel</h2>
<h3>Subtitlu 1</h3>
<p>Paragraf 1 ....</p>
<p class='unire'>Paragraf 2 ....</p>
</body>
unirea sel
Subtitlu 1
Paragraf 1 ....
Paragraf 2 ....
Exemplul 1 - 20.
Sa recapitulam. Prin gruparea selectoarelor propietatile normei se aplica
tuturor elementelor vizate de selectoare, pe cand unirea selectoarelor face
ca propietatile sa se aplice doar elementelor, care satisfac toate
selectoarele. Cam confuz? Cred ca cel mai bine va lamuriti studiind
exemplele.
p.atentie{}
Reintoarcere la cuprins
Exemplul 1 - 2.
Retineti ca propietatile de stilizare CSS sunt introduse in elementele HTML
prin atributul style, respectand regulile sintactice definite in subcapitolul
precedent, cu deosebirea ca nu avem selector si propietatile nu se inchid
intre acolade.
Acest mod de stilizare are toate neajunsurile stilizarii cu HTML, de aceea
este bine sa-l folosim cat mai putin, preferabil de loc.
<head>
<style type="text/css" media="screen">
p {background:black;
color:white;
padding:10px;
}
</style>
</head>
Reintoarcere la cuprins
1.4.4.3. - Selectorul id
Acest selector aplica propietatile continute, elementului care are valoarea
atributului ididentica cu selectorul.
#nume_id {color:orange;}
Acest selector mai are inca doua variante, una care face selectia daca
valoarea atributului contine un cuvant:
[title~="cuvant sau propozitie"] { border: 2px solid #00ff00; }
a:link {color:green;}
a:visited {color:orange;}
a:hover, a:focus {text-decoration:none;}
a:active {font-weight:bold;}
:before si :after
Cum spuneam si mai sus aceste pseudo elemente se folosesc pentru a
insera un continut, inaintea sau dupa un element. Sintaxa ar fi
urmatoarea:
h2:after
{ content: "Text care se insereaza " );
propietate:valoare;
}
Reintoarcere la cuprins
1.5. - Exercitii
Exercitiul 5 - Selectorul id