Uždaryti
Jei aktyviai domiesi kompiuterinės grafikos naujovėmis, web dizainu, svetainių kūrimu, užsiprenumeruok E-grafika.lt turinį per RSS!
Nori pareikšti savo nuomonę? Peržiūrėti video pamokas? Gauti tik nariams prieinamų resursų? Sužinoti apie naujienas pirmasis? Tada registruokis!
Jeigu jau esi užsiregistavęs, prisijunk ir diskutuok forumuose, komentuok naujienas, straipsnius, video pamokas, bendrauk su kitais bendruomenės nariais!

Straipsnis

Hierarchija ir paveldimumas CSS kalboje

Hierarchija ir paveldimumas CSS kalboje

Nepaprastai svarbus dalykas CSS kalboje yra paveldimumas (angl. „inheritance“). Dauguma pradedančiųjų web dizainerių (CSS koduotojų), kurie bando įvaldyti CSS, šios sąvokos nesupranta ir nežino, kaip tai veikia.

Šiame straipsnyje išsiaiškinsime paveldimumo principą, elementų hierarchiją ir tarpusavio sąveiką ir paveldimumo reikšmę CSS kalboje.


Paveldimumo principas

Paprastai sakant, paveldimumą CSS kalboje galima lyginti su realiu pasaliu. Pavyzdžiui, tėvai susilaukia vaiko. Jis paveldėjo kokius nors tėvų bruožius (tėvo plaukus, motinos akis). Įsivaizduokime, kad vaikas užaugo ir sukūrė savo šeimą, o galiausiai gimė vaikas. Šios šeimos vaikas galbūt paveldėjo tėvo nosį, motinos plaukus ir senelio akių spalvą. Panašiu principu paveldimumas veikia ir CSS kalboje.

Elementų hierarchija ir tarpusavio sąveika

Išsiaiškinus paveldimumo sąvoką, būtina žinoti, kaip paveldimumas veikia. Iš tikrųjų paveldimumo hierarchijos nurodyti CSS aprašuose nereikia, tai prilauso nuo dokumento struktūros.

Turėtumėte puikiai žinoti, kad HTML dokumentas prasideda <html>, po to seka <head>, tada <title> ir t.t., o kiekviena atidaryta žymė turi būti uždaryta atitinkama tvarka ( </title>, </head>, ir </html> ). Patogu kiekvieną žymių porą įsivaizduoti kaip dėžę (bloką), į kurią gali būti patalpinta mažesnė dėžė, o toje dėžėje — dar kita dėžė ir t.t.

Žemiau pateiktas paveiksliukas su labai paprasta HTML struktūra.

<html>
    <head>
        <title></title>
    </head>
    <body>
        <div>
            <span></span>
            <p></p>
        </div>
    </body>
</html>

Iš paveikslėlio arba kodo matome, kad visus elementus apima žymės <html> </html>, kurias galima įsivaizduoti kaip bloką, o jame — sudėtua kitus elementus (blokus). Kadangi mūsų tikslas yra suvokti, kaip paveldimos CSS savybės, į <head> </head> bloką nekreipsime dėmesio (ten aprašoma tik dokumento informacija, įtraukiami papildomi failai (*.css, *.js)).

Rašydamas apie paveldimumą negaliu nepaminėti dviejų esminių terminų, susijusių su šia sąvoka: tėvas (angl. „parent“) ir vaikas (angl. „child“). Tėvas — elementas, turintis jam priklausančių elementų; vaikas — elementas, kuris paveldės savybes, priklausančias tėvui.
Taigi <body> </body> bloke surašyti 3 skirtingi elementai (div, span ir p), kurie yra jo vaikai; div elementas yra span ir p elementų tėvas. Span ir p elementai yra lygiaverčiai, t.y. paveldės tas pačias tėvo savybes, tačiau neturės ryšio tarp vienas kito. Beje, paveldimos ne tik tėvo savybės, tačiau taipogi ir tėvo tėvo, tėvo tėvo tėvo ir t.t.
Taigi tiek span, tiek p elementas paveldės html, body ir div savybes.

Aukščiau pateiktiems HTML kodo elementams parašykime atitinkamus CSS aprašus.

