Gå til innhold

CSS-tabeller vises ikke rett i IE8 og 9


Anbefalte innlegg

Videoannonse
Annonse

Tips: bruk <table> for å lage tabeller :)

En bruker ikke <table> for å lage layout ;) Det er så 2001....

Jeg kan selvsagt floate eller bruke display inline-box, men det er heller ingen god løsning. IE8 og IE9 skal kunne vise css-tabeller..

Lenke til kommentar

Kryssbrowser CSS er en hårete greie.

Om vi får se koden/testsiden kan vi hjelpe deg bedre.

Har du mulighet til å dele denne?

 

www.viafjord.no/beta var adressen..

Fant ut av det.. IE klarte ikke å finne DOCTYPE når det var whitespace eller kommentarer før <!DOCTYPE html> , dermed ble siden vist i quirks-mode og dermed feil...

Endret av idos
Lenke til kommentar

display:table er som en mann i kanindrakt. Det er fortsatt en mann. Det ligger i ordet <table> at det er for tabular data, derfor skal man ikke bruke den til layout. Jeg er ikke en av de som griner om noen gjør det likevel. Men hva ligger i ordet display:table da? At det ikke er snakk om tabular data? Tabell er tabell, og det var det også i 2001. Såvidt jeg vet er denne omveien til tabeller ikke støttet av eldre IE-versjoner, nok en grun til å heller bruke <table> eller <div> med float/posisjonering. Mulig mine fordommer er grunnløse, men jeg ser på display:table som en tulleting.

  • Liker 1
Lenke til kommentar

Det er vel omvendt: display:table ikke er en mann i kanindrakt, men en kanin i mannedrakt.

Vi fremstiller ikke -tabulært innhold i et grid-layout med rett semantikk, på en enkel måte. (Når en bare ikke trigger quirks-mode i IE)..

Lenke til kommentar

display:table er som en mann i kanindrakt. Det er fortsatt en mann. Det ligger i ordet <table> at det er for tabular data, derfor skal man ikke bruke den til layout. Jeg er ikke en av de som griner om noen gjør det likevel. Men hva ligger i ordet display:table da? At det ikke er snakk om tabular data? Tabell er tabell, og det var det også i 2001. Såvidt jeg vet er denne omveien til tabeller ikke støttet av eldre IE-versjoner, nok en grun til å heller bruke <table> eller <div> med float/posisjonering. Mulig mine fordommer er grunnløse, men jeg ser på display:table som en tulleting.

 

Svakhetene med å bruke HTML-tabeller til annet enn tabulære data kan overhodet ikke overføres til "display:table"-funksjonaliteten i CSS.

CSS-delen dreier seg kun om presentasjon, akkurat som CSS skal. Det "ligger ikke noe i ordet display:table" annet at elementet da skal bruke tilsvarende layout-modell som mange er kjent med fra <table>. Det har ikke noen mer betydning på innholdet enn om du hadde satt "display:list-item" på en <p>, eller satt "display:inline" på en <div>.

 

"display:table" er ikke noe mer en tulleting enn hva "display:block" eller "display:inline" er det - ei eller er det noen fantastisk løsning på all verdens problemer...

Lenke til kommentar

Slik jeg ser det er det ikke helt gunstig å endre rendringen av elementer slik du beskriver (med display:inline på DIV, display:list-item på P og display:block på feks SPAN).

 

Om man må endre hvordan layout rendres så radikalt, synes jeg det er et signal om at HTML og content i utgangspunktet ikke er gjennomtenkt nok, og at man prøver gjøre opp for manglende fundament ved å male det i fine farger.

 

Disse endringene går også utover andre ting, som feks tilgjengelighet. Skjermlesere, userstyles ol. får unødvendig med «støy» når de skal tolke sidene og man lager problemer for seg når en skal tilpasse sidene til ulike medier og browsere.

 

«Tabeller er så 2001» er ikke et argument for å gå bort fra hvordan dataen er presentert på best måte. At tabeller ikke skal brukes til layout, betyr ikke alt all layout skal gjøres med andre HTML-elementer endret i CSS.

Har man griddata er tabell fortsatt beste metode.

 

Kort og greit:

Skal dataen din vises som tabell, bruk tabell. Skal det være en liste, bruk en liste.

  • Liker 3
Lenke til kommentar

 

 

«Tabeller er så 2001» er ikke et argument for å gå bort fra hvordan dataen er presentert på best måte. At tabeller ikke skal brukes til layout, betyr ikke alt all layout skal gjøres med andre HTML-elementer endret i CSS.

Har man griddata er tabell fortsatt beste metode.

 

 

