Ik vroeg mij al af waarom ik opeens weer met het nodige bezoek werd vereerd vanaf dit forum
Het probleem is IE dat zoals bekend weinig snapt van stylesheets. In mijn menu maak ik gebruik van een div.article waarin vervolgens alles van phpBB terecht moet komen. Deze is als volgt gedefineerd:
Code: Selecteer alles
div.article {
position: absolute;
overflow: hidden;
top: 120px;
left: 20px;
right: 240px;
text-align: justify;
padding-bottom: 10pt;
}
Alle normale browsers snappen hieruit dat de marge links 20 pixels wordt en rechts 240 pixels (zodat daarnaast netjes de div met het menu terecht komt). Ofwel daarmee ligt voor deze browsers de breedte dus vast, gewoon wat overblijft tussen deze marges...
Alleen IE doet alsof zijn neus bloedt. Hé, geen breedte. Ach, laat ik dan gewoon doen wat ik leuk vindt. Stupide browser! De oplossing is dus de breedte voor IE gaan vastleggen. Alleen is die dus voor elke surfer anders. Nu snappen IE gebruikers weinig van veilig surfen, ofwel je kan er vanuit gaan dat zij Javascript hebben aanstaan. En dan kan de benodigde breedte gewoon bepaald worden als volgt:
Code: Selecteer alles
<!--[if IE]>
<script type="text/javascript">
if (document.documentElement && document.documentElement.clientWidth) {
myWidth = document.documentElement.clientWidth; }
else if (document.body && document.body.clientWidth) {
myWidth = document.body.clientWidth;
}
myWidth = myWidth - 260 - 16;
document.writeln('<style type="text/css">');
document.writeln('div.article {');
document.writeln(' width: ' + myWidth + 'px;');
document.writeln('}');
document.writeln('</style>');
</script>
<![endif]-->
De eerste en laatste regel is meteen een truc om te zorgen dat alleen IE dit script uitvoert. Zijn de zogenaamde conditional comments. Browsers die zich voordoen als IE zien dit nog steeds als commentaar, dus die kunnen we hiermee ook mooi onderscheiden. Het voorkomt ook dat ik het Javascript onder allerlei browsers moet gaan testen, alleen IE is nu afdoende.
Voor bovenstaande door in overall_header.tpl en ook dit probleem is weer opgelost

.