05. februar 2007 - 20:56Der er
12 kommentarer og 1 løsning
Nested table
Hej exp.
Jeg skal lige være sikker på at jeg er på rette spor. Jeg er ved at lave mig en website som jeg vil skrive helt i hånden, altså ingen GoLive eller Dreamweaver. Dette for at lære noget. Jeg har så opbygget en tabel med 3 kolonner og så laver jeg rækker nedad. Når jeg så midt i det hele har brug for at have en enkelt række med 5 kolonner havde jeg tænkt mig at indsætte en tabel mere. Men skal den i en < tr > eller skal jeg lave en < td > ? Det jeg vil svarer til at lave en "merge" en række i f.eks GoLive og så indsætte en tabel i denne række. Er det tydeligt nok forklaret eller tåger jeg lidt?
Tabeller er en dårlig idé til at designe med. Men når det endelig skal være, så:
Du må lave en <td> i den første tabel, og sætte den til at have colspan="3", for at fylde hele bredden ud. Inde i den kan du så lave den nye tabel.
Alternativt kan du have tre tabeller. En med 3 kolonner, en med 5 kolonner, og så en med 3 igen nedenunder. Der vil du få samme effekt uden nesting. Det kan være en del nemmere at overskue. Desuden har colspan attributtet en dårlig vane med pludselig at lave fejl og se underligt ud.
Viperine >>> Den ide med 3 tabeller er nok den jeg bedst kan lide, jeg ved godt at det er "oldnordisk" men syntes det giver mindre tastning end CSS og jeg kender ikke CSS godt nok. Men jeg ville da gerne hører om der er alternativer. Det jeg vil placere er 5 billeder ved siden af hinanden - altså på række. I tabellen med 3 kolonner har jeg tekst. Smid bare et svar
tabeller er beregnet til at vise tabulerede data - deraf navnet. layers derimod er beregnet til egentligt designopbygning og det er hvad det bør bruges til. Tabeller kan selvfølgelig bruges mere eller mindre hensigtsmæssigt - men selvom de bruges "hensigtsmæssigt" gør det stadig ikke bruges af dem pænere i forhold til layers.
keysersoze > 'Layers'? Mener du 'divs' (div-elementet)? ;o)
I øvrigt er div-elementet ikke "mere beregnet til egentlig designopbygning" end tabel-elementet er (det er misforstået overtro).
Så vidt jeg husker kom div-elementet først efter tabellerne havde været brugt i mange år, til opbygning af webdokumenter i HTML-format. Så hvis der findes et HTML-element, der er mere 'velegnet' end andre, må det være tabel-elementet.
Jeg opbygger selv mine HTML-dokumenter med tabel-elementer, og supplerer med div-elementer hvor det er hensigtsmæssigt. Jeg foretrækker ikke det ene element frem for det andet, men bruger det element der løser opgaven bedst.
kan ikke helt huske rækkefølgen - men mener i hvert fald at det ikke var muligt at sætte border="0" i en tabel helt i starten og den bruger jeg stadig i mine egne hjemmelavede regler; kan man leve med borders på en tabel i en given opbygning så er tabeller det rigtige valg - kan man ikke leve med borders så skal der benyttes divs (ikke med det sagt at border forbliver på)... men det er jo bare mine regler :)
Jeg har tidligere altid brugt tables - kunne heller ikke se hvorfor layers (divs/whatever) var så meget bedre som det blev påstået af nogle. Prøves skulle det da og de første par eksempler var et helvede at bygge op og jeg var ved at opgive men nu kan jeg hurtigere sætte noget sammen med layers end med tables og jeg slipper for mange af de hovsa-løsninger man nogle gang blev nødt til med tables og samtdig er det nu blevet lettere for mig at ændre noget på siden.
Jeg blev endeligt overbevist da jeg ændret et faktisk flot kodet stort table site om til et site med layers - koden kom til at fylde 1/3 af det oprindelige og det må da alt andet lige betyde noget både for load-tiden og ikke mindst søgemaskinerne der får endnu lettere ved at læse hvad siden omhandler... og nu laver jeg aldrig table-sites igen :)
Min oplevelse er så modsat: at div-opbyggede layouts ofte fylder 2-3 gange mere end den samme kode fylder med tabel-opbyggede layouts.
Det afhænger nok meget af hvordan man bruger tabel-elementerne, og om man udnytter mulighederne for at styre tabel-elementerne med CSS.
Typisk bruger jeg kun en enkelt tabel til grundridset, og bruger derefter enten tabeller (til tabulære data) eller divs til yderligere styring af indholdet.
apo - Fordi de er sværere at styre bl.a. Altså ofte kan man ikke kontrollere størrelsen på de enkelte celler, selvom man giver dem højde og bredde i CSS. Og colspan/rowspan giver som nævnt ofte mærkelige resultater. Desuden har jeg samme oplevelse som keysersoze - at koden bliver større og mere forvirrende.
Derudover har du ret meget af vejen. Jeg er også ekstremt træt af det typiske argument "Hvad nu hvis de fjernede border="0" fra HTML?"... jamen det gør de ikke? Man kunne lige så godt sige "Hvad nu hvis de fjernede height fra CSS?"... Det er en fuldstændig irrelevant hypotese.
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.