Internet Explorer 6: eliminar a margem de erro de casal

Entre as várias engraçado "interpretações" que o Internet Explorer 6 pode fazer com HTML / CSS, a da "margem de casal" é certamente o mais tedioso e muitas vezes. Na prática (ouvir, ouvir ...) browser Microsoft bons podem - misteriosamente - a dupla margens em itens que são definidos a flutuar! : Como tal o seguinte CSS aplicado a uma div com o ID de box :

1
display : block ; width : 100px ; height : 100px ; margin-left : 100px ; float : left } div # caixa {display: block; width: 100px; height: 100px; margin-left: 100px; float: left}

Você recebe:

ie6double

Onde n é a margem esquerda do nosso 100px! si trova a diretto contatto con il suo contenitore. Este defeito, felizmente, ocorre apenas em determinadas circunstâncias, ou seja, quando a margem coincide com a direção da float e quando a nossa div#box está em contato direto com seu recipiente. precedente. Isto significa que um adicional de div#box na mesma linha não sofre por causa do problema está do lado esquerdo, mas não o container div#box acima. Obviamente o problema não é específico para a margem esquerda, mas especular invertendo a coisa toda teria o mesmo problema com a margem direita!

Solução

A solução é muito simples: basta inserir a declaração display:inline no nosso CSS, eo defeito desaparece:

1
2
display : block ; width : 100px ; height : 100px ; margin-left : 100px ; float : left ; caixa de div # {display: block; width: 100px; height: 100px; margin-left: 100px; float: left;
inline } display: inline}

A introdução do display:inline será ignorado por todos os outros navegadores, e não porque estamos particularmente sorte, mas sim pela específicas W3C :

... O 'display' é ignorado, a menos que ele tenha 'none' o valor.

6 comentários para "Internet Explorer 6: eliminar a margem de erro duas vezes"

  1. 16 dezembro de 2008 Mauritius :

    Eu não entendi uma coisa:
    na definição da classe deve estar presente tanto no display: block para display: inline. ?
    deixando apenas o segundo tem o mesmo defeito?

    obrigado

  2. 16 dezembro de 2008 Giovambattista Fazioli :

    @ Maurício:

    Eu não entendi uma coisa:
    na definição da classe deve estar presente tanto no display: block para display: inline. ?
    deixando apenas a segunda tem o mesmo defeito? graças

    O display:block você pode substituí-lo com display:inline

  3. 16 dezembro de 2008 Francis Gaven :

    Lembro-me que foi um dos primeiro bug a que fui confrontado com IE6.
    Pelo menos neste caso, a solução é de pelo menos de imediato (desde que você sabe : P )

  4. 09 de janeiro de 2009 DigitaLife »IE6: Dicas Margem Duplo Solution & GUI :

    [...] Nós simplesmente explica como eliminar o problema da dupla margem no IE6, o veneno da web [...]

  5. 18 dez 2009 Fabio:

    Você é um grande, você faria um monumento! Clara, simples e rápido! Ótimo post

  6. 15 de janeiro de 2010 Ivan Davis:

    Você é um GRANDE! ele funciona muito bem. agora meus botões são vistas apenas uma vez. O comando "display: inline" aborda uma miríade de problemas no IE.

Deixe um comentário

XHTML PERMIT TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CÓDIGO DE INSERÇÃO:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Parar SOPA