CSS: boje, fontovi i selektori

Lekcija 5 od 17 · HTML, CSS i JavaScript

CSS (Cascading Style Sheets) određuje izgled: boje, slova, razmake i raspored. Isti HTML može izgledati potpuno drugačije sa drugim CSS fajlom. U ovoj lekciji su pravila, selektori (element, klasa, id), boje, fontovi i kako pregledač odlučuje koje pravilo pobeđuje.

Pre nego što počneš: potrebno predznanje – liste, tabele i delovi stranice.
Kako da učiš: zadatke na kraju prvo uradi sam/a u svom editoru; uputstvo i rešenje otvori tek posle toga. Svaki primer ima kod i živi rezultat ispod njega; kod prekucaj u svoj fajl i menjaj ga.

CSS pravilo

h1 {                 ← selektor: na koje elemente se odnosi
  color: navy;       ← svojstvo: vrednost;
  font-size: 32px;
}
Gde se piše CSSPrimerKada
poseban fajl (najbolje)<link rel="stylesheet" href="css/stil.css"> u headuvek – jedan fajl za ceo sajt
u style elementu<style> h1 { color: navy; } </style> u headmale probe, jedna strana
u atributu<p style="color: red">izbegavati – teško se menja

Selektori

<style>
  p { color: #333; }                  /* svi pasusi */
  .vazno { background: #fff3cd; }     /* svi elementi sa class="vazno" */
  #naslov { color: #2b7bb9; }         /* jedan element sa id="naslov" */
  li a { color: green; }              /* linkovi UNUTAR li */
  h2, h3 { font-family: Georgia, serif; }   /* više selektora odjednom */
  a:hover { color: crimson; }         /* kada je miš iznad linka */
</style>
<h2 id="naslov">Selektori</h2>
<p>Običan pasus.</p>
<p class="vazno">Pasus sa klasom „vazno“.</p>
<ul><li><a href="#">link u listi</a></li></ul>
<a href="#">link van liste (pređi mišem)</a>

Rezultat:

SelektorBiraNapomena
psve elemente tog tipa
.imesve elemente sa class="ime"klasa se koristi na više elemenata; element može imati više klasa: class="kartica vazno"
#imeelement sa id="ime"id je jedinstven na stranici
A BB koji je bilo gde unutar Apotomak
A > BB koji je direktno dete od A
:hover, :first-child, :nth-child(2n)stanje ili položajpseudo-klase

Za stilizovanje se najčešće koriste klase – fleksibilne su i lako se ponovo upotrebe.

Boje i jedinice

Zapis bojePrimer
imered, navy, white
heksadekadno #RRGGBB#2b7bb9 – po dve heks cifre za crvenu, zelenu i plavu (00–ff)
rgb() / rgba()rgb(43, 123, 185), rgba(0, 0, 0, 0.5) – poslednji broj je providnost
hsl()hsl(205, 62%, 45%) – nijansa, zasićenost, osvetljenost
JedinicaZnačenje
pxpiksel – fiksna veličina
%procenat veličine roditelja
remu odnosu na osnovnu veličinu slova (obično 16px): 1.5rem = 24px – preporučeno za slova
emu odnosu na veličinu slova roditelja
vw, vhprocenat širine / visine prozora

Veza sa programiranjem: u heksadekadnom zapisu ff = 255, pa je #ff0000 isto što i rgb(255, 0, 0). Kontrast teksta i pozadine mora biti dovoljan da se tekst lako čita.

Slova i tekst

<style>
  body { font-family: "Segoe UI", Arial, sans-serif; line-height: 1.6; }
  h1 { font-size: 2rem; text-align: center; color: #1f5f91; }
  .podnaslov { font-style: italic; text-align: center; color: #666; }
  .napomena { font-weight: bold; text-transform: uppercase; letter-spacing: 2px; font-size: 0.8rem; }
  a { text-decoration: none; border-bottom: 2px solid #2b7bb9; }
</style>
<h1>Informatička sekcija</h1>
<p class="podnaslov">Svakog utorka u 14 časova</p>
<p class="napomena">Prijave su otvorene</p>
<p>Više na <a href="#">stranici sekcije</a>.</p>

Rezultat:

SvojstvoPrimeri vrednosti
font-familylista fontova, poslednji je opšti: Arial, sans-serif
font-size16px, 1.2rem
font-weight / font-stylebold, 400, 700 / italic
text-alignleft, center, right, justify
line-heightrazmak između redova, npr. 1.6
text-decorationnone (bez podvlačenja), underline

Posebni fontovi mogu se besplatno uključiti sa Google Fonts – sajt daje gotov <link> za head.

Kaskada: koje pravilo pobeđuje

Kada se više pravila odnosi na isti element, pregledač bira po redu:

  1. Specifičnost – precizniji selektor pobeđuje: style="" > #id > .klasa > element.
  2. Redosled – pri istoj specifičnosti pobeđuje pravilo napisano kasnije.
  3. Nasleđivanje – neka svojstva (boja, font) prelaze sa roditelja na decu; zato je dovoljno da se font zada za body.
<style>
  p { color: gray; }
  .plavo { color: blue; }
  p { color: green; }        /* kasnije od prvog p pravila → pobeđuje njega */
  #poseban { color: red; }   /* id je specifičniji od klase */
</style>
<p>Običan pasus – zelen (kasnije pravilo).</p>
<p class="plavo">Pasus sa klasom – plav (klasa jača od elementa).</p>
<p class="plavo" id="poseban">Pasus sa klasom i id – crven.</p>

Rezultat:

Savet: desni klik na bilo koji element stranice → Inspect / Pregledaj (ili F12) pokazuje njegov HTML i CSS. Vrednosti možeš menjati uživo – promena traje dok ne osvežiš stranicu.

Zadaci za vežbu

Za svaki zadatak postoji primer, uputstvo i rešenje. Rešenja su provereno ispravna u pregledaču.

ZADATAK 01Težina: lako

Stilizuj stranicu „O meni“

Napravi fajl css/stil.css, poveži ga sa stranicom „O meni“ i zadaj: font za ceo sajt, boju glavnog naslova, klasu .istaknuto sa svetlom pozadinom i linkove bez podvlačenja koji menjaju boju kada je miš iznad njih.

Česte greške i saveti
  • Tačka-zarez posle svake vrednosti: color: red; – bez njega se sledeće svojstvo ne primenjuje.
  • Klasa se u HTML-u piše bez tačke (class="vazno"), a u CSS-u sa tačkom (.vazno).
  • Ako se stil ne primenjuje: proveri putanju u <link> i u F12 pogledaj da li je pravilo precrtano (pobedilo ga je drugo).
  • Ne koristi id za stilizovanje više elemenata – id je jedinstven.

Proveri znanje

Otvori kviz

CSS osnove

1. Kako se u CSS-u bira element sa class="kartica"?




2. Koja boja je #ff0000?




3. Koji selektor je najspecifičniji?




4. Gde je najbolje pisati CSS za ceo sajt?