meeste mensen weten wel dat ie het css boxmodel verkeerd interpreteerd, wat wel gefixed is sinds versie 6.zoveel, mits maar nog steeds suf afhankelijk van je doctype.
Als je bijvoorbeeld een xhtml transitional (of strict, boeit niet) document begint met <?xml version="1.0" encoding="iso-8859-1"?>, doet ie het weer niet goed.
Ondertussen weten we hier wel redelijk omheen te werken met trucjes als hier beschreven: http://www.glish.com/css/hacks.asp
(dit effe ter info van mensen die hiermee zitten te worstelen) Ik ga nu uit van het w3c boxmodel dus width = content width van het element, als je daarbij padding, border optelt krijg je de breedte die met this.offsetWidth op te vragen valt (nou weet ik effe niet zeker of de margin er ook bij moet, niet toch?) Backgrounds horen tot de buitenrand van de border te lopen (alleen ie doet dit goed)
Waar ik nu tegenaanloop is bijvoorbeeld het volgende probleem
• een div met rondom een marge van 50 px, border van 10px en verder de pagina vullend. In het foute ie boxmodel was dit gewoon van je element width en height op 100% zetten, dat werkt nu niet omdat je dan breder uitkomt dan je venster. Ik wil dus van buiten naar binnen een hierarchie creeren, maar dat lukt alleen maar via onresize javascript gepruts volgens mij
vervolgens lijken hoogtes ook een probleem. height: 50px doet ie wel, 50% niet (dit komt natuurlijk doordat het parentelement, de body geen hoogte heeft (tenminste die staat op auto) de hoogte van de body een waarde geven werkt, maar als je die op 100% zet krijg je meteen scrollbars vanwege de padding van je body, je boxheight wordt dan groter dan je scherm)
met het fouteboxmodel van ie gaat dit allemaal zoals bedoelt. volgende css illustreert de boel:
container 1 heeft alleen een hoogte als je de body een hoogte geeft (voor breedte gaat dit erhaal overigens weer niet op, zouden hoogte en breedte niet equivalent moeten zijn?), maar body een hoogte geven levert scrollbars. Bovendien zijn beide containers breder dan bedoelt, logisch, maar hoe los ik het op?
eigenlijk zou je van die procenten enkele pixels af moeten kunnen trekken ofzo, hoe is zoiets nou op te lossen? Want ik raak zo weer snel geneigd tabellen te gaan gebruiken.
vragen zijn dus:
• welke browser doet wat goed volgens de (w3c) regels
• hoe krijg ik wat ik wil, nl een meeschalende div, lijkt alleen te werken met het foute boxmodel
Als je bijvoorbeeld een xhtml transitional (of strict, boeit niet) document begint met <?xml version="1.0" encoding="iso-8859-1"?>, doet ie het weer niet goed.
Ondertussen weten we hier wel redelijk omheen te werken met trucjes als hier beschreven: http://www.glish.com/css/hacks.asp
(dit effe ter info van mensen die hiermee zitten te worstelen) Ik ga nu uit van het w3c boxmodel dus width = content width van het element, als je daarbij padding, border optelt krijg je de breedte die met this.offsetWidth op te vragen valt (nou weet ik effe niet zeker of de margin er ook bij moet, niet toch?) Backgrounds horen tot de buitenrand van de border te lopen (alleen ie doet dit goed)
Waar ik nu tegenaanloop is bijvoorbeeld het volgende probleem
• een div met rondom een marge van 50 px, border van 10px en verder de pagina vullend. In het foute ie boxmodel was dit gewoon van je element width en height op 100% zetten, dat werkt nu niet omdat je dan breder uitkomt dan je venster. Ik wil dus van buiten naar binnen een hierarchie creeren, maar dat lukt alleen maar via onresize javascript gepruts volgens mij
vervolgens lijken hoogtes ook een probleem. height: 50px doet ie wel, 50% niet (dit komt natuurlijk doordat het parentelement, de body geen hoogte heeft (tenminste die staat op auto) de hoogte van de body een waarde geven werkt, maar als je die op 100% zet krijg je meteen scrollbars vanwege de padding van je body, je boxheight wordt dan groter dan je scherm)
met het fouteboxmodel van ie gaat dit allemaal zoals bedoelt. volgende css illustreert de boel:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| body { margin: 0px; padding: 50px; height: 100%; } div { border: 10px solid black; } div.container1 { width: 100%; height: 50%; } div.container2 { width: 100%; height: 50px; margin: 0px; } |
container 1 heeft alleen een hoogte als je de body een hoogte geeft (voor breedte gaat dit erhaal overigens weer niet op, zouden hoogte en breedte niet equivalent moeten zijn?), maar body een hoogte geven levert scrollbars. Bovendien zijn beide containers breder dan bedoelt, logisch, maar hoe los ik het op?
eigenlijk zou je van die procenten enkele pixels af moeten kunnen trekken ofzo, hoe is zoiets nou op te lossen? Want ik raak zo weer snel geneigd tabellen te gaan gebruiken.
vragen zijn dus:
• welke browser doet wat goed volgens de (w3c) regels
• hoe krijg ik wat ik wil, nl een meeschalende div, lijkt alleen te werken met het foute boxmodel