eo es en it es eo eo pt eo eo en en fr sv fr en it it nb it eo en eo eo eo eo eo eo tr eo tr it pt ceb it io eo en eo en de en en eo eo eo eo lt eo eo pl it eo it eo gl es eo hbs_lat sq eo eo it eo eo eo eo eo eo eo en eo eo en eo eo eo eo eo eo eo eo eo eo eo eo eo eo it ru fr en en cs en en fr en zh ru en zh en ru eo eo eo eo ja eo en eo eo eo it pt bo es es en de es la la es la es cy pt br de eo es eo eo eo eo en eo en eo en eo en eo eo eo en eo hbs_lat eo hbs_lat eo eo es eo eo en eo en eo eo eo eo es eo en fr ru it it fr en it it eo ru de ru en en fr ru fr cs fr pt fr cs eo ru it pt ca eo hbs_lat it it nl eo eo eo eo eo eo eo es eo it eo eo eo eo it es eo eo eo eo eo eo en eo eo eo eo en eo eo pt es es eo es eo eo eo
Kiel fari TTT-pagxojn : Tabeloj
En tiu cxi leciono vi lernos, kiel oni faras tabelojn en XHTML. La tabelaj elementoj de XHTML estas por prezentado de tabelecaj datumoj. Tio estas datumoj, kiuj havas diversajn logikajn interrilatojn prezenteblajn per arangxado laux kolumnoj kaj vicoj. Tiaj datumoj estas ekz. statistiko, adresaroj k.s.
Bedauxrinde XHTML-aj tabeloj estas tre ofte misuzataj por krei grafikajn arangxojn de pagxoj. Ne imitu tion! Uzu por grafika arangxado nur stilfoliojn.
Ne cxiuj ebloj kaj komplikajxoj de tabeloj estos cxi tie klarigitaj.
Noto: Pluraj el la ekzemploj en tiu cxi leciono estas pruntitaj de TTT-pagxo verkita de Jukka KORPELA. Mi tamen reverkis la ekzemplojn laux XHTML 1.0 (anstataux HTML 3.2), kaj tradukis ilin en Esperanton. La pagxoj de Jukka pri TTT-verkado (en la Angla kaj en la Finna) estas cetere tre legindaj.
Kaj jen kiel prezentigxas tiu kodo en via TTT-legilo:
Per tr-elementoj oni do kreas vicojn, kaj ene de tiuj vicoj estas tabelcxeloj: td-elementoj. La unua cxelo de la unua vico, kaj la unua cxelo de la dua vico, kune formas kolumnon (A kaj C). Same la dua cxelo de la unua vico, kaj la dua cxelo de la dua vico, formas alian kolumnon (B kaj CX).
Jen pli komplika kaj pli realisma tabelo, kiu uzas iom pli da elementoj:
En tiu tabelo estas la jenaj partoj:
tri titolaj tabelcxeloj, po unu en cxiu kolumno
dek du datumaj tabelcxeloj, po tri en cxiu vico; po kvar en cxiu kolumno
Jen la XHTML-kodo por konstrui tiun tabelon:
Kelkaj landoj       Lando  Cxefurbo  Lingvo       Svedujo  Stokholmo  la Sveda       Germanujo  Berlino  la Germana       Algxerio  Algxero  la Araba       Meksiko  Meksikurbo  la Hispana
La tuta tabelo konsistas el unu table-elemento. Ene de gxi estas unue caption-elemento, kaj poste tbody-elemento. En la tbody estas kvin tr-elementoj (po unu por cxiu vico de la tabelo). Kaj ene de cxiu tr-elemento estas elementoj por tabelcxeloj: th-elementoj por titolaj cxeloj, kaj td-elementoj por datumaj cxeloj.
La elemento caption estas praktike malmulte uzata, sed gxi estas tre utila. Oni rajtas meti caption nur tuj post la malferma table-marko, kaj povas esti nur po unu caption en cxiu tabelo.
Noto: Devus esti eble per stilfolio proponi diversajn prezentomanierojn por caption. Ekzemple caption {caption-side:bottom;} devus kauxzi, ke la tabeltitolo aperas sub la tabelo. Sed bedauxrinde nur malmultaj TTT-legiloj gxuste traktas tion.
tbody ne estas deviga elemento. Se oni gxin ne uzas, gxi auxtomate subkomprenigxas. Tamen montrigxis, ke iuj novaj TTT-legiloj, en iuj specialaj cirkonstancoj havas problemojn pri tabeloj, en kiujn oni ne enmetis efektivajn markojn por tbody. Tial mi konsilas cxiam uzi tbody, ankaux kiam tio eble sxajnas superflua balasto.
Noto: Krom tbody por tabelkorpo, ekzistas ankaux thead por tabelkapo, kaj tfoot por tabelpiedo. Pere de tiuj elementoj oni povas teorie krei tabelojn, en kiuj kapa kaj pieda partoj cxiam videblas. Tiaj arangxoj povas esti tre oportunaj, precipe por presado de tabeloj surpapere, kiam oni volas ripeti ekzemple titolajn tabelcxelojn sur cxiu pagxo. Sed cxio tia bedauxrinde ankoraux apenaux funkcias en iuj TTT-legiloj. Tial mi ne traktos thead kaj tfoot en tiu cxi leciono.
En la dua ekzemplo estas ankaux unu atributo: border="1". Tiu atributo indikas, ke estu bordero cxirkaux cxiu tabelcxelo, kaj ke tiu bordero estu largxa je unu bildero. Iom escepte oni povas indiki tian prezentan detalon rekte en la XHTML-kodo. Oni povas tion fari ankaux per stilfolio, sed kiam temas pri tabeloj, povas esti tre grave, ke bordero estu montrata ankaux kiam la stilfolio forestas (aux kiam la TTT-legilo ignoras la stilfolion). Alie iuj tabeloj povas farigxi nekompreneblaj. Sen la bordero oni eble ne povas bone kompreni la strukturon de kolumnoj kaj vicoj. Gxuste tiu strukturo ja estas la tuta senco de tabelo. Tial estas bone, je bezono, indiki borderon jam en la XHTML-kodo.
Se oni nepre ne volas borderon, oni povas skribi border="0", sed normale suficxas skribi nenion ajn, cxar plej multaj TTT-legiloj montras tian borderon nur se oni tion aparte indikas. Cxiuokaze oni ne povas esti certa, kiel prezentigxas tabelo. Eble iuj legantoj havas propran stilfolion, kiu ensxaltas aux elsxaltas borderojn diversgrandajn kaj diverskolorajn.
Ekzistas ankaux cellspacing-atributo por indiki spacon cxirkaux la tabelcxeloj, ekz. cellspacing="2" (= estu spaco largxa je 2 bilderoj cxiuflanke de cxiu tabelcxelo). Kaj ekzistas cellpadding-atributo por indiki spacon (remburon) ene de la tabelcxeloj, inter la teksto kaj la bordero, ekz. cellpadding="4" (= estu remburo largxa je 4 bilderoj cxiuflanke de la enhavo de tabelcxelo). Ankaux tiuj atributoj povas esti utilaj por igi tabelon komprenebla. Sed normale suficxas uzi border en la XHTML-kodo, dum oni faras aliajn prezentajn aferojn en stilfolio.
Se vi volas, vi povas preni la kodon de la ekzempla tabelo, kaj aldoni al gxi krom border ankaux cellspacing kaj cellpadding, eksperimentante per diversaj largxoj por vidi, kiel tio influas la prezentadon. Cxiuj tri atributoj estu en la malferma marko de la table-elemento. Sciu, ke per stilfolio eblas fari multe pli interesajn aferojn.
Oni ankaux povas uzi width-atributon en la table-elemento. Tia atributo indikas la largxon de tabelo, aux en bilderoj, ekz. width="400", aux per procentajxo, ekz. width="80%" (= okdek procentoj de la largxo de la havebla spaco). Sed preskaux cxiam estas preferinde ne uzi width-atributon, kaj precipe grave estas ne indiki la largxon de tabelo per bilderoj, cxar tio povas krei tro rigidan prezenton, kiu ne adaptigxas al diversaj fenestrograndecoj kaj diversaj tekstograndecoj.
Ofte en tabeloj iuj cxeloj estas malplenaj, cxar mankas informo por la koncerna afero. Oni ne rajtas tiam forlasi la tutan tabelcxelon. La kodo por tiu tabelcxelo devas resti por ke la strukturo de kolumnoj kaj vicoj ne disfalu. Principe oni povas tiam simple skribi    (aux   ), sen enhavo inter la malferma kaj ferma markoj. Sed multaj TTT-legiloj tiam rifuzas aperigi eventualan borderon cxirkaux la cxelo, kaj tio povas aspekti iom strange. Se oni nepre volas, ke tia malplena cxelo aperu kune kun sia bordero, oni povas iom artifiki, kaj skribi en la cxelo spaceton. Sed ne tauxgas simpla ordinara spaceto por tio. Oni devas uzi nerompeblan spaceton (signo numero 160 en Unikodo). La XHTML-a ento (simbola nomo) por tia spaceto estas  . Oni do skribu     por tia “malplena” tabelcxelo. Tio estas eta artifiko, sed suficxe senkulpa. Jen ekzemplo de tabelo kun malplenaj cxeloj:
Kelkaj mezuroj mankas, kaj tial la koncernaj tabelcxeloj estas malplenaj. Jen la XHTML-kodo:
La hodiauxaj mezuroj       horo   temperaturo   premo       10:00   11,00   12,800       11:00   13,50           12:00   15,00   1,650       13:00   13,30           13:00       0,002
Cxeloj plurkolumnaj aux plurvicaj
En la antauxaj ekzemploj cxiu tabelcxelo estas tute bonkonduta, kaj apartenas nur al precize unu kolumno kaj unu vico. Tiel estas en plej multaj simplaj tabeloj. Sed iafoje en pli komplikaj tabeloj povas okazi, ke iuj cxeloj transiras el tiu strikta skemo. Povas okazi, ke unu tabelcxelo etendigxas tra pluraj kolumnoj, aux tra pluraj vicoj, aux ecx ambaux. Por arangxi tiajn tabelojn oni devas uzi la atributojn colspan kaj rowspan:
nombro de kolumnoj, tra kiuj etendigxas la cxelo
nombro de vicoj, tra kiuj etendigxas la cxelo
Jen ekzemplo de tia tabelo, kiu montras deklinaciajn formojn de Latina vorto:
Deklinacio de is (unu-nombro)
Deklinacio de  is  (unu-nombro)          neuxtra   vira   ina       nominativo   id   is   ea       akuzativo   eum   eam       genitivo   eius       dativo   ei       ablativo   eo   ea
La strukturo de tiaj tabeloj povas esti iom kaporompa, kaj kiam oni ilin kreas, povas esti oportune unue desegni la tabelon surpapere, kaj tiam zorge elkalkuli la bezonatajn valorojn de colspan kaj rowspan. Pacienco kaj zorgemo necesas por ne fusxi. Studu zorge la cxi-antauxan ekzemplon por kompreni, kiel cxio interrilatas.
Rimarku, ke en tiu ekzemplo mi aldonis iom da stilfolia kodo rekte en la XHTML-kodo per la atributo style. Normale oni metu tiajn aferojn en apartajn CSS-dosierojn, uzante ekz. class-atributon aux id-atributon por ligi la bezonatajn stildeklarojn al la tabelo. Sed cxi-foje mi faris escepton por montri al vi, kiel oni povas okaze enmeti tiajn aferojn rekte en la XHTML-kodon. La indikita stilo simple centrigas la tekston en cxiu cxelo de la tabelo.
Komplikaj tabeloj povas esti malfacile kompreneblaj, precipe por homoj, kiuj ne povas vidi la tabelon. Iuj homoj pro neceso, aux pro elekto, retumas per ekz. vocxlegaj programoj, kiuj nur pene povas prezenti kompleksan tabelon. Por helpi faciligi la komprenadon kaj legadon de tabeloj ekzistas kelkaj aldonaj rimedoj en XHTML:
atributo, kiu donas klarigan resumon de la enhavo de tabelo
atributo de titolaj cxeloj; gxi montras, al kiuj datumaj cxeloj rilatas la titola cxelo
atributo de datumaj cxeloj; gxi montras, kiu(j) titolcxelo(j) validas por la datuma cxelo
Gxenerale oni cxiam aldonu summary al cxiu tabelo, krom eble la plej simplaj. Tio povas aspekti ekzemple jene:
Kelkaj landoj       Lando  Cxefurbo  Lingvo       Svedujo  Stokholmo  la Sveda       Germanujo  Berlino  la Germana       Algxerio  Algxero  la Araba       Meksiko  Meksikurbo  la Hispana
Ankaux povas esti, ke sercxrobotoj iam atentos (aux eble jam atentas) tiajn resumojn en summary-atributoj, kaj aldonas tiujn informojn al siaj indeksoj de la Reto.
Per scope oni povas indiki cxe titola cxelo, cxu gxi rilatas al la kolumno, aux al la vico, en kiu gxi trovigxas:
th-elemento, kiu estas titolo de la aktuala kolumno
th-elemento, kiu estas titolo de la aktuala vico
Jen la antauxa tabelo de Latina deklinacio kun aldonaj klarigaj scope-atributoj:
Deklinacio de  is  (unu-nombro)          neuxtra   vira   ina       nominativo   id   is   ea       akuzativo   eum   eam       genitivo   eius       dativo   ei       ablativo   eo   ea
Por uzanto de vocxlega TTT-legilo tiaj aldonaj scope-atributoj, povas esti absolute necesaj por povi decxifri la sencon de tia tabelo. Mi ne scias, cxu vere ekzistas nun tiaj vocxlegiloj, kiuj atentas pri scope-atributoj, kaj iel vocxe indikas la sencon de la th-elementoj, sed ni ja ne verkas TTT-pagxojn nur por la nuno. Ni verkas pagxojn ankaux por la estonteco.
Efektive jam nun eblas en ordinaraj TTT-legiloj utiligi scope-atributojn. Oni povas per stilfolio indiki diversajn prezentojn por th-elementoj kun scope="col", kaj alian por th-elementoj kun scope="row", ekzemple jene:
th[scope=col] { color: red; background-color: black; } th[scope=row] { color: black; background-color: red; }
Tiu CSS-kodo donas ekzemplon de peratributaj elektiloj. Tia kodo funkcias nur en la plej modernaj kaj plej bonaj TTT-legiloj. En ekz. “Explorer 4/5/6” ili tute ne funkcias.
En tre kompleksaj tabeloj la atributo row eble ne suficxas por indiki la rilatojn inter titolaj kaj datumaj tabelcxeloj. Tiam oni povas anstatauxe (aux kompletige) uzi la atributon headers, kiu estas multe pli preciza. Per gxi oni povas en datuma cxelo doni liston de titolaj cxeloj, kiuj validas por gxuste tiu cxelo. En tian liston oni metas la id-nomojn de la koncernaj titolaj cxeloj (kun spacetoj inter la nomoj). Kompreneble cxiu titola cxelo tiam devas havi id-atributon por ke tio funkciu. Jen ekzemplo:
Raporto pri vojagxkostoj          mangxoj   hoteloj   transportado   subsumoj       San Jose                   25 Auxg 1997   37,74   112,00   45,00          26 Auxg 1997   27,28   112,00   45,00          subsumoj   65,02   224,00   90,00   379,02       Seattle                   27 Auxg 1997   96,25   109,00   36,00          28 Auxg 1997   35,00   109,00   36,00          subsumoj   131,25   218,00   72,00   421,25       sumoj   196,27   442,00   162,00   800,27
Noto: La cxi-antauxa ekzemplo estas pruntita el la normo-teksto de HTML 4.01. La tiea versio de la kodo estas iom pli komplika, cxar oni uzis aldone ankaux la atributon axis, per kiu eblas meti cxelojn en diversajn kategoriojn. Tio povas ebligi diversajn analizojn kaj raportojn bazitajn sur la informoj de tabelo. Se vi interesigxas pri tiu profunda temo, vi povas studi la originan ekzemplon (kiu tamen estas verkita en HTML 4.01, ne en XHTML).
Tre ofte oni metas bildojn en tabelcxeloj. Ofte temas tiam pri misuzado de tabeloj por grafika arangxo, sed ne cxiam. Ja ankaux bildo povas esti parto de datumoj, kiuj estas tute tabelecaj. Oni povas ekzemple havi bildojn kun ties nomoj kaj aliaj informoj en tabelo.
Principe estas nenia problemo meti bildojn en tabelon. Jen simpla ekzemplo:
Miaj fotoj       foto   priskribo   dato           mia hejmbesteto   1 Januaro 2003           mia hejmo   5 Januaro 2003           mia portreto   6 Julio 2002
img-elemento do povas aperi rekte en td-elemento, same kiel teksto. Nenia problemo...
Tamen, se vi uzas ekz. Fajrovulpon por legi tiujn cxi pagxojn, vi eble jam notis problemeton: Sub cxiu el la bildoj, Fajrovulpo lasas iom da spaco, kio aspektas iom strange. Multaj pensas, ke tio estas eraro en Fajrovulpo, sed fakte ne. Efektive Fajrovulpo agas tute gxuste. img-elementoj estas kvazaux teksto, kaj se oni ne aparte indikas alian prezenton, bildoj aperas sur la bazlinio de la teksto. Tekstolinioj cxiam havas iom da spaco sub la bazlinio, por ke la vostoj de literoj povu aperi. Kaj gxuste tiun spacon oni vidas en Fajrovulpo sub cxiu bildo en la cxi-antauxa tabelo. Ja mankas vera teksto en tiuj tabelcxeloj, sed tio ne gravas. Cxiu bildo aperas sur la sama nivelo, sur kiu aperus teksto, se estus teksto en la cxelo.
Nu, kion do fari, se oni nepre ne volas tian spacon? La respondo, kiel cxiam, estas stilfolio. Normale img estas nebloka elemento (inline), kio signifas, ke gxi estas kvazaux teksto. Per stilfolio oni povas tamen proponi, ke iuj img-elementoj anstatauxe prezentigxu kiel blokaj elementoj (block), kio signifas, ke la bildo ne plu prezentigxas flue kun la teksto, sed memstare.
Por fari ton, oni metu en stilfolion ekzemple la jenon:
td img {display: block;}
Provu tion. Faru XHTML-pagxon el la cxi-antauxa ekzemplo, kaj aldonu ligon al stilfolia dosiero. En tiu dosiero skribu la cxi-antauxan regulon pri td img (bildoj en datumaj tabelcxeloj). Se vi uzas Fajrovulpon, aux alian parencan TTT-legilon, vi povas vidi, ke la bildoj tiam prezentigxas sen la gxena suba spaco. Memoru, ke vi tiam devas konservi miajn ekzemplobildojn en loko, kie vi povas uzi ilin en via testopagxo, kaj eble reskribi la bildadresojn lauxe. Aux vi povas skribi absolutajn href-adresojn al miaj bildoj en mia servilo (bona ekzerco...).
Noto: Efektive la CSS-guruoj inter si iom kverelis pri tio, cxu Fajrovulpo vere agas gxuste cxi-okaze. La CSS-normo estas eventuale interpretebla en pli ol unu maniero cxi-punkte. Multaj aliaj legiloj, ekz. “Esplorilo”, ne lasas tian spacon, se bildo estas sola en tabelcxelo, sed vere (aux almenaux laux tiuj, kiuj programis Fajrovulpon) tiuj malnovaj legiloj agas malgxuste, kontraux la CSS-normo.
Noto: La CSS-eco display povas havi precipe la jenajn valorojn: inline, block kaj none. La du unuajn ni jam tusxis. La tria, none, signifas, ke la afero tute ne aperu. Tio povas foje esti utila. Ekzemple oni povas skribi apartan stilfolion por presado sur papero, kaj en gxi elekti kasxi iujn aferojn, kiuj ne estas bezonataj en papera prezento (ekz. aron da ligiloj, kiuj nur gxenas surpapere, cxar ili cxiuokaze ne funkcias tiam). display povas havi ankaux aliajn specialajn valorojn, kiuj tamen ankoraux apenaux funkcias en iuj TTT-legiloj.
Alia solvo estas la jena stilregulo, kiu kauxzas, ke bildoj en datumaj tabelcxeloj aligxas al la subo de la spaco por teksto (anstataux al la bazlinio de la teksto):
td img {vertical-align: bottom;}
Cxio cxi denove montras, ke tre indas testi siajn TTT-pagxojn en diversaj TTT-legiloj.
Al la sekva leciono
Laste sxangxita: 3 Novembro 2017 (17:44)
Retposxto: “bertilow” cxe “gmail.com”
Cxi tiu verko estas disponebla laux la permesilo
Krea Komunajxo Atribuite-Samkondicxe 3.0 Neadaptita