17. juli 2003 - 08:57Der er
30 kommentarer og 1 løsning
Side ser fortsat ikke ens ud i forskellige browsere
Jeg bøvler stadig med at "konvertere" mine tabeller til CSS, og det går nogenlunde - men alligevel ikke helt. :o)
Hvis I ser på http://www.ejstrup-kongskov.dk/test/ i IE og Opera, så ser det ret fornuftigt ud, men jeg vil gerne have sådan at der en margen på 5px rundt om det hele, men det virker ikke helt.
På elementer #leftmenu og #content har jeg sat height til 100%, men det er som om at den beregner højden fra der hvor de to elementer er placeret - dvs. at højden egentlig bliver højere end selve skærmbilledet - hvordan kan jeg lave det anderledes?
Jeg har sat bredden til 640px på #title elementet, og i IE og Opera bliver det sådan at det orange felt bliver 638px og så rammen tager 1px i hver side. Men i Netscape og Mozilla fylder det orange felt 640px - dvs. at rammerne kommer "udenpå" - hvordan kommer jeg udenom det for det samme sker ved #content elementet også?
Det du gerne vil have, er det ikke noget lignende: Hele tabellen skal altid fylde 100% af browservinduet og det orange i toppen skal have en fast højde (og bredde naturligvis)?
Jo, altså højden (også bredde) skal beregnes af samtlige elementer (dvs. det orange samt de grå felter) og så lave en 100% højde på baggrund af disse - ikke som nu hvor siden går ud over vinduet.
Forklaring: 1.Når man skriver 100% i CSS så er det 100% af browser-vinduets størrelse. og det er uanset placering af elementet.
2.Størrelsen af et element regnes således ud BorderWidth = BorderLeftWidth + PaddingLeft + ContentWidth + PaddingRight + BorderRightWidth. Men det er faktisk IE der gør det forkert, har man sat bredden på et element, så smider den resten inden i og der er forkert i følge standarden.
Løsning: 1. For at opnå det du ønsker, så placer din div i top:0; giv den derefter en border-top: på 5px solid #farve;. Du kan styre div'ens synlige størrelse med border. For at gøre dette skal du også sætte din body til at have 100% i højde.
2. For at få browsere til at forstå koden ens kan du bruge dettet trick. box-sizing: border-box;, -moz-box-sizing: border-box; eller box-sizing: content-box;, -moz-box-sizing: content-box;. Det er godt nok ikke valid CSS men mon ikke det bliver det i CSS3
Det lyder som om pixeldude er temmelig ferm til det der med boxsizing, - det vil jeg ikke gøre mig klog på. Hvis du stadig vil anvende din metode med boxene, så tror jeg bare du skal nærlæse teksten i den url pixeldude har sendt.
Jeg ville nu stadig anvende tabeller i stedet, - hvis der altså ikke er tale om et større site. Alternativt er frames jo også en mulighed.
Arrrgh ... frames. Det sagde du da vel ikke, jeg troede det ord var glemt. Tabeller kan også gå til nød bortset fra at det er et helvedes arbejde hvis man skal skifte design. Udviklingen går jo i retning af at man skiller indhold og design for sig. Tabeller er som sagt til visning af tabulære data.
Quote W3C: "Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media. Additionally, when used with graphics, these tables may force users to scroll horizontally to view a table designed on a system with a larger display. To minimize these problems, authors should use style sheets to control layout rather than tables."
Tak jeg prøver lige når jeg kommer hjem igen. Ja, jeg var inde og kigge på deres side og så at box-sizing står som "draft", så det gør jo ikke noget at være lidt på forkant. :o)
Nu hvor jeg har dig, så har jeg faktisk lige to spørgsmål. - hvad synes du er bedst at bruge til skriftstørrelse px eller pt? - mht til farver skal man så gå efter deciderede web colors ala http://www.visibone.com/colorlab/?
Hvad angår farver, så er den rigtige måde at gøre det på sådan her #div {color: rgb(255,0,0)}. Men det er også ok at skrive HEX koderne sådan her #div {color: #ff0000}. Ved fontene bruger jeg altid px, jeg ved faktisk ikke hvorfor, men pt er vist det mest rigtige da jeg ikke kan find px i standarden.
Nå vi nu snakker farver så tag lige et kig på http://www.colormatch.dk/ som rigtig lækker når man skal finde nogle farver der passer godt sammen.
OK, nu har jeg lige prøvet og umiddelbart ser det fint ud - indtil teksten i content bliver længere end skærmbilleder så ser det ikke så godt ud mere -> http://www.ejstrup-kongskov.dk/test/test.php
Jeg har siddet og roddet lidt frem og tilbage og tænkte på om man måske kunne bruge overflow funktionen til noget? Hvis jeg bruger auto så kommer der blot en scrollbar inde i selve content elementet - dog ville jeg allerhelst blive fri for denne (aht. til designet) og så bruge den alm. windows scrollbar i højre side!
I den div hvor texten er tilføj en overflow:auto så den ser sådan her ud: #content { position: absolute; height: 100%; width: 430px; top: 0px; left: 50%; margin-left: -215px; border-top: 20px solid black; border-bottom: 20px solid black; border-left: 1px solid black; border-right: 1px solid black; z-index: 1; box-sizing: border-box; -moz-box-sizing: border-box; overflow:auto; }
Unskyld for al den spam, men nu tror jeg at jeg er med på grunden til de 20px og z-index, men jeg kan stadig ikke blive klog hvordan jeg styrer højden på top og bottom, da dit eksempel hos mig giver en hvid kant på 19px...
Jeg oprettede et nye spm på det med div'en, så det har jeg nu fået løst, men jeg takker mange gange for hjælpen med det andet!
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.