body { font-size: 10px; font-family: Arial; color: #333; }
div { color: #666; }
span { color: black; }
p { font-size: 80%; font-family: Verdana; }

Bandykime išsiaiškinti, kokias galutines savybes ir reikšmes turės visi elementai.

  • body

    Kadangi nenurodyta jokia html elemento savybė, paveldimos tik numatytosios naršyklės savybės, o vėliau priskiriamos naujos reikšmės. Galutinės savybių reikšmės:

    font-size: 10px;
    font-family: Arial;
    color: #333;

  • div

    Elementas paveldi numatytasias naršyklės savybes bei body savybes. Galutinės savybių reikšmės:

    font-size: 10px;
    font-family: Arial;
    color: #666 (iš pradžių elmentas paveldėjo color reikšmę iš body, t.y. #333, tačiau vėliau buvo nurodyta #666 reikšmė būtent šiam elementui);

  • span

    Paveldi numatytasias naršyklės, elementų body ir div savybes. Galutinės savybių reikšmės:

    font-size: 10px;
    font-family: Arial;
    color: black (paveldėjo #666 iš div, tačiau čia reikšmė buvo pakeista į black);

  • p

    Paveldi numatytasias naršyklės, elmentų body ir div savybes. Galutinės savybių reikšmės:

    font-size: 8px (nors div elementui nenurodyta font-size savybė, ji yra paveldima iš body, tad div perduoda savybę p elementui, tačiau čia nurodyta 80% paveldėtos reikšmės, t.y. 8px);
    font-family: Verdana (kadangi šiam elementui buvo priskirta nauja font-family reikšmė);
    color: #666 (reikšmė, kuri buvo nurodyta div elementui);

Paveldimumo ir hierarchijos reikšmė

Darbas su CSS būtų kur kas sunkesnis ir labiau varginantis, jeigu nebūtų paveldimumo. Įsivaizduokite — body sudaro 15 elementų. Jūs norite, kad visi elementai turėtų tą patį šriftą, dydį, tokią pat teksto spalvą. Būtų didžiausias absurdas, jeigu visiems elementams reikėtų rašyti tą patį kodą, ar ne? Laimei, mums šito daryti nereikia ir turime išeitį.

Nepamirškite viską išbandyti patys, praktikuotis. Sėkmės!

Data ir laikas 2008-10-05 11:36:08   Autorius adijux   Gairės Gairės: Cascading Style Sheets

Komentarai

Komentarų nėra.

Skaitomiausi straipsniai

Spalvos dizaine

Nekyla nė abejonės, kad spalvos tiek spaudos, tiek tinklalapio dizaine yra vienas iš svarbiausių rodiklių, lemiančių gražų dizainą. Atrodo, jog spalvas galima rinktis pagal nuožiūrą, tačiau, deja, tai ne visada pasiteisina. Pastaruoju metu pastebėjau, kokias klaidas daro pradedantieji savamoksliai dizaineriai, todėl galiausiai nusprendžiau aprašyti tas klaidas ir paaiškinti, kaip jų išvengti.

Esminė problema yra ta, kad kai kurie žmonės sugeba sukurti patrauklius dizaino elementus, juos tvarkingai išdėstyti, tačiau neteisingų spalvų pasirinkimas sugadina, sudarko vaizdą, o tai nulemia galutinį sukurto dizaino rezultatą.

Todėl pasistengsiu kuo detaliau išnarplioti dažnai pasitaikančias spalvų derinimo klaidas, šiek tiek apžvelgsiu bendrąją spalvos teoriją ir, žinoma, pateiksiu tiek tinkamų, tiek netinkamų spalvų derinių pavyzdžių.


Tinklalapių kūrimas: pirmieji žingsniai

Žmonės, kurie domisi interneto naujovėmis, lankomais tinklalapiais, portalais, anksčiau ar vėliau iškelia sau klausimą — kaip sukurti tinklalapį? Klausimas iš pirmo živlgsnio atrodo visiškai „nekaltas“ ir gana paprastas: be išvedžijimų, nesuprantamų žodžių ar mokslinių terminų. Tačiau asmenims, kuriems šis klausimas užduodamas (čia, manau, nereikia nė minėti, kad žmogus, kurio klausiama, išmano tinklalapių kūrimo subtilybes), visiškai nesuprantama, kaip galima užduoti tokį naivų klausimą?

Stebitės, kodėl tai naivus klausimas? Jeigu taip, tada pamąstykite, iš ko susideda tinklalapio kūrimo procesas. Deja, nemanykite, kad solidų, gerą tinklalapį galima sukurti per kelias valandas ar dienas. Reikia turėti aiškią internetinės svetainės plėtros viziją, patirties, įgūdžių, daug laiko, kolegų (partnerių) ar draugų, kurie padėtų kurti tinklalapį, motyvacijos ir, be abejo, reikia turėti tikslą.

Išvardijau nemažai reikalavimų (raktažodžių), pagal kuriuos turėtumėte orientuotis kurdami tinklalapį, tačiau vien mano tuščiažodžiavimas nepadės jums sužinoti apie interneto svetainių kūrimo aspektus, todėl šiame straipsnyje aptarsiu kiekvieną sritį atskirai, pasidalinsiu savo patirtimi ir nukreipsiu jus teisinga linkme.


Technikos apvalintų kampų elementams kurti

Naršydami įvairiuose tinklalapiuose tikriausiai pastebėjote, kad vis dažniau yra naudojami užapvalinti kampai (angl. rounded corners): juos galima pamatyti tinklalapio komentarų blokuose, viršutinėse/apatinėse (header/footer), turinio (content) blokuose bei kitose struktūros dalyse.

Apvalintų kampų elementus sukurti galima ne vienu, o keletu būdų. Elementų kampams apvalinti kartais naudojama JavaScript kalba, tačiau rimčiausia priežastis, kodėl šis būdas nelabai populiarus, — išjungtas JavaScript palaikymas kai kurių lankytojų naršyklėje. Taip pat galime sukurti apvalintus elementus panaudoję pakopinių stilių (CSS) savybes ir paveikslėlius. Dar kitas būdas — kuris yra ateities sprendimas — CSS3. Tai nauja pakopinių stilių specifikacija, kuri dar nėra užbaigta, tačiau kai kurios naršyklės jau palaiko keletą naujosios specifikacijos savybių.

Taigi, panagrinėsime dažniausiai taikomus sprendimus elementų kampų apvalinimui: pavyzdžius, pliusus ir minusus; palyginsime aptariamus sprendimus.


Naujausi komentarai straipsniuose

autorius Martyna

http://img294.imageshack.us/i/kodel.png/

va man taip nesusiligiuoja, ka daryti?

autorius krienas

"Antrinės spalvos gaunamos sumaišius dvi pirmines spalvas, o tretinės — sumaišius dvi antrines." Šiaip jau, pagal schemą, tretinė spalva gaunama sumaišius ne dvi antrines, o pirminę su antrine: yellow(primary)+green(secondary)=yellow-green(tertiary).

O šiaip geras, išsamus lietuviškas straipsnis, ačiū autoriui; kam sunkiau su anglų kalba, yra Alvydo Jonaičio knyga "Spalvotyra".

autorius adijux

Daugumai žmonių atvirkščiai: jie nenori, kad nuorodos atsidarytų naujame lange. Manau, kad jeigu žmogus nori, kad nuoroda atsidarytų naujame lange, jis paspaus dešinįjį pelės mygtuką ir pasirinks „Open link in a new window“ arba „Open link in a new tab“. wink

autorius Christine

šeip aš dirbu su paprastomis programomis kaip notepad++ ir keletu kitų. norėčiau sužinot gal yra kitokių programuų su kuriom taip pat nesunku dirbti, bet turi daugiau galimybių ir nemokamai galima parsisiųsti? ar tai tik svajuko dramblionė?

autorius Christine

straipsnis geras tikrai, tik man užkliuvo vienas dalykas. Kai įdedate nuorodas, norėtųsi, kad jos atsidarytų kitame puslapyje, nes paskui sunku rasti kelią atgal, užima laiko arba nesinori giliau naršyti to puslapio į kurį davėte nuorodas.