Tutorial CSS
Tutorial CSS
Cu ajutorul CSS-ului putem crea pagini web simple dar si complexe folosind efecte
diverse. Cu CSS putem stabili culoarea, marimea si fontul textului, deasemenea putem
crea un layout (un suoport pentru elementele HTML) personalizat adaugand margine
culoare sau imagine de fond si multe altele. In concluzie CSS te poate scapa de multe
batai de cap, ajutandute in a mentine codul html cat mai simplu si mai ordonat.
Cascading Style Sheets pe numele lui mic CSS se foloseste pentru a personaliza
tagurile HTML..
In principiu HTML a fost conceput pentru a marca elementele unei pagini:
<html>
<head>
<title>......</title>
</head>
<body>
<h1>......</h1>
<p>........</p>
</body>
</html>
1
Aceasta problema a fost rezolvata in versiunea 4.0 a HTML-ului. Toate atributele de
personalizare au fost scoase si salvate intr-un fisier extern cu extensia ".css".
In felul acesta modificand un singur fisier putem schimba forma in care sunt afisate
toate paginile unui website. Putem schimba culoarea textului, fontul, marimea, putem
personaliza div-uri, formulare si multe altele.
Si cam atat despre ce face si ce este CSS-ul. In capitolul urmator vom trece la lucruri
mai practice si vom invata cum anume sa facem tot ce am spus ca se poate face folosind
CSS.
h1 { color: green }
Ce inseamna mai exact? Ca "Titlul de marimea 1 are culoarea verde". Atat de simplu.
Incearca si tu:
sau
In cazul in care valoarea elementului se compune din doua cuvinte le vom pune intre
ghilimele
2
p { font-family: "times new roman"}
Daca vom scrie mai mult decat o proprietate le vom separa una de cealalta prin punct si
virgula (;).
Recomandare:
Va recomand sa scrieti toate aceste propietati una sub alta pentru o mai buna citire
ulterioara a codului. Deasemenea va recomand sa puneti punct si virgula dupa toate
proprietatile elementului chiar daca este ultima dintr-un sir sau daca elementul are o
singura proprietate. Luand in calcul acestea codul CSS ar deveni urmatorul
p{
text-align:right;
color:green;
font-family:"times new roman";
}
O alta regula CSS spune ca mai multe elemente cu aceleasi proprietati se pot grupa
dupa cum urmeaza
font-family:arial;
color:green;
Comentarii CSS
3
Tutorial CSS - Class si Id
CSS - Class si Id
Pentru a stabili in CSS o clasa de elemente cu aceleasi proprietati vom folosii atributul
class sau id.
Clasele de elemnte in CSS pot fi stabilite pentru un singur tag HTML sau pentru orice
alt tag care are la atributul class valoarea stabilita anterior. Desi suna putin cam
complicat este chiar simplu. Sa ne uitam la urmatorul exemplu care stabileste o clasa in
CSS.
p.center {text-align:center}
p.right {text-align:right}
Cu aceasta bucata de cod CSS am stabilit doua clase de paragrafuri, unul centrat si altul
aliniat la dreapta. Acum le vom aplica in HTML.
In cazul in care vrem sa folosim aceasi clasa pentru mai multe elemente vom elimina
tagul <p> din numele clasei.
Sa zicem ca vrem sa centram mai multe elemente. De exemplu un div, un titlu, un
paragraf si o imagine. Putem folosi aceasi clasa.
.center {text-align:center}
Ar trebuii mentionat ca numele clasei ".center", este un nume generic si nu are nimic
de-a face cu actiunea asupra unui tag. Se putea numi la fel de bine si ".clatitecugem".
.clatitecugem {text-align:center}
<div class="clatitecugem">
<h1 class="clatitecugem">Un titlu centrat</h1>
<p class="clatitecugem">Clatitele cu gem sunt foarte bune,
ele se fac de cate ori are chef nevasta-mea. Ma duc sa o intreb
daca vrea (Tot acest paragraf va fi centrat in mijlocul div-
ului).</p>
</div>
Cu toate acestea, va sfatuiesc sa folositi nume descriptive si intuitive. Sunt mult mai
simple si servesc mai bine la intelegerea ulterioara a codului CSS
4
Nota:
Inceperea numelui cu un numar NU este recomandata. Clasele denumite gen: ".165464"
sau ".6ceva" sunt interpretate doar de IE
CSS - Id
Id-ul se foloseste la fel ca si class. De fapt singura diferenta intre class si id este sintaxa
de definire. Vom folosi un diez (#) in loc de punct pentru a defini id-ul in CSS
#center {
text-align:center;
color:blue
font-family:"sans serif"
}
In momentul de fata codul CSS se poate stoca sau pune in trei locuri si anume:
In general fisierele externe de CSS sunt cele mai folosite. Este de recomandat sa
folositi aceasta metoda pentru o mai simpla modificare a intregului website. In acest fel
se poate modicica un site intreg schimband continutul unui singur fisier .css. Singura
conditie este ca toate paginile sitului sa contina in sectiunea head tag-ul <link>.
<head>
<link rel="stylesheet" type="text/css"
href="fisier_extern.css" />
</head>
Un fisier CSS se poate scrie in orice editor de text, notepad, notepad++, word,
macromedia, etc dar trebuiesc salvate cu extensia ".css"
5
Observatie: NU lasa spatiu intre numarul specificat si unitatea de masura. Folosind
"margin-left:15 px;" in loc de "margin-left:15px;" va genera erori in Firefox si Opera.
CSS intern
Codul CSS in head, nu ar trebuii folosit prea mult cu exceptia faptului ca ai o pagina
care are nevoie de un stil propriu si nu il imparte cu nici o alta pagina.
Codul CSS intern este acelasi ca si la cel introdus intr-un CSS extern., cu exceptia unor
taguri speciale care il incapsuleaza. Dar sa aruncam o privire la exemplul urmator.
<head>
<style type="text/css">
</style>
</head>
Dupa cum am mentionat anterior, pentru a plasa CSS in HTML vom folosi tagul
<style> impreuna cu atributul type="text/css", pe care le vom pune in sectiunea head a
documentului HTML.
CSS inline
CSS inline nu inseamna nici mai mult nici mai putin decat CSS in interiorul tagului
HTML.. Folosind CSS-ul sub aceasta forma vom pierde toate avantajele pentru care a
fost creat si anume pontru a nu amestega tagurile HTML cu formatarea si prezentarea
lor. Exista totusi si avantaje in a folosi CSS-ul in aceasta maniera dupa cum vom vedea.
Dar mai intai sa vedem cum anume se poate introduce CSS intr-un tag HTML.
Observatie:
Dupa cum se observa in exemoplu anterior valoarea fontului este o valoare compusa din
trei cuvinte. In acest caz in loc de ghilimele duble am folosit ghilimele simple pentru a
evita conflictul cu ghilimele duble folosite pentru a incapsula valoarea atributului style.
style="text-align:right;color:green;font-family:`times new
roman`;margin-left:15px;"
6
Daca am folosii acelasi tip de ghilimele peste tot, browser-ul ar intrerpreta sfarsitul
valorii inainte de vreme. Iata bucata de cod CSS care va fi interpretata de browser:
style="text-align:right;color:green;font-family:"
Dupa cum am spus codul CSS se poate insera in HTML dupa cum urmeaza:
Ce se intampla insa atunci cand formatam un element si folosim mai multe modalitati de
inserare a CSS-ului?
Ordinea de reproducere in browser va fi urmatoarea:
Concluzie
Formatarea inline anuleaza toate celelalte expresii CSS de formatare. Iar standardele de
formatare ale browser-ului intervin doar atunci cand nu este specificata o alta formatare
CSS.
Exceptie:
In cazul in care tagul <link> este pus dupa tagul <style> codul CSS aflat in fisierul .css
extern va anula codul CSS intern.
<head>
<style type="text/css">
body { background-image: url("img/imagine.png"); }
hr { color: #efefef;}
p { margin-left: 15px;}
</style>
</head>
7
Tutorial CSS - Background
CSS Background
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
Background solid
body { background-color: #efefef; }
h1 { background-color:red, }
p { background-color:rgb(255,0,0); }
div { background-color: black; }
Background imagine
Pentru a repeta imaginea doar pe verticala sau doar pe orizontala vom folosi urmatorul
cod CSS:
body
{
background-image:url("o_imagine.gif");
background-repeat:repeat-x;
}
8
Daca nu vrei ca imaginea sa se repete trebuie sa specifici acest lucru
body
{
background-image:url("o_imagine.gif");
background-repeat:no-repeat;
}
CSS - background-attachment
body
{
background-image:url("o_imagine.png");
background-repeat:no-repeat;
background-attachment:fixed;
}
Tot ce am scris mai sus se poate rezuma la expresia CSS de mai jos
Cand se foloseste varianta scurta a acestor atribute ordinea lor va fi mereu urmatoarea:
-background-color
-background-image
-background-repeat
-background-attachment
-background-position
Nu conteaza daca unul sau mai multe valori lipsesc atata timp cat se pastreaza aceasta
ordine.
9
Tutorial CSS - Formatarea textului
Tutorial CSS - Text
Cu ajutorul atributului body vom specifica culoarea intregului text continut in pagina cu
exceptia cazului in care specificam altceva.
Alinierea textului
h1 { text-align: center; }
p { text-align: center; }
a { text-decoration: none; }
h1 { text-decoration: overline; }
h2 { text-decoration: line-through; }
h3 { text-decoration: underline; }
h4 { text-decoration: blink; }
p { text-transform: uppercase; }
p { text-transform: lowercase; }
p { text-transform: capitalize; }
Tot aici voi mentiona si alinierea paragrafului (spatiu liber la inceputul randului)
p { text-indent: 30px; }
10
Tutorial CSS - Font si familii de fonturi
Tutorial CSS Fonturi si familii de fonturi
Exista doua tipuri principale de fonturi si anume "serif" si "sans serif". Intre ele nu este
mare diferenta dar ceea ce este de retinut este ca: fonturile familiei "serif" sunt mai usor
de citit.
Dupa cum se poate observa se pot prestabili mai multe fonturi in cazul in care userul nu
are instalat fontul principal, sau browser-ul nu suporta fontul respectiv.
Font style si font weight in CSS se refera la text normal, inclinat sau ingrosat.
p { font-style: normal; }
p { font-style: italic; }
p { font-weight: bold; }
Sunt si alte valori pe care le pot lua atat font style cat si font weight dar cele de mai sus
sunt cele care se folosesc in mod normal in CSS. Am ajaugat totusi o lista cu toate
valorile acceptate ceva mai jos.
Pentru a stabili marimea textului cu ajutorul CSS-ului vom folosii atributul "font-
size" dupa cum urmeaza:
h1 { font-size: 30px; }
h2 { font-size: 20px; }
p { font-size: 12px; }
Exemplele de mai sus functioneaza foarte bine in Firefox Opera si Google Cherome, dar
nu si in Internet Explorer problema apare atunci cand se mareste textul. Daca nu te
intereseaza ca utilizatori paginii tale nu vor putea schimba marimea textului pentru o
mai buna vizivilitate poti folosii expresiile de mai sus fara alte complicatii.
Dar daca vrei sa elimini si aceasta problema poti folosi "em" ca unitate de masura.
Unitatea de masura "em" este recomandata de w3.org si 1em=16px.
Dupa cum se poate deduce, formula pt a calcula marimea textului in "em" este
em=numar_pixeli/16.
11
h1 { font-size: 1.875em; }
h2 { font-size: 1.25em; }
p { font-size: 0.75em; }
p { font-variant: small-caps; }
Expresia de mai sus transforma textul formatat cu ajutorul CSS in majuscule ceva mai
mici decat cele normale.
Folosind CSS putem incadra contiunutul, putem stabilii distanta intre continut si border
intre border si marginea paginii. Vom folosi urmatoarele atribute:
div {
width:200px;
padding:15px;
border:5px solid;
margin:15px;
}
Observatie:
Vom considera exemplul de mai sus un element. Trebuie mentionat ca acest
element are o latime totala de 270px (200+15x2+5x2+15x2=270px).
Concluzie:
latimea continutului + left padding + right padding + left border + right border + left
margin + right margin = Latimea totala
si
inaltimea continutului + left padding + right padding + left border + right border +
left margin + right margin = Inaltimea totala
Aceste doua formule trebuiesc luate in considerare atunci cand stabilim inaltimea si
latimea continutului.
12
Nota:
Trebuie mentionat aici ca Internet Explorer, include padding-ul si border-ul in latime
(width) in cazul in care acesta este specificat. Aceasta eroare se corecteaza introducand
un DOCTYPE la inceputul documentului.
- none
- solid
- dotted
- dashed
- double
- groove
- ridge
- inset
- outset
Valorile precum groove, ridge, inset si outset pot genera borduri CSS 3D daca sunt
alese culorile corecte
13
div {
border-style:solid;
border-width:2px;
}
div {
border-style:solid;
border-color:red;
}
Observatie:
Se pot deasemenea stabilii proprietati individuale pentru fiecare dintre laturile
chenarului obtinut.
div {
border-top-style:dotted;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:solid;
}
Forma scurta de a scrie toate aceste valori intr-o singura expresie este
div {
border-style:dotted solid;
}
Folosind forma scurta de a scrie CSS putem stabill aceste valori mult mai simplu
economisind timp. Iata cateva exemple care sper sa va lamureasca in privinta contruirii
acestora:
14
- div { border-style:dotted solid; }
Bordurile de sus si de jos sunt punctate iar cele din dreapta si din stanga sunt solide.
- div { border-style:dotted; }
Te las sa ghicesti.
Observatie:
O alta metoda de a coda in CSS toate proprietatile bordurii intr-o singura expresie este:
CSS - Outline
- outline
- outline-color
- outline-style
- outline-width
Nota:
Vezi tabelul de referinte pentru valori disponibile atributului outline.
CSS - Margin
Atributul margin stabileste "dupa cum zice si numele" o distanta in afara bordurii
stabilite anterior. Marginea definita nu va avea nici o culoare, cu alte cuvinte va fi
transparenta.
Pentru a defini aceasta margine vom stabili valoarea fiecarei margini in parte cea de sus
(margin-top)marginea din dreapta si din stanga ( margin-right si respectiv margin-left),
si cea de jos (margin-bottom). Retine aceasta ordine intrucat iti va fi utila atunci cand
stabilesti margin-ul folosind expresia scurta:
15
CSS - Padding
Padding se refera la regiunea dintre continut si bordura (border). Vom stabili aceasta
regiune in acelasi fel ca si la atributul margin, folosind:
- padding-top:10px;
- padding-bottom:10px;
- padding-right:20px;
- padding-left:20px;
Atributul list din CSS permite modificarea tipului de lista sau sau folosirea unei imagini
ca marcador.
ul {list-style-type:disc;}
ol {list-style-type:upper-roman;}
ul { list-style-image:url("image.png"); }
Mentiune:
NU toate browser-ele vor afisa imaginea in aceasi pozitie. De exemplu Internet Explorer
si Opera va afisa imaginea ceva mai sus decat Firefox si Google Chrome.
Pentru a plasa imaginea in pozitia dorita si sa ramana acolo in orice navigator vom:
16
ul {
list-style-type:none;
padding:0px;
margin:0px;
}
li {
background-image:url(image.png);
background-repeat:no-repeat;
background-position:0px 5px;
padding-left:15px;
}
ul.inside {list-style-position:inside}
ul.outside {list-style-position:outside}
Valuarea standard pentru o lista este outside. O valuare precum inside va impinge lista
spre interiorul paginii.
- statica
- fixa
- relativa
- absoluta
Pozitionarea statica este valoarea standard in browser atribuita unui element cand vine
vorba de pozitionare.
Folosind valuarea "fixed" pentru atributul "position" vom obtine un element pe pagina
care are o pozitie fixa indiferent de celelalte elemente. Cu altea cuvinte elementul
pluteste in pozitia stabilita chiar daca dam de rotita mouseului. Folosind valoarea
17
"fixed" elementele se pot suprapune, celelalte elemente comportanduse ca si cand
elementul fix nu ar exista.
.pozitie_fixa {
position:fixed;
top:25px;
right:10px;
}
Mentiune:
.pozitionare_relativa {
position:relative;
left:15px;
top:30px;
}
.pozitionare_relativa{
position:relative;
left:-15px;
top:-30px;
}
<style type="text/css">
.element_suprapus {
position:relative;
top:-20px;
}
</style>
<h2>Acest element are o pozitionare statica</h2>
<h2 class="element_suprapus">Titlul va fi urcat mai sus fata de pozitia initiala</h2>
<p><b>Note:</b> Trebuie mentionat ca spatiul corespunzator elementului, va fi
pastarat</p>
De multe ori pozitionarea relativa sau div-urile pozitionate relativ sunt folosite ca si
container pentru alte divuri sau elemente pozitionate absolut.
18
CSS - Pozitionare absoluta
p
{
position:absolute;
left:200px;
top:200px;
}
Vom folosi atributul z-index pentru a specifica ordinea elementelor. z-index poate avea
atat valori pozitive cat si negative.
<html>
<head>
<style type="text/css">
img
{
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
</style>
</head>
& <body>
<h1>Suprapunerea mai multor elemente in CSS</h1>
<img src="imagine.jpg" width="100" height="100" />
<p>Vom folosi atributul z-index pentru a specifica ordinea elementelor. z-index poate
avea atat valori pozitive cat si negative.</p>
</body>
</html>
19
CSS - Elemente vizibile si elemente ascunse in css. Proprietatea display in css
p.ascuns {visibility:hidden;}
p.ascuns {display:none;}
Exista elemente html care sunt delimitate de celelalte elemente sau de elemente de
acelasi tip printr-un salt in linie (enter, line break, br). Spunem ca aceste elemente sunt
afisate in block.
Deasemenea exista elemente care sunt afisate in pe acelasi rand fara sa influienteze
cursul pagini.
-<span>, <a>
Cu ajutorul CSS afisarea elementelor poate fi schimbata si anume putem afisa elemente
precum div paragraf etc inline si elemente precum linkuri span etc in block.
div {display:inline;}
Exemplul de mai sus va afisa toate div-urile pe aceasi linie.Se foloseste in general cu
clase sau id in css pentru a personaliza doar div-urile care se vor personalizate. Ex: bara
de meniuri orizontala
div.bara_orizontala {display:inline;}
20
Mai jos am exemplificat un link afisat in block, introducand un salt in linie inainte si
dupa el.
a {display:block;}
Se foloseste in general cu clase sau id in css pentru a personaliza doar link-urile care se
vor personalizate. Ex: sidebar.
a.sidebar_links {display:block;}
Folosind atributul float elementele vor pluti unul langa altul sau unul in continuarea
celuilalt atat cat spatiul rezervat lor o permite. Acesttip de aliniere se refera la o alinire
orizontala si nu verticala a elementelor.
Un alt exemplu. Vrem sa afisam o imafine aliniata la dreapta sau la stanga si vrem ca
aceasta sa fie inconjurata de text. float:left; sau float:right; va afisa textul in stanga sau
in dreapta imaginii depinde de cum a fost aliniata anterior.
img {
float:left;
}
sau
.clasa_de_elemente {
float:left;
}
Toate elemenetele html care sunt situate dupa alementul aliniat cu float right sau left vor
pluti langa acesta. Pentru a impiedica sa se intample acest lucru atunci cand nu vrem sa
se intample vom folosi atibutul clear cu valoarea both:
.enter {
clear:both;
21
}
De cate ori ai intrat pe un site si ai te-ai gandit: "Cum a facut bara de navigare?".
In general pentru a crea o bara de navigare fie ea orizontala sau un meniu vertical sunt
folosite listele HTML care ulterior sunt personalizate folosind CSS. Linkuri normale in
interiorul tagului <li> care va fi incapsulat in tagul <ul>
<ul>
<li><a href="#">Acasa</a></li>
<li><a href="#">Articole</a></li>
<li><a href="#">RSS feed</a></li>
<li><a href="#">Contact</a></li>
</ul>
Vom folosi acum CSS pentru a da forma listei de mai sus, si anume list-style-type:none
- pentru a inlatura "bulinele" specifice listei. Deasemenea vom inlatura marginea si
pading-ul pe care browser-ul il atribuie ca valoare standard.
u l {
list-style-type:none;
margin:0;
padding:0;
}
Codul CSS de mai sus poate fi folosit atat pentru meniuri verticale cat si pentru bara
orizontala.
a {
display:block;
width:100px;
22
}
***Nota
Desi nu este absolut obligatoriu sa stabilim latimea blocului de elemente, va recomand
insa, sa nu omiteti acest detaliu. In browsere mai vechi bara de linkuri poate fi
distorsionata.
In principiu codul de mai sus este de ajuns pentru a crea un meniu vertical. In
continuare aveti insa un meniu terminat si finisat decent zic eu. In privinta culorilor si a
contarstelor nu trebuie decat sa va folositi imaginatia.
ul {
list-style-type:none;
margin:0;
padding:0;
}
a:link,a:visited
{
display:block;
font-weight:bold;
font-size:20px;
color:#fff;
background-color:#d2691e;
width:200px;
padding:8px;
text-decoration:none;
}
a:hover,a:active
{
background-color:#daa520;
}
<ul>
<li><a href="#">Acasa</a></li>
<li><a href="#">Articole</a></li>
<li><a href="#">RSS Feedt</a></li>
<li><a href="#">Contact</a></li>
</ul>
Pentru a crea o bara de meniu orizontala in css putem folosi, ori atributul inline, pentru
a forta elementele listei sa fie insirate pe aceasi line, ori atributul floating pentru aforta
elementele listei sa fie afisate unul langa celalalt.
23
Folosind inline
l i { display:inline; }
Ca si afisare standard elementele unei liste sunt afisate in bloc. Linia de cod CSS de mai
sus nu face decat sa elimine enter-urile inainte si dupa acestea afisand link-urile pe
aceasi linie.
Folosind float
Vm folosi atributul float pentru a afisa elementele listei unul langa celalalt. Vom folosi
deasemenea atributul display:block; pentru a afisa linkul ca si un buton si vom stabili
latimea acestuia.
li {
float:left;
}
a{
display:block;
width:60px;
}
Codurile afisate anterior sunt suficiente pentru a crea o bara de meniuri orizontala
folosind CSS In continuare aveti insa un meniu terminat si finisat. In privinta culorilor
si a contarstelor nu trebuie decat sa va folositi imaginatia si sa va jucati putin.
Bibliografie: http://www.tutorialehtml.com/tutoriale-css/bara-de-navigare-in-css.php
Clasa a-XII-a C
24