Firefox Std mode == IE quircks mode?

Pagina: 1
Acties:

  • depol99
  • Registratie: April 2004
  • Laatst online: 20:41
Ik zit wat te stoeien met wat css.

Ik probeer xhtml valid te maken en dus zet ik dus het doctype juist
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Hierdoor gaat IE6 over naar standaard mode.

Maar
in IE toont die de eerste goed als ie rendert in Quircks mode
in IE toont ie de 2e verkeerd omdat ie rendert in Standaard mode
in FF toont ie beide goed (ff volgt de standaard mode)

de fout is de breedte van het iframe (grijze achtergrond).
Het iframe uitsluiten is geen oplossing, want deze moet erin blijven

Link1: http://users.skynet.be/fa631239/test/index.html
Link2: http://users.skynet.be/fa631239/test/index2.html

D@nny


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Cascading Stylesheet:
1
2
3
4
5
6
7
div#subcontent{
    position: absolute;
    left: 130px;
    right: 130px;
    z-index: 10;
    background-color: #990099;
}

Ik zie die gewoon in de flow laten zitten en een linker- en rechtermargin geven

Intentionally left blank


  • depol99
  • Registratie: April 2004
  • Laatst online: 20:41
Margin ofzo geeft geen soelaas.

Het vreemde is dat IE het wel goed toont als ik de iframe er uit haal.
http://users.skynet.be/fa631239/test/index3.html

Maar de bedoeling is juist dat die iframe erin blijft.

Het lijkt een bug te zijn dat ik de iframe 100% wil zetten van de parent, maar dat ie de 100% rekent van het venster.

D@nny


  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Waarom zet je niet gewoon de XML-declaratie bovenaan je document. Dat is niet verplicht (maar wel aanbevolen door W3C), dus je blijft gewoon SC. Alle echte browsers blijven dan gewoon in SC-mode, terwijl IE hierdoor terugvalt op Quirksmode.

Ik ontken het bestaan van IE.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

cyberstalker schreef op vrijdag 24 februari 2006 @ 21:07:
Waarom zet je niet gewoon de XML-declaratie bovenaan je document. Dat is niet verplicht (maar wel aanbevolen door W3C), dus je blijft gewoon SC. Alle echte browsers blijven dan gewoon in SC-mode, terwijl IE hierdoor terugvalt op Quirksmode.
Juist niet aanbevolen getuige de compatibility guidelines:
Be aware that processing instructions are rendered on some user agents. Also, some user agents interpret the XML declaration to mean that the document is unrecognized XML rather than HTML, and therefore may not render the document as expected. For compatibility with these types of legacy browsers, you may want to avoid using processing instructions and XML declarations. Remember, however, that when the XML declaration is not included in a document, the document can only use the default character encodings UTF-8 or UTF-16.
En aangezien we het hier over een browser hebben die geen XHTML ondersteund en het alleen snapt als je zegt dat het HTML is zou ik zeker geen XML declarations gebruiken (of XHTML for that matter) ;)

De aanbeveling:
An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol. Here is an example of an XHTML document. In this example, the XML declaration is included.
lijkt mij alleen te slaan op XHTML documenten die ook als XHTML geserveerd worden (aangezien het in een HTML document compleet pointless is)...

[ Voor 22% gewijzigd door crisp op 24-02-2006 22:51 ]

Intentionally left blank


  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Aha, ik kende alleen de onderste aanbeveling (en ik serveer XHTML zelf natuurlijk ook altijd als XHTML).

Ik kan echter op dit moment buiten IE geen browsers bedenken die raar gaan doen van een XML declaratie boven een verkeerd geserveerd XHTML document. En wat IE hier doet is juist gewenst.

Ik ontken het bestaan van IE.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

cyberstalker schreef op vrijdag 24 februari 2006 @ 22:58:
Aha, ik kende alleen de onderste aanbeveling (en ik serveer XHTML zelf natuurlijk ook altijd als XHTML).
dan ben je 1 van de weinigen :P

In de voorbeelden van de topicstarter worden de style-rules ignored bij een XHTML mime-type door de HTML-comments en zo zijn er nog wel meer zaken waaraan je vaak kan zien dat mensen XHTML gewoon niet snappen...
Ik kan echter op dit moment buiten IE geen browsers bedenken die raar gaan doen van een XML declaratie boven een verkeerd geserveerd XHTML document. En wat IE hier doet is juist gewenst.
Nee, wat IE doet (in quirksmode renderen) is niet gewenst (IE7 lost dat overigens op).

Ik heb net nog even gekeken en standards-compliant mode triggert hier een hasLayout bug in IE. Op te lossen door (alleen voor IE) #subcontent bijvoorbeeld een height: 1%; te geven

Intentionally left blank


  • depol99
  • Registratie: April 2004
  • Laatst online: 20:41
de principes van XHTML en externe CSS snap ik wel, dit was enkel om gemakkelijker de code te zien, ondertussen ist aangepast

De height:xx% methode werkt ook niet. Als je goed keek werkte de layout goed zonder een iframe (index3), maar die iframe (index2) wou niet luisteren naar de breedte van zijn parent.

Kheb het nu opgelost op een niet-xhtml-methode manier van tables. Hier geeft IE wel de juiste breedte aan. (en het is geen slordige IE-CSS hack)

http://users.skynet.be/fa631239/test/index4.html

D@nny


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Dit werkte bij mij in IE:
Cascading Stylesheet:
1
2
3
4
5
6
7
div#subcontent{
    position: relative;
    height: 1%; /* hasLayout voor IE */
    margin-left: 130px;
    margin-right: 130px;
    background-color: #990099;
}

note dat je voor non-IE browsers moet zorgen dat die height overruled wordt.

[ Voor 25% gewijzigd door crisp op 25-02-2006 15:00 ]

Intentionally left blank


  • depol99
  • Registratie: April 2004
  • Laatst online: 20:41
Idd met het bovenste is het wel gelukt.

Ik had de height:1% gebruikt bij absolute en right/left:130px, en daar werkte het dus niet.
Met relative, margins en height lukt het dus wel. Gelukkig is die iframe een vaste hoogte dus kan ik ipv die 1% een vaste waarde gebruiken zonder overruled regels.
http://users.skynet.be/fa631239/test/index5.html

Voila Internet Explorer probleem opgelost zonder speciale hacks. Dank aan allen die geholpen hebben.

D@nny

Pagina: 1