Probleme bei "strict"
Ronny
- html
0 Struppi0 Thomas Luethi0 Ronny0 Thomas Luethi0 Struppi
0 Jeena Paradies0 Ronny0 Elessar0 Ronny
Hallo
Ich bin grad dabei eine strict valide Website zu bauen und bin auf folgendes Problem gestossen:
Sobald ich die erforderliche strict Notation in die erste Zeile im Code einfuege, erscheint ein vertikaler Scrollbalken, wenn die Datei in einem Frame angezeigt wird.
Kann mir jemand sagen, warum das so ist?
Hab hier mal kurz den Code aufs noetigste reduziert dazugefuegt:
test.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Ronny's Test Site</title>
</head>
<frameset cols="50%,50%">
<frame src="test1.html">
<frame src="test2.html">
</frameset>
</html>
test1.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
<!--
-->
</style>
</head>
<body>
<div style="background-color:#000000; width:100%; height:1000px; color:#FFFFFF">
In diesem Frame erscheint beim IE ein vertikaler Scrollbalken.
</div>
</body>
</html>
test2.html:
<html>
<head>
<style type="text/css">
<!--
-->
</style>
</head>
<body>
<div style="background-color:#000000; width:100%; height:1000px; color:#FFFFFF;">
... in diesem Frame nicht.
</div>
</body>
</html>
<div style="background-color:#000000; width:100%; height:1000px; color:#FFFFFF">
In diesem Frame erscheint beim IE ein vertikaler Scrollbalken.
Das liegt am fehlerhaften Boxmodell des IE http://www.css4you.de/wsboxmodell/index.php#browser (ich hoffe das stimmt was da steht, ich hab eben nur mal schnell gegoogled ohne genau nachzulesen)
Struppi.
Hallo,
<div style="background-color:#000000; width:100%; height:1000px; color:#FFFFFF">
In diesem Frame erscheint beim IE ein vertikaler Scrollbalken.
Wie hoch ist denn Dein Frame?
Mit anderen Worten: Was hast Du fuer einen riesen Monitor? ;-)
Es ist doch normal, dass es Scrollbalken gibt, wenn der
Inhalt groesser ist als das Fenster bzw. der Frame, der
ihm zur Verfuegung steht.
test2.html:
<html>
<!-- SNIP -->
<div style="background-color:#000000; width:100%; height:1000px; color:#FFFFFF;">
... in diesem Frame nicht.
Diese Seite (ohne DOCTYPE-Angabe) schaltet die Browser,
die eine Unterscheidung machen, in den Quirks Mode.
Also auch den MS IE. Stichwort: Doctype Switching.
http://gutfeldt.ch/matthias/articles/doctypeswitch.html
Das erklaert vermutlich den Unterschied zur ersten Seite,
die den Standards Mode aktiviert.
btw. test1.html und test2.html sind beide nicht valide.
Das TITLE-Element fehlt.
Gruesse,
Thomas
Wie hoch ist denn Dein Frame?
Mit anderen Worten: Was hast Du fuer einen riesen Monitor? ;-)
Die Angabe mit 1000px ist bloss bei dem Beispiel hier gewaehlt. 1000 laesst sich nunmal schnell tippen.
Es ist doch normal, dass es Scrollbalken gibt, wenn der
Inhalt groesser ist als das Fenster bzw. der Frame, der
ihm zur Verfuegung steht.
Klar, aber der Inhalt bei test1 ist nunmal nicht groesser als das Fenster, und darum sollte da auch kein Balken sein.
Diese Seite (ohne DOCTYPE-Angabe) schaltet die Browser,
die eine Unterscheidung machen, in den Quirks Mode.
Also auch den MS IE. Stichwort: Doctype Switching.
http://gutfeldt.ch/matthias/articles/doctypeswitch.html
Das erklaert vermutlich den Unterschied zur ersten Seite,
die den Standards Mode aktiviert.
Aha, klingt dieSache mit den Modes und erklaert auch das Problem, aber eine Loesung ist nicht dabei, oder hab ich sie nur ueberlesen?
btw. test1.html und test2.html sind beide nicht valide.
Das TITLE-Element fehlt.
Hab ich bei dem Beispiel weggelassen jetzt nur weggelassen.
THX
Ronny
Hallo,
Aha, klingt dieSache mit den Modes und erklaert auch das Problem, aber eine Loesung ist nicht dabei, oder hab ich sie nur ueberlesen?
Du koenntest den MS IE absichtlich in den Quirks Modus schicken.
Das finde ich allerdings keine gute Idee.
Gruesse,
Thomas
Du hast noch nicht erwähnt, dass du den IE 5 meinst, oder?
Es ist doch normal, dass es Scrollbalken gibt, wenn der
Inhalt groesser ist als das Fenster bzw. der Frame, der
ihm zur Verfuegung steht.Klar, aber der Inhalt bei test1 ist nunmal nicht groesser als das Fenster, und darum sollte da auch kein Balken sein.
weil, wie ich schon erwähnte der IE einen Bug im Boxmodell hat.
Ich hab nochmal gesucht und vielleicht hilft dir die Seite mehr http://www.fabrice-pascal.de/artikel/ie5boxmodel/ als die andere.
eventuell ist aber Jeenas Vorschlag schon ausreichend.
Struppi.
Hallo,
Sobald ich die erforderliche strict Notation in die erste Zeile im Code einfuege, erscheint ein vertikaler Scrollbalken
Ich weiß nicht ob das hilft, aber hast du schon mal für
html, body {
margin:0;
padding:0;
}
ausprobiert?
Grüße
Jeena Paradies
Sorry Leute, ich seh grad, dass ich im ersten Posting einen entscheidenden Schreibfehler hab:
Bei ploetzlich auftretenden Scrollbalken meine ich natuerlich NICHT den vertikalen, SONDERN den zum horizontalen srcollen.
Der Fehler trit bei mir beim IE6.
Genauere Beschreibung:
Wenn der Inhalt der Seite im Frame hoeher ist (wird), als das Browserfenster, fuegt mein IE6 richtigerweise einen vertikalen Scrollbalken ein. Damit verringert sich aber der in der Breite verfuegbare Platz und der IE6 fuegt automatisch auch einen horizontalen Scrollbalken ein.
Dieses Phaenomen tritt aber nur auf, wenn die Seite mit dem strict-Doctype definiert ist UND sich in einem Frame befindet.
Dieses Phaenomen tritt aber nur auf, wenn die Seite mit dem strict-Doctype definiert ist UND sich in einem Frame befindet.
und was klappt nicht an dem Vorschlag von Jeena? (liest du überhaupt was man dir schreibt?)
Struppi.
Dieses Phaenomen tritt aber nur auf, wenn die Seite mit dem strict-Doctype definiert ist UND sich in einem Frame befindet.
und was klappt nicht an dem Vorschlag von Jeena? (liest du überhaupt was man dir schreibt?)
Oh, ich merk grad ich hab's aus versehen im Mozilla getestet (natürlich keine scrollbalken).
Aber im IE sind ja doch welche.
Struppi.
Wenn der Inhalt der Seite im Frame hoeher ist (wird), als das Browserfenster, fuegt mein IE6 richtigerweise einen vertikalen Scrollbalken ein. Damit verringert sich aber der in der Breite verfuegbare Platz und der IE6 fuegt automatisch auch einen horizontalen Scrollbalken ein.
Dieses Phaenomen tritt aber nur auf, wenn die Seite mit dem strict-Doctype definiert ist UND sich in einem Frame befindet.
also du hast 2 Möglichkeiten.
1. du sagtst im Frameset explizit scrolling="yes"
2 du verwendest einen anderen DOCTYPE
z.b. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
mit Nachteilen http://www.php-resource.de/forum/showthread/t-28518.html
Struppi.
Hi!
test.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Ronny's Test Site</title>
</head>
<frameset cols="50%,50%">
<frame src="test1.html">
<frame src="test2.html">
</frameset>
</html>
Mal was ganz anderes. Du darfst bei strict gar keine Frames verwenden.
http://selfhtml.teamone.de/html/referenz/varianten.htm#strict_nicht_erlaubt
Für Frames gibt's ja extra frameset
Mfg
Elessar
Mal was ganz anderes. Du darfst bei strict gar keine Frames verwenden.
http://selfhtml.teamone.de/html/referenz/varianten.htm#strict_nicht_erlaubt
Die HAuptseite ist ja auch garnicht strict definiert, sondern mit frameset.
Ronny