Welchen Doctype
Alex
- html
Hallo
ich habe jezt meine seite so hinbekommen das es auf Netscape Opera und IE gleich aussieht (naja bis auf kleinigkeiten)
Aber ich weis nicht welchen Doctype ich nehmen soll
Ich habe jezt mal im Valiadator den hier: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
genommen einmal hat er gesagt der Code ist Valide und jezt sind wieder 2 Fehler da ist das der richtige Doctype und wie kann ich die 2 Fehler beheben, so das die Seite valide ist??
Und nochwas zu Opera die <hr> linie wird im obera nicht Schwarz angezeigt sonden Grau was muss ich da tun??
Alex
Aber ich weis nicht welchen Doctype ich nehmen soll
http://www.hut.fi/~hsivonen/doctype.html
Ich habe jezt mal im Valiadator den hier: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
genommen einmal hat er gesagt der Code ist Valide und jezt sind wieder 2 Fehler da ist das der richtige Doctype und wie kann ich die 2 Fehler beheben, so das die Seite valide ist??
Könntest Du Dir bitte etwas mehr Mühe geben beim Schreiben? Dieses Kauderwelsch versteht man erst nach dem dritten Durchlesen.
Meinst Du diese Fehler?
1. Line 17, column 9: value of attribute "ID" invalid
<div id="1"></div>
^
2. Line 19, column 8: value of attribute "ID" invalid
<hr id="2">
^
Informiere Dich einfach im HTML-Standard. Das Attribut ist unter http://www.w3.org/TR/html4/struct/global.html#adef-id beschrieben, sein Format einen Klick weiter unter http://www.w3.org/TR/html4/types.html#type-name.
Und nochwas zu Opera die <hr> linie wird im obera nicht Schwarz angezeigt sonden Grau was muss ich da tun??
Mit CSS formatieren.
Gruß,
soenk.e
Hallo Alex,
Aber ich weis nicht welchen Doctype ich nehmen soll
ich nehm immer html4.01 strict
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
ich würde den mit dtd nehmen (aber natürlich auch in die Datei reinschreiben.
jezt sind wieder 2 Fehler da ist das der richtige Doctype und wie kann ich die 2 Fehler beheben, so das die Seite valide ist??
du meinst die Seite die du in dem url-Feld angegeben hast? Wenn ja: du hast als id ungültige Werte verwendet (ids dürfen nur mit einem Buchstaben beginnen) ->http://www.w3.org/TR/html401/types.html#type-name (btw: da sind (zumindest mit html4.01strict) noch 2 Fehler mehr drin). Wenn nein: welche Seite sonst?
Und nochwas zu Opera die <hr> linie wird im obera nicht Schwarz angezeigt sonden Grau was muss ich da tun??
ihm sagen, dass er sie schwarz machen soll?
Grüße aus Nürnberg
Tobias
Hallo
ja ich mein die Seite im url Feld
gut danke jezt weis ich das mit den ID's
zu <hr>
Ja ich kann mir schon denken das ich sie Schwarz machen muss habe ich ja auch sonnst würde es bei Netscape und IE ja nicht gehen oder??
mfg
ALEx
Hallo Alex,
ja ich mein die Seite im url Feld
das solltest du das nächste Mal vielleicht dazuschreiben (oder die url (als Link!) nochmal ins Posting schreiben) - dann wird das etwas klarer
zu <hr>
Ja ich kann mir schon denken das ich sie Schwarz machen muss habe ich ja auch sonnst würde es bei Netscape und IE ja nicht gehen oder??
vielleicht mag Opera dein id="2" nicht? versuchs mal mit einer anderen id, vielleicht geht es dann.
Grüße aus Nürnberg
Tobias
Hallo, Alex,
zu <hr>
Ja ich kann mir schon denken das ich sie Schwarz machen muss habe ich ja auch sonnst würde es bei Netscape und IE ja nicht gehen oder??
http://www.opera.com/docs/specs/, »Some differences from Internet Explorer and Netscape«:
»The displayed color of an 'hr' is set with the 'background-color' CSS property in Opera and Netscape 6+. In Netscape 4 and IE it is set with the 'color' property.«
Sprich: Vergebe die Farbe gleichzeitig mit color und background-color, dann sollte die Anzeige gleich sein. Beispielsweise:
hr {color:black; background-color:black; height:4px; border-style:none;}
Zusätzlich mit border zu hantieren, finde ich heikel, da MSIE (6) und Mozilla die Höhe als Gesamthöhe inklusive border verstehen, während Opera (7) height als Innenhöhe versteht. Wenn du eine durchgehende einfarbige Linie willst, schalte die Rahmenlinien ab und benutze Farbangaben und height wie im Beispiel.
Grüße,
Mathias
Hallo Mathias,
Zusätzlich mit border zu hantieren, finde ich heikel, da MSIE (6) und Mozilla die Höhe als Gesamthöhe inklusive border verstehen, während Opera (7) height als Innenhöhe versteht. Wenn du eine durchgehende einfarbige Linie willst, schalte die Rahmenlinien ab und benutze Farbangaben und height wie im Beispiel.
was meinst du jetzt, das Verhalten von Opera nur bei ganz bestimmtem doctype?
Grüsse
Cyx23
Hallo, Cyx,
Zusätzlich mit border zu hantieren, finde ich heikel, da MSIE (6) und Mozilla die Höhe als Gesamthöhe inklusive border verstehen, während Opera (7) height als Innenhöhe versteht. Wenn du eine durchgehende einfarbige Linie willst, schalte die Rahmenlinien ab und benutze Farbangaben und height wie im Beispiel.
was meinst du jetzt, das Verhalten von Opera nur bei ganz bestimmtem doctype?
Was sind für dich ganz bestimmte Doctypes? Ich gehe immer vom standardkompatiblen Modus mit voller Dokumenttyp-Deklaration aus. Im Quirks-Mode rendert Opera 7 bekanntlich weitesgehend wie MSIE.
Angenommen, es werden folgende Formatierungen vergeben:
hr {color:black; background-color:black; border-style:none; height:5px; border:5px solid red;}
In einem Dokument, welches in MSIE 6, Opera 7 und Mozilla (hier Firebird 0.6) den standards compliant mode auslöst (hier XHTML 1.0 Strict), wirken sie sich unterschiedlich aus.
Bei height:15px und gleichen border sieht es so aus:
Bei height:5px und border:10px solid red (sic, das ist exakt die Testkonfiguration):
Mit unvollständigem DOCTYPE (HTML 4.01 Transitional):
Bei height:5px und border-width:5px:
Bei height:15px und border-width:5px:
Bei height:5px und border-width:10px:
Opera 7: 15 Pixel hoch, durchgehend rot, an den Rändern aber stufenförmig, in etwa so:
_______..._______
_/ \_
|_ _|
\_______..._______/
MSIE 6: 5 Pixel hoch, durchgehend rot
Gecko: insgesamt 21(!) Pixel hoch, davon 10px rot, 1px(!) schwarz, 10px rot
Daher mein Rat, den Kram mit der border besser sein zu lassen... Und ich habe andere relevante Browser noch nicht einmal getestet.
Grüße,
Mathias
Hallo Mathias,
danke, ich muss mir das nochmal in Ruhe anschauen.
Wahrscheinlich habe ich einen ganz anderen Ansatz und eine andere Vorstellung von "Normalität" als von dir formuliert "standardkompatiblen Modus mit voller Dokumenttyp-Deklaration".
In meinem "Normalfall" Transitional ist es Mozilla, für den border und padding abgezogen werden müssen, IE und Opera 7 verhalten sich ähnlich.
Ist natürlich m.E. für die Praxis total unsinig von Opera, denn IE 5 und 5.5. sind die häufigsten Browser, und da ist <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> m.E. die vernünftigste Lösung (auch der Netscape 4 kommt mit den "normalen" Angaben recht gut klar), nur dass Opera 7 eine Grössenkorrektur, also eine Verkleinerung für Mozilla, per CSS-Weiche ">" auch liest. Paradoxe Wirkung, da es Mozilla gibt, wie ähnlich auch bei Operas bescheuretem document.all. Vielleicht eine Marketingstrategie gegen oder zur Unterscheidung von Mozilla.
Also html:root als Weiche mit einer Grössenkorrektur, und Opera 6 hat u.U. auch Pech gehabt, aber die 6er User sollen vielleicht sowieso upgraden.
Dazu hat 36$-Opera offenbar einen Haufen Bugs (als Unterstützung des Quirks-Mode?) mit eingebaut, die Beta 7.2ß2 sieht auch nicht besser aus, ändert aber alles nichts an den überwiegend IE5 und 5.5 Besuchern und dem m.E. da besseren Transitional.
Also Useragent checken und Opera anders bedienen hatten wir doch schonmal...
Grüsse
Cyx23
Hallo,
Wahrscheinlich habe ich einen ganz anderen Ansatz und eine andere Vorstellung von "Normalität" als von dir formuliert "standardkompatiblen Modus mit voller Dokumenttyp-Deklaration".
Durch den Einsatz des standards compliant mode ist die Nutzung des CSS-Box-Modells in MSIE 6, Opera, Gecko und KHTML möglich. MSIEs darunter werden beispielsweise über Tantek-Hacks versorgt bzw. das Layout wird entsprechend flexibel aufgebaut.
In meinem "Normalfall" Transitional ist es Mozilla, für den border und padding abgezogen werden müssen, IE und Opera 7 verhalten sich ähnlich.
Mit padding habe ich es gar nicht probiert - es kommt aber auch darauf an, für was hr verwendet werden soll. In der Regel reicht es, stattdessen border für die jeweiligen Elemente zu vergeben, welche darunter bzw. darüber lagen. Generell ich nicht den Sinn, unbedingt hr-Elemente einzusetzen, wenn es so schwer einheitlich lösbar ist.
Ist natürlich m.E. für die Praxis total unsinig von Opera, denn IE 5 und 5.5. sind die häufigsten Browser, und da ist <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> m.E. die vernünftigste Lösung
Total unsinnig ist, ein bewusst rückwärtsgewandtes, primär auf ein proprietäres Boxmodell ausgerichtetes CSS-Layout einzusetzen, welches nur funktioniert, weil es damit rechnet, dass standardkonforme Browser die Seite absichtlich falsch anzeigen. Das ist alles, aber keine nachhaltige, zukunftssichere Strategie.
Paradoxe Wirkung, da es Mozilla gibt, wie ähnlich auch bei Operas bescheuretem document.all. Vielleicht eine Marketingstrategie gegen oder zur Unterscheidung von Mozilla.
Was meinst du damit?
Also html:root als Weiche mit einer Grössenkorrektur, und Opera 6 hat u.U. auch Pech gehabt, aber die 6er User sollen vielleicht sowieso upgraden.
Genauso wie MSIE 5.x und Netscape 4.
Dazu hat 36$-Opera offenbar einen Haufen Bugs (als Unterstützung des Quirks-Mode?) mit eingebaut,
Vergleiche die Unterschiede zwischen Opera 6.06, Opera 7 im standardkonformen und Opera 7 im Quirks-Modus, dann weißt du, ob der Bug absichtlich eingebaut wurde, um im Quirks-Mode dieselbe (eventuell kaputte) Darstellung wie MSIE 6 zu liefern. Einige »MSIE-Bug-Emulierungs-Features« sind auch dokumentiert: http://www.opera.com/docs/specs/doctype/.
Mathias
Hallo,
Total unsinnig ist, ein bewusst rückwärtsgewandtes, primär auf ein proprietäres Boxmodell ausgerichtetes CSS-Layout einzusetzen, welches nur funktioniert, weil es damit rechnet, dass standardkonforme Browser die Seite absichtlich falsch anzeigen. Das ist alles, aber keine nachhaltige, zukunftssichere Strategie.
das seh ich für die meisten Projekte ganz anders, da mit transitional (fast) alle IE, ggf. auch NC4, insgesamt über 90% der Besucher, bei meinen Kunden vmtl. 99,99% der Besucher, gleich und optimal ohne Weiche oder sonstwas bedient werden. Und "über Tantek-Hacks versorgt bzw. das Layout wird entsprechend flexibel aufgebaut." ist keine zumutbare Alternative.
Und es ist die nachhaltige, zukunftssichere Strategie weil es _heute_ und auch _morgen_ die Grundlage für verlässliche Kommunikation darstellt, schliesslich sollen die Seiten nicht erst in drei oder fünf Jahren besucht werden.
Also html:root als Weiche mit einer Grössenkorrektur, und Opera 6 hat u.U. auch Pech gehabt, aber die 6er User sollen vielleicht sowieso upgraden.
Genauso wie MSIE 5.x und Netscape 4.
Oder, aus nicht Opera-Sicht, ebensowenig. Deswegen wohl doch erstmal ">" als Weiche, dann stimmts auch bei Opera6, und Opera7 kriegt zur Not erstmal ein JavaScript, wenn ich nicht eine verlässliche CSS-Weiche finden sollte.
Vergleiche die Unterschiede zwischen Opera 6.06, Opera 7 im standardkonformen und Opera 7 im Quirks-Modus, dann weißt du, ob der Bug absichtlich eingebaut wurde, um im Quirks-Mode dieselbe (eventuell kaputte) Darstellung wie MSIE 6 zu liefern.
Hätte man bei Opera mal die Zeit besser verwandt statt beim Bug-Einbau auch noch solche Fehler zu machen. Deswegen ja meine Vermutung dass ein Entwickler besseres zu tun haben könnte, und dass irgendwelche Ideen aus der Marketingecke oder so kommen mögen.
Die Verdoppelung oder Spiegelung ausserhalb des Objektes von Padding tritt m.E. bei 6 nicht auf, und ist soweit ich weiss mit keinem Modus zu rechtfertigen, ob nun bei Vers. 6 auch vorhanden oder nicht, und die fehlende Entscheidungsfreude welcher z-index bei fehlenden Angaben zu vermuten ist und sonstige Macken auch nicht.
Grüsse
Cyx23
Hallo nochmal,
Vergleiche die Unterschiede zwischen Opera 6.06, Opera 7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
div{width:400px;height:400px;border:80px solid green;padding:40px}
table{background-color:red;}
* table{width:400px;}
td> div{height:160px;width:160px;}
</style>
<script>
if(window.opera&&document.compatMode)document.write('<style>td>div{position:relative;left:240px;margin-left:-240px;width:400px;height:400px;}</style>');
</script>
</head>
<body>
<table>
<tr>
<td>
<div>Zitat:
da MSIE (6) und Mozilla die Höhe als Gesamthöhe inklusive border verstehen,
während Opera (7) height als Innenhöheversteht
</div>
</td>
</table>
</body>
</html>
du kannst es dir ja mal mit Opera anschauen und das "position:relative;left:240px;margin-left:-240px;" weglassen, ggf oder für Opera6 noch auf "* table{width:400px;} " verzichten.
M.E. ist der Fehler im 6er bereits angelegt, aber im 7er erst richtig vorhanden.
Und colgroup etc. wird ignoriert, bei mehereren Spalten werden Nachbarzellen ggf. verkleinert sodaß table{width nichts hilft usw.
Grüsse
Cyx23
Hallo,
M.E. ist der Fehler im 6er bereits angelegt, aber im 7er erst richtig vorhanden.
Und was spricht jetzt dagegen, MSIE6, alle Operas, alle KHTML-Derivate, alle Gecko-Derivate und Netscape 4 im standardkonformen Modus zu bedienen und lediglich über den Tantek-Hack Extragrößen für MSIE<6 bereitzustellen? Deine These, dass es nicht zumutbar sei, hast du nicht näher belegt.
1. Voller DOCTYPE
2. 400px für table um den Opera 6-Bug zu umgehen
3. width:400px und height:400px sowie die normalen border- und padding-Eigenschaften für div
4. in einem @media-Statement (oder schon vorher durch andere ) den Tantek-Hack mit height:160px und width:160px
Das ist meinen Tests nach ebenso kompatibel.
Mathias
Hallo,
M.E. ist der Fehler im 6er bereits angelegt, aber im 7er erst richtig vorhanden.
Und was spricht jetzt dagegen, MSIE6, alle Operas, alle KHTML-Derivate, alle Gecko-Derivate und Netscape 4 im standardkonformen Modus zu bedienen und lediglich über den Tantek-Hack Extragrößen für MSIE<6 bereitzustellen? Deine These, dass es nicht zumutbar sei, hast du nicht näher belegt.
- Voller DOCTYPE [...]
danke, sieht ja nach einer klaren Strategie aus, aber bei:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
wird das Chaos bei etwas komplexeren Seiten doch scheinbar erstmal noch grösser, statt dass sich die Browser einheitlicher Verhalten. Muss ich mir nochmal genauer anschauen, aber zunächst sehe ich meine "schlechten" Erfahrungen mit vollem Doctype bestätigt.
Vielleicht kann da ein <p> im Div mit entspr. Eigenschaften das dann wieder etwas vereinfachen, dennoch scheint mir die kurze Variante vorteilhafter, und statt Tantek m.E. doch eher cond. comments.
Grüsse
Cyx23
Hallo,
Ich kann nur folgenden DOCTYPE empfehlen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Begrundung: xhtml1.0 gehört zu den aktuellern Standards. Warum man nicht 1.1 nehmen sollte wurde im Forum schon diskutiert.
html4.01 ist etwas in die Jahre gekommen und insbesondere noch nicht konsequent bei der Trennung Gestaltung und Textauszeichnung.
xhtml1.0 wird in allen gängigen Browsern dargestellt.
Transitional statt Strict, weil Strict doch gelegentlich an der Realität vorbeigeht.
Grüße
Heiner
Hallo Heiner,
html4.01 ist etwas in die Jahre gekommen und insbesondere noch nicht konsequent bei der Trennung Gestaltung und Textauszeichnung.
Du verwechselst den Unterschied zwischen Strict--Transitional und HTML4--XHTML1. HTML 4.01 Transitional unterscheidet sich im Hinblick auf »Trennung Gestaltung und Textauszeichnung« kein bisschen von XHTML 1.0 Transitional. Es ist dasselbe in XML. Nicht HTML 4 ist inkonsequent, sondern Transitional-Markup, ganz gleich ob HTML 4 oder XHTML 1. Letztlich ist es auch Sache des Autors, ob und wie weit er die »Freiheiten« von Transitional ausschöpft.
Falls du etwas anderes meintest, verstehe ich deine Aussage nicht.
Transitional statt Strict, weil Strict doch gelegentlich an der Realität vorbeigeht.
Ohne nähere Begründung erklärt das Alex gar nichts. Ohne seine Anforderungen zu wissen, kann man Alex auch keinen speziellen Doctype empfehlen.
Grüße,
Mathias
hi,
ich habe jezt meine seite so hinbekommen das es auf Netscape Opera und IE gleich aussieht (naja bis auf kleinigkeiten)
Aber ich weis nicht welchen Doctype ich nehmen soll
diese frage solltest du dir als allererste stellen, noch bevor du mit dem erstellen des htmlcodes anfängst.
du scheinst nach der methode "jetzt schreibe ich mal irgendwas zusammen, und schaue nachher, welcher doctype zufällig darauf passt" vorzugehen. das kann ich nicht gerade sinnvoll finden ...
gruss,
wahsaga
Hallo,
ich habe jezt meine seite so hinbekommen das es auf Netscape Opera und IE gleich aussieht (naja bis auf kleinigkeiten)
Aber ich weis nicht welchen Doctype ich nehmen solldiese frage solltest du dir als allererste stellen, noch bevor du mit dem erstellen des htmlcodes anfängst.
du scheinst nach der methode "jetzt schreibe ich mal irgendwas zusammen, und schaue nachher, welcher doctype zufällig darauf passt" vorzugehen. das kann ich nicht gerade sinnvoll finden ...
ähnliches scheint doch, wenn auch in etwas anderer Form, nahezuliegen.
So der Doctype mal als Selbstzweck oder weil der eine oder andere Doctype neuer ist.
Oder der Doctype als letzter Anpassungstrick an mehr oder weniger chaotisch arbeitende Browser.
Letzteres macht sogar Sinn, wenn auch nicht unbedingt den richtigen.
Grüsse
Cyx23