Načrtovanje in razvoj spletnih aplikacij

Oblikovanje seznamov s CSS

V HTML poznamo neurejene in urejene sezname. Neurejeni seznami uporabljajo oznake, kot so krogec, prazen krogec ali kvadrat, urejeni seznami pa uporabljajo številčenje oziroma drug zaporedni način označevanja.

Z oblikovnimi slogi lahko seznamom določimo različne oznake, uporabimo slike ali pa nastavimo položaj oznak. Sodobni CSS omogoča tudi bolj natančno oblikovanje oznak z uporabo psevdoelementa ::marker.

Pomni: Pri seznamih je pomembno, da so oznake pregledne in smiselne. Oznaka naj pomaga pri razumevanju seznama, ne pa da ga naredi manj berljivega.

Sodobni CSS seznamov ne obravnava le kot elementov ul in ol. Oznaka seznama je danes razumljena kot ::marker, ki ga je v nekaterih primerih mogoče dodatno oblikovati z lastnostmi, kot so barva, pisava ali velikost.

Osnovna pravila

  • Neurejen seznam uporablja oznake, kot so krogec, prazen krogec ali kvadrat.
  • Urejen seznam uporablja številke, črke ali druge zaporedne oznake.
  • Oznake lahko določimo z lastnostjo list-style-type.
  • Namesto običajne oznake lahko uporabimo tudi sliko z lastnostjo list-style-image.
  • Položaj oznake glede na vsebino določimo z lastnostjo list-style-position.

Pozor: Če je oznaka preveč nenavadna ali preveč izrazita, lahko seznam postane manj pregleden. Pri oblikovanju seznamov je zato smiselna zmernost.

list-style-type

Z lastnostjo list-style-type določimo, kakšne oznake želimo imeti v seznamih. Uporabimo lahko klasične vrednosti, kot so disc, circle, square ali decimal, pa tudi druge načine številčenja in označevanja. Ta lastnost določa oznako elementa seznama oziroma marker. Oznaka praviloma prevzame barvo elementa, torej vrednost currentColor.

Vrednost Pomen
none brez oznak
disc poln krogec
circle prazen krogec
square poln kvadrat
decimal 1, 2, 3, ...
decimal-leading-zero 01, 02, 03, ...
lower-roman i, ii, iii, iv, v, ...
upper-roman I, II, III, IV, V, ...
lower-alpha a, b, c, ...
upper-alpha A, B, C, ...
lower-greek α, β, γ, ...
disclosure-open oznaka odprtega razdelka
disclosure-closed oznaka zaprtega razdelka
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa
<p>Seznam z lastnostjo <em>list-style-type: <strong>none</strong></em></p>
<ul class="none">
   <li>Jabolko</li>
   <li>Hruška</li>
   <li>Sliva</li>
</ul>

<p>Seznam z lastnostjo <em>list-style-type: <strong>disc</strong></em></p>
<ul class="disc">
   <li>Jabolko</li>
   <li>Hruška</li>
   <li>Sliva</li>
</ul>

<p>Seznam z lastnostjo <em>list-style-type: <strong>upper-roman</strong></em></p>
<ol class="roman">
   <li>Jabolko</li>
   <li>Hruška</li>
   <li>Sliva</li>
</ol>
.none { list-style-type: none; }
.disc { list-style-type: disc; }
.roman { list-style-type: upper-roman; }

Seznam z lastnostjo list-style-type: none

  • Jabolko
  • Hruška
  • Sliva

Seznam z lastnostjo list-style-type: disc

  • Jabolko
  • Hruška
  • Sliva

Seznam z lastnostjo list-style-type: circle

  • Jabolko
  • Hruška
  • Sliva

Seznam z lastnostjo list-style-type: square

  • Jabolko
  • Hruška
  • Sliva

Seznam z lastnostjo list-style-type: decimal

  1. Jabolko
  2. Hruška
  3. Sliva

Seznam z lastnostjo list-style-type: upper-roman

  1. Jabolko
  2. Hruška
  3. Sliva

Seznam z lastnostjo list-style-type: lower-alpha

  1. Jabolko
  2. Hruška
  3. Sliva

list-style-image

Z lastnostjo list-style-image določimo, katero sliko želimo imeti kot oznako v seznamih. Ta lastnost nastavi sliko kot marker elementa seznama. Če slike ni mogoče prikazati, se kot nadomestna možnost uporabi vrednost lastnosti list-style-type. Pogosto je priročneje uporabiti bližnjico list-style.

