09. september 2003 - 16:09Der er
38 kommentarer og 1 løsning
Dillema: Kompatibilitet eller validitet?
Hej. Jeg har problemer med min hjemmeside http://www.xcrew.dk Problemet er at ihvertfald Mozilla og Netscape ikke viser min side korrekt, fordi jeg har valgt at gøre min hjemmeside w3c kompatibel. Det er fordi w3c XHTML validatoren har fortalt mig at jeg ikke må sætte height="100%" på en <table>, og bad mig derfor flytte denne deklaration ind i CSS, dette gjorde jeg så og derefter blev min hjemmeside både W3C XHTML og CSS valid, men nu virker min hjemmeside ikke i både Netscape, mozilla og ældre Internet Explorer browsere hvilket (som i selv ved) er et problem i en gigantisk størrelsesorden!
Er der nogle der ved hvordan jeg gør sådan så min hjemmeside både kan valideres af W3C og så den virker i all nyere browsere?
Table height i % har sgutte aldrig været tilladt. Den udvider sig pænt efter indholdet. Derfor viser din Netscape det meget kort.
Anyway så må det optimale være noget alle kan håndtere. Derfor må svaret på dit spørgsmål være kompabitilitet. Det betyder så at valideringen måske ikke er helt med, men tilgengæld kan du glæde alle dine brugere.
hoejrup> nej, men det er da altid rart hvis en bruger sidder på et bibliotek hvis computere minder om noget der stammer fra stenalderen og har IE 4.0 installeret.
Hvis der er nogle Mozilla brugere som også har Internet Explorer 6 installeret, så prøv at se min hjemmeside i dem begge to, og sammenlign derefter jeres indtryk.
Synes godt om
Slettet bruger
09. september 2003 - 16:26#8
Har Mozilla 1.1 og IE6 og de er absolut ikke ens.
Skidt med validering, den har ikke noget med virkeligheden at gøre alligevel.
Det kunne godt se ud til at du har nogle margins, der ikke er sat til nul. Jeg ville ikke tage så let på validering som el barto ligger op til. Browser-quirks opstår jo netop ved det "gæt-værk" de bliver udsat for. hold fanen højt og begynd at vurdér hvordan det kan gøres. (ps: test altid html i netscape og javascript i IE, da de respektivt er de mest kræsne)
nikolajdu > det er jo det jeg siger, jeg flyttede height fra HTML til CSS, så det nu står i min css at den skal være 100% høj, og dette virker KUN i IE6 (og nogle få andre browsere som følger w3c standarten)
tony_breindal> Men så bliver det jo til et helt tredje desing, jeg vil gerne beholde designet som det er, så den viser det ens i ALLE browsere uden at det skal gå ud over min w3c validation.
ldrada - Den må table height 100% må du vidst godt dokumentere for mig. Validatoren tror med garanti at det er en klasse du har defineret og ikke en tabel attribut.
det er fordi procent ikke skal opfattes sådan som du tror. en procent-værdi i CSS betyder IKKE procent af skærmhøjden, men derimod relativ værdi i forhold til en nedarvet værdi. F.x. .lille {font-size:10px;} .stor {font-size:220%;} <div class="lille">Jeg er ikke så stor - blot 10px, men <span class="stor">jeg er til gengæld vokset til 22px.</span></div>
Kan du jo så strengt taget ikke sådan som jeg ser det. Et trick jeg lige kunne finde på er at sætte height:100%; ind i body, altså body { height:100%; .... } , men jeg tvivler på det dur. Det er vist en script opgave.
script? ej lol, man skal da ikke tage javascript i brug, bare fordi man gerne vil have en 100% høj tabel som forsvarligt kan CSS valideres. :( eller hvad?
bare for at gøre det klart: min table som skal være 100% høj, hedder "fulltable" i mit stylesheet (altså det er en class som har navnet fulltable), som jeg gerne vil have til at være 100% højt i forhold til browservinduet.
jamen jeg er fuldstændig klar over hvad du mener. du får lige et link her: http://www.w3.org/TR/REC-CSS2/visudet.html#the-height-property som du kan se vil CSS kun tage hensyn til en procent-værdi når (og kun når) den omsluttende blok har en eksplicit sat højde. For at gentage Nikolajdu så er det Internet Explorer der opfatter % forkert. Det er nemt at scripte.
og den tabel som skal være 100% høj og bred ser sådan ud: <table cellpadding="0" cellspacing="0" class="fulltable">
Hvilket valideres af w3c, men ikke virker i mozilla. hvis jeg skriver <table cellpadding="0" cellspacing="0" height="100%"> så virker det i alle browsere, men valideres ikke af w3c.
jeg gentager: % skal ikke opfattes som procent af skærmhøjden. browseren kan jo ikke gætte hvornår du mener procent af den omsluttende blok og hvornår du mener procent af skærmhøjden. det du har lavet er korrekt, du har bare misforstået hvad det betyder. derfor opponerer jeg kraftigt imod, at du siger det ikke virker i Mozilla, blot fordi den ikke kan gætte det resultat du ønsker.
kan du ikke bare sætte document.getElementsByTagName("TABLE")[0].style.height=document.body.clientHeight+"px"; ind på den første linje i getStyle() funktionen? så vidt jeg kan se løser det dit problem.
jeg har været bortrejst hele week-enden. det kunne bestemt ikke skade at mail'e w3c og spørge dem om de har overvejet at lave en pendant til height% og width% som det bliver beregnet ved attributer. med hensyn til 100% skærmhøjde vil de nok svare at det skal gøres med auto, da dette skal opfattes sådan, at elementet må bruge al tilgængelig plads. Hvis browsere ikke opfylder specifikationskravene er IKKE w3c's bord.
=maddog= læg et svar. Vil prøve din Javascript løsning, men selv hvis den virker, så kan Mozilla, NS og andre lign. brugere rende mig et stykke, de er selv uden om det.
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.