20. oktober 2004 - 21:58Der er
16 kommentarer og 1 løsning
Opbygning af tabeller - i teori og praksis?
Godaften eksperter,
jeg har et spørgsmål til HTML, som ikke kræver en decideret praktisk løsning, men mere en holdning til, hvad der er rigtigt og forkert.
Udsagn 1: Når man bygger en tabel, så er det vigtigt at overholde W3C-standarden, så der i alle rækker er lige mange kolonner. Hvis der i øverste række er 20 kolonner, så skal der i hver eneste række være 20 kolonner - enten ved en lang række <td></td> indenfor hver <tr></tr>, eller ved at bruge colspan.
Udsagn 2: Når man bygger en tabel, så er der ingen grund til, at der i alle rækker er lige mange kolonner. Hvis der i den øverste række er 20 kolonner, så er der ingen grund til at der også er det i næste række, hvis man alligevel kun skal skrive noget i den første kolonne.
Hvilket af de to udsagn er korrekte? Og har det ene eller det andet udsagn større eller mindre sandsynlighed for at blive vist korrekt i alle browsere?
Der står ikke andet end æren og håneretten på spil, men jeg vil alligevel sætte pris på jeres input! Medmindre jeg bliver bombarderet med svar, så skal jeg nok smide lidt point til jer allesammen.
jeg ville altid følge udsagn 1. Men du kan godt alligevel skjule border på celler der er tomme med css: <td style="empty-cells: hide;"> så det ser ud som om der er forskelligt antal celler i hver række.
Spørgsmålet er ganske overflødigt. HTML er et standadiseret sprog. Skal man skrive i et standardiseret sprog, er det vigtigt at overholde standarden for det sprog. That's it 'n' that's that ... i princippet :)
Bevares, brugerens PC bryder ikke i flammer - og hans skærm splintrer ikke - hvis du ikke overholder denne regel, men du har heller ingen garanti for, at siden kan vises ordentligt. I browsere til stationære PC'ere kan man sagtens blive ved med at poste kode i, der skal rette op på dårlige/dovne koderes koder, så disse også kan tolkes (og det er faktisk ved at være en forbløffende stor del af en browsers samlede kode), men sådan bliver det ikke ved med at forholde sig med de håndholdte maskiner af forskellig art. Spørgsmålet er i det hele taget, hvorlænge browserfabrikanterne finder det formålstjenligt at 'tørre røv' på kodere, der ikke skriver ordentlig HTML. Man kunne forestille sig, de på et tidspunkt begyndte at prioritere deres udviklings indsats anderledes.
Overholder man ikke standarderne, skaber man samtidig problemer for kodere, der evt. skal vedligeholde koden i fremtiden. Det er kanon irriterende at overtage en kode, der er skrevet i 'baby-sprog'.
Derudover skaber det i visse tilfælde bøvl for scripting, hvor JavaScript skal tilgå dokumentets DOM. Det kan brugen af col- og row-span nu også :)
/mvh </bole>
Synes godt om
Slettet bruger
20. oktober 2004 - 23:53#6
Hvis vi tager eksemplet i dit udsagn 2, så kan det jo være ret tilfældigt, hvordan browserfabrikanter har valgt at fortolke koden, når der nu mangler de 19 kolonner. Skal den enlige kolonne bredes ud, så den fylder hele rækken, eller skal den vises som 1/20 af den samlede tabels bredde? Og hvis den bliver vist i 1/20 bredde, hvad skal der så vises i de andre 19/20?
Kort sagt, kan du ikke regne med resultatet, hvis du ikke følger reglerne.
Garbage In -> Garbage Out.
Synes godt om
Slettet bruger
21. oktober 2004 - 08:51#7
Jeg vil stadig påstå at alle tilgængelige browsere (som ikke faldt i søvn i 1998!) vil vise en tabel korrekt selvom der mangler 19 celler. Forudsat at der er noget indhold i de ovenstående celler der sætter bredden for de enkelte kolonner.
Hvis I lægger nogle svar, skal jeg nok kaste lidt point af, og ellers takker jeg mange gange for jeres input - både for det ene og det andet synspunkt! ;-)
Hmm...det var egentlig heller ikke meningen at afskære jer fra det... jeg troede godt, at jeg kunne tildele point efter at jeg havde accepteret ét svar. Jeg har bare lige siddet og irriteret mig over alle de åbne spørgsmål, der ikke har været kommenteret i årevis, så jeg ville rydde op og lukke det her, så jeg ikke bidrog til rodet
...når jeg har læst den af roenving anviste FAQ... :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.