Utsagnet var like mye en fleip som fakta. Og det jeg mente med det var at en bygger ikke opp designet med tabeller lenger. Det var "greit" før når det nesten var den eneste måten. Slik er det ikke lenger. Tabeller skal brukes, som du selv sier, til å vise tabell-data.

  • Liker 1
Lenke til kommentar

Er nå heller ingen her som direkte påstår at man burde bruke tabeller til designlayout (men fremmer <tables> vs. display:table), og har ikke sett dette blitt foreslått som en god løsning på forums på veldig lenge, men allikevel gjenoppstår denne debatten vel ofte.

Lenke til kommentar

 

Slik

jeg ser det er det ikke helt gunstig å endre rendringen av elementer

slik du beskriver (med display:inline på DIV, display:list-item på P og

display:block på feks SPAN).

 

Om

man må endre hvordan layout rendres så radikalt, synes jeg det er et

signal om at HTML og content i utgangspunktet ikke er gjennomtenkt nok,

og at man prøver gjøre opp for manglende fundament ved å male det i fine

farger.

 

 

 

"Gunstig"

er ikke noen god beskrivelse nei. For de som ikke forstår

problemstillingen vil fort vekk "tvilsomt" ende opp som god beskrivelse,

men for de av oss som forstår hva som er hva rundt og hvordan de

forskjellige tingene her er ment å brukes, vil nok heller "irrelevant"

være beskrivelsen.

 

 

 

Disse

endringene går også utover andre ting, som feks tilgjengelighet.

Skjermlesere, userstyles ol. får unødvendig med «støy» når de skal tolke

sidene og man lager problemer for seg når en skal tilpasse sidene til

ulike medier og browsere.

 

 

 

Dette er bra argumentert for hvorfor "riktig" HTML er bra og viktig, men det fungerer ikke som et argument mot å bruke CSS til å endre hvordan elementer brukes i layout.

 

 

 

«Tabeller

er så 2001» er ikke et argument for å gå bort fra hvordan dataen er

presentert på best måte. At tabeller ikke skal brukes til layout, betyr

ikke alt all layout skal gjøres med andre HTML-elementer endret i CSS.

 

 

 

 

Da har du ikke sett poenget mitt, og neppe heller motivasjonen til CSS-arbeidsgruppa, når de gjorde "display" til en del av CSS.

 

 

At du helt korrekt kan peke på to forskjellige ytterpunkter og slå fast

at det er to dårlige fremgangsmåter, betyr ikke at det ikke finnes

gode/smarte/riktige bruksområder i mellom.

 

 

Og nei, ingenting av det jeg skriver er et argument for "å gå bort fra

hvordan dataen er presentert på best måte" - heller tvert imot.

 

 

 

Har man griddata er tabell fortsatt beste metode.

 

Kort og greit:

 

Skal dataen din vises som tabell, bruk tabell. Skal det være en liste, bruk en liste.

 

 

 

Det viser egentlig bare din manglende innsikt i det du argumenter for

(og som jeg er enig i): Ja, hvis innholdet er tabulært, så er det

<table> som skal brukes. Men, nei,

hvis greia er at innholdet skal ha grunnleggende layout ala en tabell,

så er det ikke nødvendigvis <table> som skal brukes.

 

 

Det er jo dette som er hele fundamentet bak HTML og CSS!

Endret av PHPdude
Lenke til kommentar

Slik jeg ser det er det ikke helt gunstig å endre rendringen av elementer slik du beskriver (med display:inline på DIV, display:list-item på P og display:block på feks SPAN).

 

Om man må endre hvordan layout rendres så radikalt, synes jeg det er et signal om at HTML og content i utgangspunktet ikke er gjennomtenkt nok, og at man prøver gjøre opp for manglende fundament ved å male det i fine farger.

"Gunstig" er ikke noen god beskrivelse nei. For de som ikke forstår problemstillingen vil fort vekk "tvilsomt" ende opp som god beskrivelse, men for de av oss som forstår hva som er hva rundt og hvordan de forskjellige tingene her er ment å brukes, vil nok heller "irrelevant" være beskrivelsen.

Disse endringene går også utover andre ting, som feks tilgjengelighet. Skjermlesere, userstyles ol. får unødvendig med «støy» når de skal tolke sidene og man lager problemer for seg når en skal tilpasse sidene til ulike medier og browsere.

Dette er bra argumentert for hvorfor "riktig" HTML er bra og viktig, men det fungerer ikke som et argument mot å bruke CSS til å endre hvordan elementer brukes i layout.

«Tabeller er så 2001» er ikke et argument for å gå bort fra hvordan dataen er presentert på best måte. At tabeller ikke skal brukes til layout, betyr ikke alt all layout skal gjøres med andre HTML-elementer endret i CSS.

