Zum Inhalt springen

Problem mit Quirkmodus?

Erstellt am 7. September 2007 · 5 Antworten · letzte Antwort am 10. September 2007

Tags: Frage

typo3_hp ·

Hallo ich habe eine Website http://www.develop.cgsolutions-online.de und dort wird die Website im Firefox richtig dargestellt im IE aber erscheint der footer (Die Leiste mit Copyright, Impressum...)anstatt rechtsbündig unter dem Content links unter der Navigation.

Ich vermute das der IE durch

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

in den Quirkmodus geht.

Hat jemand eine Idee?

Danke und Gruß

chris

jweiland ·

Den IE in den Standardmodus zwingen:

# dafür sorgen, dass MSIE nicht im Quirks-Modus läuft
[browser = msie]
config.doctypeSwitch = 1
[global]

Jochen Weiland

typo3_hp ·

VIelen Dank aber ich habe diese Zeilen bereits in meinem TypoScript Setup eingefügt. und der Fehler ist immer noch so...

Noch Ideen?

Danke

SLAng ·

ALso eigentlich ist das doch nur für den IE 6 nötig. Der IE 7 läuft doch mit der korrekten deklaration im Standardkompatiblen Modus.

Also:

[browser = msie6]
config.doctypeSwitch = 1
[global]

Dann wird der Doctype nur geswitcht, wenn es der IE 6 ist.

@ typo3_hp:

Wenn ich das richtig weiß, musst du darauf achten, dass du das nicht innerhalb von Klammern stehen hast. Ansonsten funktioniert das ohne Probleme. Wenns im Setup steht wird die Reihenfolge des Doctype geändert.
Kannst du im Quelltext sehen, bzw auch mit nem kleinen Script:

<script type="text/javascript">
alert(document.compatMode);
</script>

kannst du per page.headerData einbinden.

Wenn nötig auch noch per Funktion:

<a href="javascript:alert(document.compatMode)">Klick</a>

(stammt von css4you und kann dort auch nachgelesen werden Link

typo3_hp ·

ich weiß woran es liegt.
Sobad ich bei der Extension "qcom_htmlcleaner" das Häckchen bei "Enable xhtml cleaning" wegmache kommt das Copyright auch im IE7 richtig. Allerdings ist meine Website dann nicht mehr Valid!

Wenn das Hächcken weg ist sehen die ersten Zeilen so aus:

<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>

Wenn das Häckchen drinnen ist sehen sie so aus:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

WIe kann ich es machen das meine Website Valid ist UND richtig angezeigt wird?

Danke lg chris

SLAng ·

Also...

Wenn du den Doctype deines Dokuments gar nicht definierst, dann wird per default auch der Standard Doctype eingebaut. Mit diesem kann deine Seite nie valide werden, da du eigentlich alle Browser in der Quirksmode schickst.

Du solltest dir mal überlegen welcher Deklaration du folgen möchtest

Wenn du HTML schreibst, dann brauchst du auch einen HTML-Doctype.
Wenns XHTML sein soll, dann eben einen XHTML-Doctype

Also um eine Seite im Standardkonformen-Mode zu erreichen, musst du im Doctype wenigstens eine URL zur Refferenz angeben, für HTML 4.0 trans wäre dass dann z.b:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Per TypoScript kannst du das folgendermaßen im Setup einbauen:

config.doctype = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Damit ist es recht einfach eine Seite valide zu bekommen, da vieles, was schon als deprecated gilt noch akzeptiert wird.
Du bekommst allerdings schon Probleme, wenn du die Ext metatags verwendest, da die per default XHTML generiert.

Also meine Empfehlung ist den Doctype auf XHTML einzustellen, zum Beispiel als

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

Das erreichst mittels Einstellung im Setup mit

doctype = xhtml_trans
xhtml_cleaning = all

Mit xhtml_cleaning wird der restliche Quelltext soweit aufbereitet, das dieser XHTML-Konform ist. das heißt aus einem <br> wird ein <br_ /> uswusf

Der IE6 versteht diesen Doctype allerdings nicht/falsch, deshalb musst du dort eine Änderung hinzufügen:

[browser = msie6]
config.doctypeSwitch = 1
[global]

Dadurch wird die Postion von

<?xml version="1.0" encoding="iso-8859-1"?>

geändert. Dies wandert dann wenn der Browser IE6 ist unter die Doctype Deklaration.
Die meisten Extension sind außerdem XHTML-Konform geschrieben, was dir einen weiteren Vorteil bringt.
Die Extension qcom_htmlcleaner kenne ich nicht und hab ich persönlich zum Vaidieren auch noch nicht benötigt.