Por que você usaria uma largura HTML/CSS de 99,9% em vez de 100%?
Pergunta
Vi muitos desenvolvedores escrevendo larguras de estilo HTML ou CSS em linha de 99,9% em locais onde usaria 100%. Existe algum motivo válido para usar 99,9%? Tem alguma diferença efetiva em relação a 100%?
Edite para retweetar a pergunta muito boa de Msalters: Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%?
Eu acho que ele está certo, que se você estiver indo com o dirty hack
Você deve usar 99,99%, alguém discorda?
Referências adicionais:
- O comentário de @michael stum sobre a propriedade CSS Zoom me levou a este link interessante sobre o desencadeamento
zoom
: http://www.bennadel.com/blog/1354-the-power-of-zoom-fixing-css-issues-in-internet-explorer.htm. - A @Andrew Dunn ofereceu este link incrivelmente abrangente no Haslayout: http://www.satzansatz.de/cssd/onhavlayout.html
Solução
o hasLayout
propriedade
É um hack sujo usado para definir o IE específico hasLayout
propriedade do elemento para verdadeiro. o hasLayout
Propriedade "determina como os elementos desenham e ligam seu conteúdo, interagem e se relacionam com outros elementos e reagem e transmitam eventos de aplicativo/usuário". Dando um elemento layout
é uma maneira fácil de corrigir muitos bugs relacionados ao layout que aparecem no Internet Explorer.
O que há com os 99,9%?
Definir a largura para 99,9% é uma maneira de acioná -la. O motivo pelo qual você usaria 99,9% é porque o layout é dado a um elemento se o seu width
está definido para qualquer coisa que não seja auto
. Configurar para uma porcentagem impede a necessidade de usar uma largura fixa.
Após alguns testes no JSFIDDLE, cheguei à conclusão de que realmente não é necessário usar uma largura de 99,9%, usar uma largura de 100% é igualmente eficaz. http://jsfiddle.net/3qfjw/2/ (Apenas IE). Parece que a configuração width
a 99,9% pode ter sido um equívoco comum que preso .. Espalhe a palavra pessoas.
Outros métodos
Você também pode acionar hasLayout
usando zoom: 1;
Embora esse seja o método preferido para muitos, pois não mexe com outros recursos relacionados ao estilo de um elemento, ele também é um código CSS inválido, que não é uma opção de usar para alguns desenvolvedores.
Leitura adicional
Para mais métodos para acionar hasLayout
Verificação de saída: http://www.satzansatz.de/cssd/onhavlayout.html
Para mais informações sobre o hasLayout
Propriedade, confira o artigo do MSDN em hasLayout
http://msdn.microsoft.com/en-us/library/bb250481(vs.85).aspx (Esta é realmente uma ótima leitura, muitas informações detalhadas)
Outras dicas
É verdade width
de qualquer coisa, menos auto
e zoom
gatilho haslayout e zoom
é a propriedade/valor mais flexível, pois não mexe com a largura, mas não acho que essa seja a razão pela qual você viu os desenvolvedores usarem 99,9%.
Em certos casos flutuantes, é necessário que a largura combinada dos carros alegóricos não adie até 100% (se especificada em porcentagens) porque o IE6 calcula incorretamente isso como além de 100% e geralmente o último que cai.
A solução é especificar uma margem direita -1px apenas para o IE ou fazer a soma 99,99%.
Eu documentei o bug aqui. Portanto, se está relacionado ou não ao que você estava vendo, espero que o link de bug ajude alguém a experimentar.