Escolar Documentos
Profissional Documentos
Cultura Documentos
#blog p:first-of-type:first-letter {
color:red;
font-size:50px;
font-weight:bold;
line-height:50px;
float:left;
display:block;
margin:0 5px 0 0;
}
Ako obratimo pažnju na selektor u primeru,
primetićemo da je postavljena kombinacija pseudo
klase :first-of-type i pseudo elementa :first-letter.
Klasom izdvajamo prvi paragraf u okviru #blog div-a,
a pseudo elementom preciziramo i ograničavamo se
na samo jedno slovo teksta. Bez first-of-type svaki
paragraf bi počinjao velikim slovom.
:first-line
• Slično prethodnom, ali selektuje prvi red teksta
umesto prvog slova.
• Obratite pažnju na to da nije reč o prvom
paragrafu, već o prvom vidljivom redu teksta.
Ukoliko se promeni širina okružujućeg elementa i
tekst se drugačije prelomi, opet samo prvi vidljivi
red ostaje stilizovan, pogođen ovim.
::selection
• Omogućuje da promenimo stilizaciju označenog
(selektovanog teksta).
• Ovaj pseudo element funkcioniše u većini
modernih browsera. U je IE podržan od verzije 9 i
u novijima, ali je zanimljivo da ga trenutno
aktuelna verzija Firefoxa ne podržava. Za Firefox
možemo koristiti varijantu sa prefiksom:
::-moz-selection
::selection
::-moz-selection {
background: #76bf32;
color:#fff;
text-shadow: none;
}
::selection {
background: #76bf32;
color:#fff;
text-shadow: none;
}
::after i ::before
• Ovi pseudo elementi, uvedeni u CSS3
specifikaciju, omogućavaju da kroz CSS na neki
način unesemo, upišemo element u HTML.
• Sa jedne strane, taj fiktivni, pseudo element koji
kreiramo i unosimo nije deo DOM-a, ali se
prikazuje i ponaša kao da jeste.
• Uz njih, moramo koristiti i svojstvo content preko
koga određujemo sam unet sadržaj.
Ukoliko u HTML dokumentu postavimo sledeći kod:
<p id="alpha">Alpha</p>
<p id="beta">Beta</p>
Dobijamo:
A u CSS-u postavimo:
#alpha, #beta {
background:#FF6;
padding:10px;
}
Ali sa druge strane, ukoliko bez promene HTML-
a, na postojeći CSS dodamo pored postojećeg,
još jedan opis:
Dobijamo:
#alpha:after {
content:" + CSS text!"
}
Prikaz u browseru se menja.
• Primećujemo da smo u CSS kodu upisali novi opis,
i koristili pseudo element ::after.
• U tom novom opisu smo upisali svojstvo content.
U okviru tog svojstva content, data vrednost pod
navodnicima će biti “ugrađena” u HTML.
• Mi ne upisujemo bukvalno ništa u HTML
dokument, već samo fiktivno dodajemo sadržaj.
• Pri tom, taj uneti sadržaj kroz CSS prilikom
prikaza, nije van elementa, već unutar njega,
unutar njegovog taga.
U prethodnom primeru, prikaz je kao da smo uneli ovakav
HTML:
<p id="alpha">Alpha</p>
<p id="beta">Beta</p>
• Unutar content svojstva kao vrednost možemo
postaviti tekst (kao što smo u primeru iznad
uradili), sliku (kao kod background slika) ili
neku vrednost atributa elementa.
• Ono što ne možemo postaviti je html tag niti
bilo šta slično. Verovatno bi bilo korisno
postaviti novi div ili možda span tag, možda sa
sve klasom, ali to (za sada) nije moguće.
:before
• Drugi pseudo element iz ove grupe je :before i
on se ponaša na veoma sličan način.
• Jedina razlika je što se njegov fiktivni sadržaj
postavlja pre realno unetog sadržaja.
Upotreba
• Sada se verovatno pitate čemu to služi? Zašto
bi uopšte nekad koristio after ili before? Iako
možda deluje trivijalno i nepotrebno, ipak
postoje mnoge situacije kada ovi pseudo
elementi mogu biti više nego korisni.
Pogledajmo za početak jedan primer.
Upotreba
• Već smo se upoznalli sa selektorima atributa.
• Sada možemo pomoću njih detektovati
eksterni link i postaviti pomoću :after
elementa vidljivu naznaku da to jeste eksterni
link koji vodi van trenutnog sajta.
U HTML-u bismo možda imali klasične linkove:
a{ a[href*="http://"]:after {
display:block; content:" [external link]";
text-decoration:none; text-transform:uppercase;
color:#099; font-size:0.6em;
} color:#ccc;
}
a:hover { color:#F93; }
možemo dobiti nešto poput prikaza na sledećoj slici: