CSS -objektiperintä? (fontit)

CSS_olioperintä_onko

Tunnetaanko CSS -määritteissä objektiperintää objektiorientoituneiden ohjelmointikielien tapaan?

Ongelmana siis se, että vaikka jo BODY -elementille määritellään CSS:n avulla fontti, niin tuon BODY:n sisällä kun on vaikkapa DIV tai INPUT (tai SPAN) -elementti, niin noilla elementeillä on oletuksena ERI fontti kuin BODY -elementillä!

JOS käyttää em -mittayksikköä, tämä on luonnollisesti katastrofi !

Eli jos käyttää em -mittayksikköä width ja height -määreissä, silloin täytyy pakottaa jokaisen elementin fontti keskenään samaksi!

(tai sitten: jos jonkun elementin fontti poikkeaa muiden elementtien fontista, tällaisen elementin width/height -arvo kannattaa määritellä pikseleinä EIKÄ em -yksikköinä!)

Tällöin olisi kiva, jos voisi määritellä CSS:llä jonkunlaisen "basesettings" -elementin, jossa asetetaan fontti, ja periyttää kaikki muut CSS -määritteet tuosta "basesettings" -elementistä.

Mutta tukeeko CSS tällaista sellaisenaan, vai onko ainoa vaihtoehto joko

a) unohtaa koko juttu ja sisällyttää sama fonttimääritys jokaiseen CSS -määreeseen

tai

b) tehdä itse pieni apuohjelma, ja kieltäytyä koskaan kirjoittamasta puhdasta CSS:ää, vaan sensijaan:

Itse kirjoittaa sivu.CSS -tiedoston sijasta esim. sivu.CSB -tiedoston, johoon sitten jotain tällaista:

input {
font-weight: %FONTWEIGHT%;
font-family: %FONTFAMILY%;
font-size: %FONTSIZE%;
}


ja sitten apuohjelmassa asettaa fontin esim:

FONTWEIGHT=400
FONTFAMILY="Arial", Helvetica, arial
FONTSIZE=normal

Ideana se, että tälläin tuo apuohjelma (joka lukee .CSB -tiedoston, ja tuottaa CSS -tiedoston) lisää JOKAISEEN CSS -määritykseen rivit:

font-weight: 400;
font-family: "Arial", Helvetica, arial;
font-size: normal;

Eli onko CSS:ssä olioiden perintää, vai onko ainoa vaihtoehto joko

1) unohtaa koko juttu (ja kärsiä siitä, että jos jonkun fontin vaihtaa, niin joko pitää manuaalisesti vaihtaa kaikki muutkin fontit samaksi tai sitten koko em -mittayksiköihin perustuvat mitat menevät sekaisin).

2) tehdä itse em. kaltainen apuohjelma ja kirjoittaa itse pelkkää CSB:tä ja antaa apuohjelman tuottaa CSS

?

4

269

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • linuxuser
    • hmhmhmhm

      Kyllä se fontti pitäisi pysyä samana jos se on bodylle määritelty, siis näin:

      body
      {
      font-family: serif;
      }

      Kyllä CSS:ssä perintää on monenlaista, ja montaa tyyliä voi helposti yhdistellä esim. class attribuutissa kirjoittamalla tärkeysjärjestykseen tyylit välilyönnillä eroteltuna.

    • Koodie

      Perintä onnistuu avainsanalla ”inherit”:

      div, span, input {
      font-family: inherit;
      }

      Jotakin on kuitenkin vialla, jos div- ja span-elementit eivät peri bodyn fonttia. Se siis pitää korjata eikä käyttää perintää turhaa.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mistä puhuitte viimeksi kun näitte

      Kerro yksi aiheista
      Ikävä
      101
      7563
    2. 106
      5615
    3. Se on hyvästi

      Toivottavasti ei tavata.
      Ikävä
      83
      5057
    4. Olenko saanut sinut koukkuun?

      Hyvä. Rakastan sua.
      Ikävä
      139
      4456
    5. Alavuden sairaala

      Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan
      Ähtäri
      11
      3160
    6. Sisäsiittosuus

      Tämän kevään ylioppilaista 90% oli sama sukunimi?
      Suomussalmi
      50
      2855
    7. Miksi sä valitsit

      Juuri minut sieltä?
      Ikävä
      52
      2769
    8. Kerro nyt rehellisesti fiilikset?

      Rehellinem fiilis
      Suhteet
      61
      2387
    9. Törkeää toimintaa

      Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818
      Ylivieska
      10
      2374
    10. Hei........

      Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.
      Ikävä
      56
      1976
    Aihe