Vrednost Pomen
none brez slike
url(...) pot do slike
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa
<p>Seznam z lastnostjo <em>list-style-image: url('seznam.png')</em></p>
<ul class="image">
   <li>Jabolko</li>
   <li>Hruška</li>
   <li>Sliva</li>
</ul>
.image { 
   list-style-type: disc;
   list-style-image: url("seznam.png");
}

Seznam z lastnostjo list-style-image: url('seznam.png')

  • Jabolko
  • Hruška
  • Sliva

Pozor: Slika kot oznaka seznama mora biti dovolj majhna in pregledna. Če je prevelika ali preveč podrobna, lahko seznam izgubi jasno strukturo.

list-style-position

Z lastnostjo list-style-position določimo položaj oznake pri seznamu. Lastnost določa položaj ::marker glede na element seznama. Vrednost outside pomeni, da je oznaka zunaj glavnega vsebinskega bloka, vrednost inside pa, da je oznaka prvi del vsebine elementa. Lastnost se uporablja za elemente s prikazom list-item in se pogosto nastavi na nadrejenem seznamu, da velja za vse postavke.

Vrednost Pomen
inside oznaka je del vsebine elementa in se prikaže znotraj bloka
outside oznaka je zunaj vsebinskega bloka, privzeta vrednost
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa
<p>Seznam z lastnostjo: <em>list-style-position: <strong>outside</strong></em></p>
<ul class="outside">
   <li class="bgd">Jabolko</li>   
   <li class="bgl">Hruška</li>   
   <li class="bgd">Sliva</li>
</ul>

<p>Seznam z lastnostjo: <em>list-style-position: <strong>inside</strong></em></p>
<ul class="inside">
   <li class="bgd">Jabolko</li>   
   <li class="bgl">Hruška</li>
   <li class="bgd">Sliva</li>
</ul>
.outside { list-style-position: outside; width: 30%; }
.inside { list-style-position: inside; width: 30%; }
.bgd { background-color: #F5DBA9; }
.bgl { background-color: #F9EBCC; }

Seznam z lastnostjo: list-style-position: outside

  • Jabolko
  • Hruška
  • Sliva

Seznam z lastnostjo: list-style-position: inside

  • Jabolko
  • Hruška
  • Sliva

::marker

Psevdoelement ::marker omogoča neposredno oblikovanje oznake seznama, na primer njene barve ali velikosti. Izbere označevalno polje elementa seznama, ki običajno vsebuje krogec, številko ali drugo oznako. Deluje pri elementih, ki imajo prikaz list-item, na primer pri li in summary. Ta zmožnost ni povsem enako podprta v vseh najbolj razširjenih brskalnikih.

ul.marker li::marker {
   color: #d35400;
   font-size: 1.2em;
}
  • Jabolko
  • Hruška
  • Sliva

list-style

Lastnost list-style uporabljamo kot bližnjico za nastavitev več lastnosti oznak pri seznamih. Je bližnjica za list-style-type, list-style-image in list-style-position. Vrednosti lahko zapišemo v enem, dveh ali treh delih in to v poljubnem vrstnem redu. Če sta določena tudi list-style-type in list-style-image, se list-style-type uporabi kot rezervna možnost, če slike ni mogoče prikazati. Privzete vrednosti so disc, outside in none.

ul {
   list-style: square inside;
}

ol {
   list-style: upper-roman outside;
}

Priporočila

  • Pri neurejenih seznamih uporabi preproste in jasno prepoznavne oznake.
  • Pri urejenih seznamih izberi način številčenja, ki ustreza namenu seznama.
  • Če uporabljaš sliko kot oznako, določi tudi rezervno vrednost z list-style-type.
  • Psevdoelement ::marker uporabi takrat, ko želiš oblikovati oznako brez spreminjanja same vsebine postavk.

Pogoste napake

  • Oznake seznama so izbrane tako, da zmanjšajo preglednost vsebine.
  • Uporaba slike kot oznake brez rezervne vrednosti za primer, ko slike ni mogoče prikazati.
  • Napačno razumevanje razlike med vrednostma inside in outside.
  • Pri ::marker se pričakujejo slogovne možnosti, ki niso enako podprte v vseh brskalnikih.