Stilizovanje i pozicioniranje teksta u kontejneru sa CSS-om

Svojstvo “overflow”

css logo

Svojstvo overflow se koristi za definisanje ponašanja sadržaja koji je veći od samog kontejnera u kome se nalazi. Ovo svojstvo nije rezervisano samo za stilizovanje teksta nego za sve vrste sadržaja, mada se za tekst često koristi. Mogući su sledeći slučajevi:

  • “visible” – sadržaj je vidljiv čak i preko granica kontejnera (podrazumevano ponašanje)
  • “hidden” – višak sadržaja preko ivica kontejera je sakriven
  • “scroll” – sadržaj je vidljiv u okviru kontejnera, oba scroll bar-a su aktivna a višak sadržaja je dostupan skorlovanjem
  • “auto” – sadržaj je vidljiv u okviru kontejnera, browser odlučuje koji scroll bar je aktivn a višak sadržaja je dostupan skorlovanjem
Primer

See the Pen Overflov by Web programiranje (@chos) on CodePen.

NAPOMENA:
Kada se koristi podrazumevano svojstvo “visible” tekst van kontejnera neće gurati drugi sadržaj, nego će pozicionirati preko njega.

Svojstvo “white-space”

Svojstvo “white-space” se koristi da definiše kako će biti prikazana dodatna prazna mesta i dodatni prazni redovi kao i ponašanje teksta kada dodje do ivice ograničenog kontejnera. Svojstvo može imati sledeće vredosti:

Vrednost “normal”

Kada je dodeljena ova vrednost svojstvu tekst će se standardno prelomiti u naredni red, kada dodje do ivice kontejnera. Neće se prikazivati prazne linije iz koda i dodatna prazna mesta tzv. beline.

Vrednost “nowrap”

Kada je dodeljena ova vrednost svojstvu tekst se neće prelomiti kada dodje do ivice kontejnera, već će ostati u istom redu.

Vrednost “pre”

Kada je dodeljena ova vrednost svojstvu tekst će ostati isti kao što je napisan u kodu, sve zajedno sa praznim mestima. Ukoliko je tekst koji je napisan u kodu duži od kontejnera on se neće prelomiti kada dodje do ivice kontejnera, već će ostati u istom redu, a biće prelomljen samo tamo gde je prelomljen u kodu.

Vrednost “pre-wrap”

Kada je dodeljena ova vrednost svojstvu tekst će ostati isti kao što je napisan u kodu, sve zajedno sa praznim mestima, ali ukoliko je tekst koji je napisan u kodu duži od kontejnera on će se prelomiti kada dodje do ivice kontejnera.

Vrednost “pre-line”

Ovo svojstvo prelama tekst koji je duži od kontejnera, ukida višak praznih mesta (eng. white space), ali zadržava prazne cele linije iz koda, kao i mesta u kodu gde je u kodu prelomljen tekst.

Primer

See the Pen white-space by Web programiranje (@chos) on CodePen.


Svojstvo “text-overflow”

Svojstvo “text-overflow” reguliše ponašanje teksta kada je odsečen jer nije mogao da “stane” u kontejner. Iz ovoga se zaključjuje da se ovo svojstvo primenjuje tek kada je aktivno svojstvo overflow: hidden;

Treba napomenuti da ovo svojstvo važi samo za tekst u jednom redu, stoga je potrebno sprečiti da se tekst iz jednog reda prelomi. Da bi ovo CSS svojstvo bilo aktivno, neophodno je da koristimo i svojstvo white-space: nowrap;

Svojstvo “text-overflow” može da ima sledeće vrednosti: clip ili ellipsis. Vrednost “clip” je podrazumevano “obično” ponašanje kada se tekst preseče tačno na ivici kontejnera. Svojstvo “text-overflow” je interesantno tek kada ima vrednost “ellipsis” jer tada se na kraju gde je presečen tekst pojavljuju tri tačke.

See the Pen Text ellipsis by Web programiranje (@chos) on CodePen.

Prikazivanje skraćene verzije višerednog teksta

Pošto svojstvo “text-overflow” važi samo za jedan red teksta sa njim nećemo moći da uradimo posao, nažalost ne postoji svojstvo koje bi moglo da izvši zadani zadatak a da je podržano u svim browser-ima. Postoje rešenja i za ovaj problem ali su različita za svaki browser ponaosob, pa je neophodno koristiti sva rešenja odjednom da bi pokrili sve browser-e.

a) -webkit-line-clamp

Svojstovo -webkit-line-clamp podržava samo Chrome i Safari. Vrednost ovoga svojstva definiše broj redova koji treba da se prikaže. Neophodno je da se koristi još uz dva dodatna svojstva: display: -webkit-box; i -webkit-box-orient: vertical;.

b) Fade Out Way

Za ovaj mehanizam je potrebno da znamo tačnu visinu jednog reda. Mehanizam se zasniva na tome da delimično prekrijemo poslednju liniju pseudo-elementom, koju ima definisan gradijent sa providnim bojom.

Primer

See the Pen Skraćenje višerednog teksta by Web programiranje (@chos) on CodePen.

Kod za primenu:

See the Pen Skracene višerednog teksta (za sve browsere zajedno) by Web programiranje (@chos) on CodePen.


“overflow-wrap” & “word-break”

