Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    89

    Quirks mode strano in IE 6 !!

    In una pagina XHTML ho inserito il seguente DOCTYPE:

    <!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="it" lang="it" dir="ltr">

    Internet Explorer 6 in questo modo dovrebbe lavorare in modalità standard e non in Quirks mode. La conferma me la dà questo script:

    <script type="text/javascript">
    strict=false
    var d=document.doctype

    strict=(document.compatMode=="CSS1Compat")
    strict=(d&&d.systemId?(d.systemId.indexOf("strict" )>-1?true: (d.publicId.indexOf("transitional")>-1?true:false)): (d&&d.publicId.indexOf("transitional")==-1?true:strict))
    strict=(d&&d.name.indexOf(".dtd")>-1)?true:strict

    alert("strict= "+strict)
    </script>

    Lo script mi conferma che IE6 sta lavorando in modalità standard eppure ho questo problema:
    ho un DIV con width:100% e un certo padding. Se imposto entrambi mi compare la barra orizzontale. Se non specifico la larghezza la barra non compare. Ma il "difetto" non dovrebbe farlo in Quirks mode per via della diversa interpretazione del box model ?
    La cosa strana è che se tolgo il DOCTYPE e quindi lavorando in Quirks mode, il difetto, specificando contemporaneamente larghezza e padding, non c'è !!! La barra orizzontale non compare !!!!

    Ma non dovrebbe essere il contrario ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    89
    Ho installato sulla stessa macchina anche IE 5.01 e IE 5.5 e con questi il difetto non c'è specificando width e padding mentre su IE 6 appare la barra orizzontale

  3. #3
    Se ho capito bene, quello che IE 6 ti fa è esatto, come è esatto quello che fa IE 5. Proprio perché IE 6 ti funziona in modalità standard, non soffre del box model errato, e quindi somma alla larghezza del 100% il padding orizzontale del div. Ovviamente, essendo 100% riferito probabilmente al body (o a un altro div largo il 100% del body), il div è più largo del body e quindi compare la barra orizzontale. IE 5 non la fa apparire perché usa sempre il box model errato, quindi la tua width: 100% è un realtà inferiore, perché comprende il padding.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    89
    Grazie amico ...
    Dovrei studiarmi meglio il box model prima di aprire post inutili !!

    Effettivamente è normale quello che accade perchè in IE 5 e 5.5 nel width è compreso il padding erroneamente mentre in IE 6 (standard) il width si riferisce al solo elemento. Aggiungendo il padding è ovvio che aumenta la larghezza ed esce fuori la barra ....

    Grazie ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.