Načrtovanje in razvoj spletnih aplikacij

Pisava v CSS

Lastnosti pisave v CSS določajo družino pisave, velikost, krepkost, slog, posebne tipografske različice in višino vrstice. Z njimi močno vplivamo na berljivost, videz in preglednost besedila na spletni strani.

Pomni: Pri nastavitvah pisave ni pomemben samo videz, ampak tudi berljivost. Zato moramo pri izbiri pisave, velikosti in višine vrstice paziti, da je besedilo jasno in pregledno.

Sodobni CSS prinaša nekaj pomembnih novosti pri delu s pisavami. Med generične družine danes spadajo tudi system-ui, ui-serif, ui-sans-serif, ui-monospace, ui-rounded in math. Pri uteži pisave lahko uporabimo številčne vrednosti od 1 do 1000, pri lastnih pisavah pa se danes pogosto uporablja format woff2. Pomembne so tudi spremenljive pisave, ki omogočajo natančnejši nadzor nad debelino, širino in drugimi lastnostmi.

font-family

Lastnost font-family določa družino pisave. V CSS navadno naštejemo več možnih pisav po prednostnem vrstnem redu. Če prva ni na voljo, brskalnik poskusi z naslednjo. Na koncu se običajno navede še generična družina pisav.

Najpogosteje uporabljene klasične generične družine pisav so:

  • serif
  • sans-serif
  • monospace
  • cursive
  • fantasy

Sodobni CSS pozna tudi dodatne generične družine, kot so system-ui, ui-serif, ui-sans-serif, ui-monospace, ui-rounded in math.

Generična pisava Primer pisave Opis
serif Times New Roman
Georgia
Serifne pisave imajo na koncih potez majhne zaključke.
sans-serif Arial
Verdana
Pisave brez zaključkov, pogosto zelo primerne za prikaz na zaslonu.
monospace Courier New
Lucida Console
Vsi znaki imajo enako širino.
cursive Cursive Posnemajo rokopis.
fantasy Fantasy Bolj okrasne pisave, primerne predvsem za posebne poudarke.
system-ui system-ui Uporabi privzeto sistemsko uporabniško pisavo operacijskega sistema.
ui-serif ui-serif Serifna pisava, prilagojena uporabniškemu vmesniku.
ui-sans-serif ui-sans-serif Sans-serif pisava, prilagojena uporabniškemu vmesniku.
ui-monospace ui-monospace Monospace pisava, prilagojena uporabniškemu vmesniku.
ui-rounded ui-rounded Pisava z zaobljenimi potezami, namenjena uporabniškemu vmesniku.
math math Pisava, primerna za prikaz matematičnih simbolov in izrazov.
Razlika med pisavama Sans-serif in Serif

Razlika med pisavama Sans-serif in Serif

Pomni: Pri lastnosti font-family je priporočljivo, da na koncu vedno navedemo tudi generično družino pisav. Tako ima brskalnik ustrezno rezervno možnost, če prvih pisav ni na voljo.

Za prikaz besedila na zaslonu se pogosto uporabljajo pisave iz družine sans-serif, ker so običajno zelo dobro berljive. Za programsko kodo se pogosto uporabljajo pisave iz družine monospace.

Pisava Monospace ima vse znake enake širine

Pisava monospace ima vse znake enake širine

Pisavo določimo tako, da v CSS nastavimo lastnost font-family za posamezni element:

body {
   font-family: Verdana, Arial, Helvetica, sans-serif;
}

Pri tem smo določili, da brskalnik najprej poskusi uporabiti Verdana. Če ta ni na voljo, poskusi z Arial, nato s Helvetica, na koncu pa s poljubno pisavo iz družine sans-serif.

Pri pisavah, katerih ime je sestavljeno iz več besed, uporabimo narekovaje:

body {
   font-family: "Times New Roman", Times, serif;
}

Katero pisavo uporabiti?

  • za prikaz na zaslonu so pogosto zelo primerne pisave iz družine sans-serif
  • družina serif se pogosto uporablja v tiskovinah in daljših besedilih
  • monospace pisave se pogosto uporabljajo za prikaz izvorne kode
  • system-ui je dobra izbira, kadar želimo naraven videz uporabniškega vmesnika na posameznem sistemu
  • pisave iz družin fantasy in cursive uporabljamo previdno, večinoma za posebne poudarke

font-size

Lastnost font-size določa velikost pisave. Velikost lahko določimo s ključnimi besedami, absolutnimi vrednostmi ali relativnimi enotami.

Relativne enote, kot so em, rem in %, so pogosto primernejše za odzivno in dostopnejšo postavitev. V sodobni praksi je rem zelo pogosta izbira, ker se navezuje na osnovno velikost korenskega elementa.

Pozor: Premajhna velikost pisave hitro zmanjša berljivost besedila. Pri običajnem besedilu je priporočljivo, da velikost ostane dovolj velika za udobno branje.

Vrednost Opis
medium Srednja velikost pisave, to je privzeta vrednost
xx-small Zelo zelo majhna pisava
x-small Zelo majhna pisava
small Majhna pisava
large Velika pisava
x-large Zelo velika pisava
xx-large Zelo zelo velika pisava
smaller Manjša glede na velikost nadrejenega elementa
larger Večja glede na velikost nadrejenega elementa
length Velikost pisave, na primer v px, pt, em, rem
% Velikost pisave v % glede na velikost nadrejenega elementa
initial Ta vrednost naj bo privzeta
inherit Vrednost podeduje od nadrejenega elementa

Primer absolutnega določanja velikosti pisave:

<h1>Glavni naslov</h1>
<h2>Podnaslov</h2>
<p class="prvi">To je prvi odstavek.</p>
<p class="drugi">To je drugi odstavek.</p>
<p class="tretji">To je tretji odstavek.</p>
<p class="cetrti">To je četrti odstavek.</p>
h1 { font-size: 1.5cm; }
h2 { font-size: 12mm; }
.prvi { font-size: 9mm; }
.drugi { font-size: 7mm; }
.tretji { font-size: 0.2in; }
.cetrti { font-size: 0.1in; }

Glavni naslov

Podnaslov

To je prvi odstavek.

To je drugi odstavek.

To je tretji odstavek.

To je četrti odstavek.

Primer relativnega določanja velikosti pisave:

h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
.prvi { font-size: 1rem; }
.drugi { font-size: 0.8rem; }
.tretji { font-size: 1em; }
.cetrti { font-size: 80%; }

Glavni naslov

Podnaslov

To je prvi odstavek.

To je drugi odstavek.

To je tretji odstavek.

To je četrti odstavek.

h1 { font-size: 200%; }
h2 { font-size: 150%; }
.prvi { font-size: 100%; }
.drugi { font-size: 80%; }
.tretji { font-size: 50%; }
.cetrti { font-size: 30%; }

Glavni naslov

Podnaslov

To je prvi odstavek.

To je drugi odstavek.

To je tretji odstavek.

To je četrti odstavek.

font-weight

Lastnost font-weight določa krepkost pisave.

Najpogosteje uporabljamo vrednosti normal in bold. Pri sodobnih pisavah, predvsem pri spremenljivih pisavah, pa lahko uporabimo tudi številčne vrednosti od 1 do 1000. Pri ne-spremenljivih pisavah brskalnik poišče najbližjo razpoložljivo utež.

Vrednost Pomen
normal običajna krepkost
bold krepko
bolder bolj krepko glede na nadrejeni element
lighter manj krepko glede na nadrejeni element
1–1000 številčne stopnje krepkosti; 400 običajno ustreza normal, 700 pa bold
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa

Pomni: Pri številčnih vrednostih lastnosti font-weight običajno vrednost 400 ustreza običajni pisavi, vrednost 700 pa krepki pisavi.

Primer:

<p>
  <span style="font-weight:normal">običajno, </span>
  <span style="font-weight:bold">krepko, </span>
  <span style="font-weight:lighter">manj krepko, </span>
  <span style="font-weight:bolder">bolj krepko, </span><br />
  <span style="font-weight:100">100, </span>
  <span style="font-weight:200">200, </span>
  <span style="font-weight:300">300, </span>
  <span style="font-weight:400">400, </span>
  <span style="font-weight:500">500, </span>
  <span style="font-weight:600">600, </span>
  <span style="font-weight:700">700, </span>
  <span style="font-weight:800">800, </span>
  <span style="font-weight:900">900, </span>
</p>

običajno, krepko, manj krepko, bolj krepko,
100, 200, 300, 400, 500, 600, 700, 800, 900,

font-style

Lastnost font-style določa slog pisave.

Vrednost Pomen
normal običajno besedilo
italic ležeče besedilo
oblique poševno besedilo
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa

Primer:

<p class="normal">To je običajno besedilo oblike "normal".</p>
<p class="italic">To je ležeče besedilo oblike "italic".</p>
<p class="oblique">To je poševno besedilo oblike "oblique".</p>
.normal { font-style: normal; }
.italic { font-style: italic; }
.oblique { font-style: oblique; }

To je običajno besedilo oblike "normal".

To je ležeče besedilo oblike "italic".

To je poševno besedilo oblike "oblique".

Pri nekaterih pisavah oblique in italic nista povsem enaka: italic lahko uporabi posebej oblikovane ležeče znake, oblique pa navadno poševno različico osnovne oblike.

Pozor: Vse pisave ne vsebujejo posebej oblikovane ležeče različice. V takem primeru lahko brskalnik poševni videz samo približa.

font-variant

Lastnost font-variant določa posebne tipografske različice pisave. V preprostejših primerih se pogosto uporablja vrednost small-caps, sodobni CSS pa pozna tudi podrobnejše lastnosti, kot so font-variant-caps, font-variant-ligatures in font-variant-numeric.

Vrednost Pomen
normal običajno besedilo
small-caps male velike črke
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa
<p class="normal">To so običajne črke "normal".</p>
<p class="small-caps">To so male velike črke "small-caps".</p>
<p class="normal">TO SO OBIČAJNE VELIKE ČRKE "normal".</p>
.normal { font-variant: normal; }
.small-caps { font-variant: small-caps; }

To so običajne črke "normal".

To so male velike črke "small-caps".

TO SO OBIČAJNE VELIKE ČRKE "normal".

Če pisava podpira napredne OpenType možnosti, lahko z dodatnimi lastnostmi nadzorujemo tudi ligature, številke, ulomke in druge tipografske podrobnosti.

line-height

Lastnost line-height določa višino vrstice besedila.

Brez-enotna vrednost je pogosto najbolj priporočljiva, ker se deduje bolj predvidljivo kot vrednosti z enotami ali odstotki. Pri običajnem besedilu je za dobro berljivost pogosto primerna vrednost okoli 1.4 do 1.6, odvisno od pisave in postavitve.

Pomni: Pri običajnem besedilu je primerna višina vrstice pomembna za dobro berljivost. Premajhna višina vrstice lahko naredi besedilo stisnjeno in manj pregledno.

Vrednost Pomen
normal običajna višina vrstice
število brez-enotna vrednost, ki določa večkratnik velikosti pisave
dolžina fiksna višina vrstice, na primer v px, em ali pt
% višina vrstice v % glede na velikost pisave
initial ta vrednost naj bo privzeta
inherit vrednost podeduje od nadrejenega elementa

Primer določitve višine vrstice:

<p class="normal">Ukaz <em>line-height</em> določa višino vrstice besedila.<br />Ta odstavek prikazuje višino vrstice,<br />ko ima lastnost <em>line-height</em> vrednost <strong><em>normal</em></strong>.</p>
<p class="visina_2">Ukaz <em>line-height</em> določa višino vrstice besedila.<br />Ta odstavek prikazuje višino vrstice,<br />ko ima lastnost <em>line-height</em> vrednost <strong><em>2</em></strong>.</p>
<p class="visina_50px">Ukaz <em>line-height</em> določa višino vrstice besedila.<br />Ta odstavek prikazuje višino vrstice,<br />ko ima lastnost <em>line-height</em> vrednost <strong><em>50px</em></strong>.</p>
<p class="visina_130">Ukaz <em>line-height</em> določa višino vrstice besedila.<br />Ta odstavek prikazuje višino vrstice,<br />ko ima lastnost <em>line-height</em> vrednost <strong><em>130%</em></strong>.</p>
<p class="visina_15em">Ukaz <em>line-height</em> določa višino vrstice besedila.<br />Ta odstavek prikazuje višino vrstice,<br />ko ima lastnost <em>line-height</em> vrednost <strong><em>1.5em</em></strong>.</p>
.normal { line-height: normal; }
.visina_2 { line-height: 2; }
.visina_50px { line-height: 50px; }
.visina_130 { line-height: 130%; }
.visina_15em { line-height: 1.5em; }

Ukaz line-height določa višino vrstice besedila.
Ta odstavek prikazuje višino vrstice,
ko ima lastnost line-height vrednost normal.


Ukaz line-height določa višino vrstice besedila.
Ta odstavek prikazuje višino vrstice,
ko ima lastnost line-height vrednost 2.


Ukaz line-height določa višino vrstice besedila.
Ta odstavek prikazuje višino vrstice,
ko ima lastnost line-height vrednost 50px.


Ukaz line-height določa višino vrstice besedila.
Ta odstavek prikazuje višino vrstice,
ko ima lastnost line-height vrednost 130%.


Ukaz line-height določa višino vrstice besedila.
Ta odstavek prikazuje višino vrstice,
ko ima lastnost line-height vrednost 1.5em.

@font-face

Pravilo @font-face omogoča uporabo lastnih pisav. Pisavo lahko naložimo z oddaljenega strežnika ali pa uporabimo lokalno nameščeno pisavo. V sodobni praksi se pogosto uporablja format woff2, pogosto pa dodamo tudi font-display za nadzor prikaza med nalaganjem ter unicode-range za učinkovitejšo dostavo podnaborov znakov.

@font-face {
   font-family: "Delicious";
   src:
      local("Delicious"),
      url("fonts/Delicious.woff2") format("woff2");
   font-display: swap;
}
p { 
   font-family: "Delicious", Helvetica, Arial, sans-serif;
}

Če uporabljamo več različic iste pisave, navadno pripravimo več pravil @font-face, na primer za običajno, ležečo in krepko različico.

Pozor: Pri lastnih pisavah moramo paziti, da ima pravilo @font-face pravilno nastavljen vir pisave. Brez veljavnega zapisa src pravilo ni uporabno.


font

Lastnost font uporabljamo kot bližnjico za nastavitev več lastnosti pisave hkrati.

Za vrednost lastnosti font naštejemo vrednosti posameznih lastnosti v predpisanem vrstnem redu. Najprej lahko navedemo vrednosti za font-style, font-variant, font-weight in font-stretch. Nato moramo navesti vrednost font-size, po potrebi tudi line-height (ločimo ju z znakom /), na koncu pa še font-family.

p {
   font: italic small-caps 700 16px/1.5 Arial, sans-serif;
}

Pri bližnjici font je pomembno, da sta font-size in font-family vedno navedena, sicer zapis ni veljaven.

Pomni: Bližnjica font omogoča krajši zapis, vendar moramo pri njej paziti na pravilen vrstni red vrednosti.