Standardno, prelom teksta se javlja samo u određenim prostorima (kada postoji razmak ili crtica), medjutim nekada je potrebno da se prelomi i kada ne postoji razmak ili crtica. Svojstva “overflow-wrap” i “word-break” se minimalno razlikuju i mogu da prelomme tekst kada prevelika reč ne može da stane u kontejner. Najčešća primena svojstva je za prelom dugačkih url adresa. Treba naglasiti da svojstvo “overflow-wrap” ima alias svojstvo pod imenom “word-wrap”.

See the Pen Word-wrap by Web programiranje (@chos) on CodePen.

Razlika izmedju “overflow-wrap” i “word-break” je:

Osnovna razlika je u tome što kada “overflow-wrap” naleti na dugačku reč prvo pokuša da reši problem prebacivanjem cele reči u sledeći red, pa tek ako ne uspe tako da reši problem onda je “lomi”.

See the Pen JravQX by Web programiranje (@chos) on CodePen.

Svojstvo “hyphens”

Svojstvo “hyphens” može da prelomi reč gde god mi želimo. Kada je definisana vrednost svojstva hyphens: manual;, onda se reč prelama gde god stavimo ključnu reč: ­. Takodje na definisanom mestu preloma dodaje “povlaku”.

See the Pen Hypthen by Web programiranje (@chos) on CodePen.


Svojstvo “text-align”

Ovo svojstvo se koristi za pozicioniranje sadržaja block elementa. Moguće vrednosti ovoga svojstva su:

  • left – Podrazumevana vrednost pozicionira sadržaj uz levu ivicu.
  • right – Pozicionira sadržaj bloka uz desno ivicu.
  • center – Centrira sadržaj.
  • justify – Širi i rasporedjuje sadržaj od ivice do ivice.
  • inherit – Nasledjuje od roditeljskog elementa pozicioniranje.

Raspored teksta u više kolona

column-count

Osobina “column-count” pravi zahtevani broj kolona, medjutim ova osobina nije responsiv jer i kod malih ekrana prikazuje isti zahtevani broj kolona.

column-width

Osobina “column-width” prikazuje kolone definisane širine ali i ova osobina nije responsiv jer na velikim rezolucijama širina kolona ostaje ista.

columns

Osobina “columns” koja kroz dva argumenta objedinjuje obe prethodne osobine. Prvi argument definiše najmanju širinu kolone, dok drugi argument definiše maksimalni broj kolona.

columns-gap

Ovo svojstvo definiše rastojanje izmedju kolona. Ukoliko ima vrednost “normal” onda je rastojanje izmedju kolona 1em. Takodje postoji mogućnost da se ovome svojstvu dodeli bilo koja durga vrednost.

Primer

See the Pen Columns1 by Web programiranje (@chos) on CodePen.

Napomena:
Obavezno je korišćenje prefiksa zbog neusaglašenosti browsera.


Pozicioniranja sadržaja sa CSS-om (osnove)

Uvod

Pozicioniranje sadržaja sa CSS-om je moguće uraditi na više načina, koje će svojstvo biti korišćeno zavisi od specifičnosti layout-a, i od zahteva za podržanost sintakse u browser-ima. Osnovna tehnika za pozicioniranje sadržaja je svojstvo position. Ukoliko je vrednost svojstva: relative, absolute ili fixed, dostupna su i dodatna svojstva: top, right, bottom, left.
Kao jedno od rešenja za pozicioniranje sadržaja se može koristiti osobina float, ali je trend je da se ova osobina što manje koristi (tj. da se koristi samo za “obavijanje teksta oko bloka”).
Tehnika koja je preporučena i podržana od većine novijih browsera, podrazumeva korišćenje CSS svojstva “display:flex”. Smatra se da svojstvo “display:grid” ima odličan potencijal, ali će morati da se sačeka korišćenje u praksi dok je ne usvoje svi browser-i.

Continue reading…


Box model

Pojam i definicija

box model

Svi HTML elementi su kutije (eng. box), uključujući i span tag. Kutija kao pojam u front-end-u se razlikuje od pojama kutije iz života.
Dimezija kutije po W3C se dobija sabiranjem
dimenzija sledećih elemenata:

  • sadržaj box-a (ima svoju visinu i širinu)
  • padding
  • border

Margina ne ulazi u veličinu box-a, ona razdvaja boxove. Ukoliko se explicitno ne definiše širina box-a, onda box zauzima 100% roditeljskog elementa.

Za igranje sa box modelom i dobijanje krajnje veličine možete posetiti stranicu.

Continue reading…


CSS selektori

Tipovi selektora

CSS selektori su deo CSS synatax-e, koji odredjuju HTML elemente na koje će se primeniti CSS pravila.

Univerzalni selektor

Univerzalni selektor se obeležava * (zvezdom), i njegova osobina je da selektuje sve elemente. Ovaj selektor se obično koristi kada se radi resetovanje stilova.

Primer

Definisani sa tipom HTML elementa

Ovo su najjednostavniji selektori i definišu se nazivom HTML elementa koji targetiraju.

Primer

ili

Definisani sa klasom elementa

Ovi selektori “gadjaju” HTML elemente koji sadrže odredjenu klasu.

Primer

Selektor koji targetira klasu se obeležava sa . (tačkom) ispred imena klase.

Definisani sa ID-om elementa

Ovi selektori “gadjaju” HTML elemente koji sadrže odredjeni ID. Obeležavaju se # znakom ispred naziva ID.

Primer

Selektor koji targetira element sa odredjenim ID-om se obeležava sa znakom # ispred ID-a.


Continue reading…