Da har du ikke sett poenget mitt, og neppe heller motivasjonen til CSS-arbeidsgruppa, når de gjorde "display" til en del av CSS. At du helt korrekt kan peke på to forskjellige ytterpunkter og slå fast at det er to dårlige fremgangsmåter, betyr ikke at det ikke finnes gode/smarte/riktige bruksområder i mellom.

 

Og nei, ingenting av det jeg skriver er et argument for "å gå bort fra hvordan dataen er presentert på best måte" - heller tvert imot.

Har man griddata er tabell fortsatt beste metode.

Kort og greit: Skal dataen din vises som tabell, bruk tabell. Skal det være en liste, bruk en liste.

Det viser egentlig bare din manglende innsikt i det du argumenter for (og som jeg er enig i): Ja, hvis innholdet er tabulært, så er det <table> som skal brukes. Men, nei, hvis greia er at innholdet skal ha grunnleggende layout ala en tabell, så er det ikke nødvendigvis <table> som skal brukes.

 

Det er jo dette som er hele fundamentet bak HTML og CSS!

Slik jeg forstå det du skriver, er vi enige. Så la meg utdype hva jeg mener:

 

Du understreker som meg at CSS er for visuell identitet, og at HTML er for struktur.

HTML burde vel da være så generisk og fjernet fra CSS som mulig, og CSS burde vel ikke blandes inn i strukturen?

 

Koden vi diskuterer bruker klasser som .table og .row og .cell, som berører hva jeg mener er problemet. Her synes jeg ikke man skiller HTML og CSS på en god måte. Det virker mer som at CSS er brukt til å gjenskape noe man tidligere har skapt i tabeller (men siden «tabeller er så 2001», har man valgt å gjøre det i CSS).

 

Slik jeg oppfatter best practise CSS og HTML er det en annen bruk som er optimal. Derfor står jeg fortsatt fast på at om målet er å lage en tabell, så kan man like gjerne bruke en tabell. Poenget med HTML og CSS er ikke å lage ekstra, unødvendig, kode for å tvinge frem et resultat. Poenget er vel å gjøre ting frittstående, mer tilgjengelig og renere? Når man blander inn spesifikke klassenavn, som beskriver hvordan man ønsker at HTMLen burde vært, og tukler med måten W3C beskriver at forskjellige elementer skal rendres på - da mener jeg man ikke har forstått hva som ligger til grunne for argumentet «tabeller er så 2001», og at man lager unødvendig bry for seg selv.

 

Det jeg ønsker å understreke er den ideen og tilnærmingen som frontes av prosjekter som http://www.csszengarden.com/, bedre beskrevet i denne artikkelen: http://woork.blogspot.com/2008/11/css-coding-semantic-approach-in-naming.html

Lenke til kommentar

Slik jeg ser det er det ikke helt gunstig å endre rendringen av elementer slik du beskriver (med display:inline på DIV, display:list-item på P og display:block på feks SPAN).

 

Om man må endre hvordan layout rendres så radikalt, synes jeg det er et signal om at HTML og content i utgangspunktet ikke er gjennomtenkt nok, og at man prøver gjøre opp for manglende fundament ved å male det i fine farger.

"Gunstig" er ikke noen god beskrivelse nei. For de som ikke forstår problemstillingen vil fort vekk "tvilsomt" ende opp som god beskrivelse, men for de av oss som forstår hva som er hva rundt og hvordan de forskjellige tingene her er ment å brukes, vil nok heller "irrelevant" være beskrivelsen.

Disse endringene går også utover andre ting, som feks tilgjengelighet. Skjermlesere, userstyles ol. får unødvendig med «støy» når de skal tolke sidene og man lager problemer for seg når en skal tilpasse sidene til ulike medier og browsere.

Dette er bra argumentert for hvorfor "riktig" HTML er bra og viktig, men det fungerer ikke som et argument mot å bruke CSS til å endre hvordan elementer brukes i layout.

«Tabeller er så 2001» er ikke et argument for å gå bort fra hvordan dataen er presentert på best måte. At tabeller ikke skal brukes til layout, betyr ikke alt all layout skal gjøres med andre HTML-elementer endret i CSS.

Da har du ikke sett poenget mitt, og neppe heller motivasjonen til CSS-arbeidsgruppa, når de gjorde "display" til en del av CSS. At du helt korrekt kan peke på to forskjellige ytterpunkter og slå fast at det er to dårlige fremgangsmåter, betyr ikke at det ikke finnes gode/smarte/riktige bruksområder i mellom.

 

Og nei, ingenting av det jeg skriver er et argument for "å gå bort fra hvordan dataen er presentert på best måte" - heller tvert imot.

