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

Lentelių generavimas naudojant CSS

Lentelių generavimas naudojant CSS

Pasirodžius IE 8-ai versijai galime pritaikyti CSS technologijos display: table savybę, kurios pagalba galėsime kurti lenteles naudojant tik CSS. Kaip žinia, šią funkciją palaiko ir Firefox 2, Firefox 3, Opera 9, tačiau tiek IE6, tiek IE7 nepalaiko display: table.

Darbą pradėsime susikurdami html šabloną, kuriame bus lentelė su viena eilute ir trimis stulpeliais:

...
<body>

<div id="table">

  <div id="tableLeft">
    Kairysis turinys
  </div>

  <div id="tableCenter">
    Centrinis turinys
  </div>

  <div id="tableRight">
    Dešinysis turinys
  </div>

</div>

</body>
...

CSS kodas atrodys šitaip:

#table {
  display: table; 
}
#tableLeft {
  display: table-cell;
  width: 200px;
  background-color: #C3FF68;
  padding-left: 10px;
}
#tableCenter {
  display: table-cell;
  width: 200px;
  border-left: 1px dotted #09854D;
  border-right: 1px dotted #09854D;
  padding: 10px;
}
#tableRight {
  display: table-cell;
  width: 200px;
  padding-left: 10px;
}

CSS lentelės reikšmės. Galima pastebėti, kad css reikšmės atitinka HTML žymes ir atlieką tokią pat funkciją. Skliausteliuose pateikiu atitinkamas HTML žymes:


  • table - nurodo, kad bloke bus apibrėžiama lentelė. (table)
  • table-row - lentelės nauja eilutė (tr)
  • table-cell - lentelės naujas elementas (td)
  • table-row-group - lentelės eilučių grupė (tbody)
  • table-header-group - lentelės viršutinės antraštės grupė (thead)
  • table-footer-group - lentelės apatinės antraštės grupė (tfoot)
  • table-caption - lentelė užrašas (caption)
  • table-column - lentelės stulpelis (col)
  • table-column-group - lentelės stulpelių grupė (colgroup)

Sukurkime lentelę su trimis stulpeliais. HTML atrodys štai taip:

...

<body>

  <div class="content">
    <div class="row">
      <div class="cell">1</div>
      <div class="cell">2</div>
      <div class="cell">3</div>
    </div>
  </div>

</body>

...

CSS kodas:

.content {
  display: table;
}
.row {
  display: table-row;
}
.cell {
  display: table-cell;
  width: 100px;
  height: 100px;
  border: 1px solid black;
  text-align: center;
}

Šitaip galima sukurti ištisą lentelę:

...

<div class="content">
    <div class="row">
        <div class="cell">1</div>
        <div class="cell">2</div>
        <div class="cell">3</div>
    </div>
    <div class="row">
        <div class="cell">4</div>
        <div class="cell">5</div>
        <div class="cell">6</div>
    </div>
</div>

...]

Kitos lentelių parinktys:

  • table-layout — savybė nurodo algoritmą, kuris bus naudojamas išdėstyti lentelę.

    { table-layout: fixed } { table-layout: auto }

  • border-collapse — jeigu reikšmė nurodoma collapse, tada lentelės laukelių kraštinės nesidubliuos. Numatytoji reikšmė separate rodo, kad lentelės laukelis neatpažįsta šalia esančio laukelio ir dubliuoja kraštines.
  • border-spacing — tarpai tarp laukelių.

Taigi, pabandykime sukurti mini galeriją su trumpu paveiksliuko aprašymu. Lentelę sudarys du stulpeliai ir dvi eilutės:

...

<div class="table">
  <div class="row">
    <div class="cell">
      <img src="anger.jpg" alt="Lorem ipsum" />
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
    </div>
    <div class="cell">
      <img src="cat.jpg" alt="Phasellus velit" />
      <p>Phasellus velit massa, mollis a, hendrerit id, rhoncus a, dui.</p>
    </div>
  </div>
  <div class="row">
    <div class="cell">
      <img src="curious_leopard.jpg" alt="Cras sem diam" />
      <p>Cras sem diam, luctus nec, mollis et, suscipit sed, diam.</p>
    </div>
    <div class="cell">
      <img src="prairie_dog.jpg" alt="Praesent tortor eros" />
      <p>raesent tortor eros, congue sit amet, blandit in, sollicitudin at, dui.</p>
    </div>
  </div>
</div>

...

CSS kodas:

.table {
    display: table;
    border-spacing: 10px;
}
.row {
    display: table-row;
}
.cell {
    display: table-cell;
    width: 200px;	
    border: 5px solid black;
    background-color: black;
    color: white;
    vertical-align: top; 
    text-align: center;
}

Apibendrinimas

Kaip bebūtų gaila, tačiau jeigu kuriate svetainę plačiai auditorijai ir siekiate kuo didesnio suderinamumo su lankytojų naršyklėmis, CSS sugeneruotos lentelės nėra labai realu. Kol rinkoje lyderiaus IE 6 ir IE 7, apie tai galime pamiršti. Tačiau kaupti žinias ir žiūrėti plačiai į ateitį tikrai verta.

O kodėl turėtume naudoti būtent CSS lentelių generavimui? Kiekvienas save gerbiantis ir savo darbą mėgstantis svetainių kūrėjas stengiasi rašyti kokybišką, optimalų kodą. Kitaip sakant, jis ieško būdų, kaip gauti rezultatą paprastesniais būdais. Būtent lentelių kūrimas ir stilizavimas su CSS suteikia galimybę sukurti lankstų, optimalų kodą tolimesniems tobulinimams ir pan. Kita vertus, negalima nuvertinti ir standartinio lentelių kūrimo — juk ne visais atvejais tinka vienintelis variantas.

Data ir laikas 2008-11-16 20:18:03   Autorius infactor   Gairės Gairės: Cascading Style Sheets

Komentarai

dvneo 2009-05-07 23:13:01
dvneo Įdomi svetainė apie CSS, bet būtų dar geriau, jei būtų kiek truputį plačiau, nes norėčiau išmokti su CSS dirbti. hi
 

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.