Har man griddata er tabell fortsatt beste metode.

Kort og greit: Skal dataen din vises som tabell, bruk tabell. Skal det være en liste, bruk en liste.

Det viser egentlig bare din manglende innsikt i det du argumenter for (og som jeg er enig i): Ja, hvis innholdet er tabulært, så er det <table> som skal brukes. Men, nei, hvis greia er at innholdet skal ha grunnleggende layout ala en tabell, så er det ikke nødvendigvis <table> som skal brukes.

 

Det er jo dette som er hele fundamentet bak HTML og CSS!

Slik jeg forstå det du skriver, er vi enige. Så la meg utdype hva jeg mener:

 

Du understreker som meg at CSS er for visuell identitet, og at HTML er for struktur.

HTML burde vel da være så generisk og fjernet fra CSS som mulig, og CSS burde vel ikke blandes inn i strukturen?

Enig. Er på nettopp det grunnlaget jeg sier at "display:table;" (og "display:*;" i det hele tatt) er rimelig uproblematisk å bruke. For selv om selve ordet som brukes er "table", så er det rett og slett en helt annen greie enn HTML-tabeller, som er irrelevant i forhold til problemstillingen rundt hvordan man skriver HTML.

Selvfølgelig er dette ingen som helst grunn til å senke kvaliteten på markup/HTML.

 

Koden vi diskuterer bruker klasser som .table og .row og .cell, som berører hva jeg mener er problemet.

Ok, forholdt meg bare til akkurat de ordene som ble skrevet i innleggene jeg. Er vertfall hjertens enig i at den fremgangsmåten du referer til der er tilsvarende problematisk som misbruk av <table>.

 

Slik jeg oppfatter best practise CSS og HTML er det en annen bruk som er optimal. Derfor står jeg fortsatt fast på at om målet er å lage en tabell, så kan man like gjerne bruke en tabell.

Det er bare det at man lager ikke en tabell selv om man setter display:table;! Det eneste man gjør er at man tar i bruk en grunnleggende layout-struktur som (tilfeldigvis) tilsvarer det man er vant til fra den beryktede "tabellsuppa". Resultatet trenger jo ikke en gang å ligne på en tabell, men kan jo f.eks brukes til helt vanlige multi-kolonne-design.

 

Det er så "enkelt" som at man bruker den HTML-strukturen som best reflekterer innholdet mest mulig uavhengig av hvordan man ser for seg designet - er det tabulært innhold så er det antagelig <table> som passer, hvis ikke må man finne noe annet som passer. (der skjønner jeg at vi er helt enig)

Hva man deretter gjør i CSS er rett og slett irrelevant! (der finner jeg det uklart hva du egentlig mener.)

Lenke til kommentar

...

Hva man deretter gjør i CSS er rett og slett irrelevant! (der finner jeg det uklart hva du egentlig mener.)

Kort fortalt er hva jeg mener at man ikke burde endre for mye på standardiserte elementer med CSS, bare fordi man har mulighetene til det. Som for eksempel å omdefinere hvordan elementer tegnes opp iht. W3C, eksempelvis SPAN[style=display;block] og P[style=display:inline], når dette kunne vært unngått ved å tenkte nøyere gjennom HTML strukturen.

(Skjermlesere vil fortsatt her vektlegge P som en paragraf, mens det visuelt kanskje nå er gjort om til en liste, et sitat eller noe annet som ikke burde vektlegges som et avsnitt.)

Lenke til kommentar

... når dette kunne vært unngått ved å tenkte nøyere gjennom HTML strukturen.

 

Som jeg mener å ha vært bra klar på: Påstanden min er basert på at HTML allerede er helt i tråd med "best practices".

Mener du at poenget ditt holder allikevel, så synes jeg det er på tide med et konkret eksempel på hvordan dette er problematisk.

Ta for eksempel et tre som dette:

<body>
 <div id="primary-navigation"/>
 <div id="content"/>
 <div id="sidebar"/>
</body>

Hvilke problemstillinger vil kunne oppstå hvis man setter display:table-row på body og display:table-cell på body > div?

Og hvis noen, så hvordan hadde ting vært noe bedre om man heller bare hadde satt "float:left"; på body > div?

 

(Ja, du er velkommen til å velge et eget eksempel.)

 

(Skjermlesere vil fortsatt her vektlegge P som en paragraf, mens det visuelt kanskje nå er gjort om til en liste, et sitat eller noe annet som ikke burde vektlegges som et avsnitt.)

Enten så er <p> det beste mulige markup-valget (og da det som gir skjermleseren best grunnlag for å videreformidle innholdet), ellers så er det allikevel ikke i CSS-delen hvor problemet ligger.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...