Duas elemento “mesa” bem alinhados
-
22-07-2019 - |
Pergunta
Esta é uma pergunta um pouco aberto, mas eu realmente quero entender este assim que eu não me importo.
Eu tenho um dois-elemento "table" (CSS com vãos). A coluna da esquerda sempre tem um ícone que é 20x20 pixels. A segunda coluna tem uma única linha de texto associado com o ícone.
Eu passei por todos os tipos de idéias que eu poderia vir acima com para fazer este olhar exatamente o mesmo em IE6-8, Firefox 3.5 e Google Chrome, mas todas as idéias resultar em um texto sendo ou dois pixels off na melhor das hipóteses .
Eu estou procurando uma maneira não-<table>
à prova de idiota para fazer esta lista olhar exatamente o mesmo em todos os navegadores. Quero dizer a cada pixel.
Solução
Pixel perfeito não existe - você simplesmente não têm esse tipo de controle sobre a variedade de navegadores lá fora, e nem é rentável para você tentar fazê-lo assim. Retornos decrescentes, teu nome é IE6.
Fwiw, ele também soa provável que você faria melhor aqui simplesmente para ter uma lista (<ul>
) com list-style-type definido como Nenhum e usando imagens de fundo para exibir seus 20x20 ícones.
Outras dicas
Você está perseguindo um alvo em movimento. Com tantas broswers e tantas versões lá provavelmente nunca mais ser uma maneira de torná-lo perfeito. Então, mesmo se você fizer obtê-lo perto da perfeição a próxima versão de qualquer um dos navegadores pode quebrá-lo novamente.
Aqui está a minha pergunta: se é realmente uma mesa, por que não usar <table>
? É uma coisa para evitar o uso de tabelas para fins de layout geral página, mas a marca de tabela ainda é perfeitamente legítimo que, bem, mostrando tabelas.
Se isso não funcionar para você, considere uma modificação <ul>
ou similar. É improvável, porém, que você nunca vai buscá-la verdadeiramente pixel perfeito em todos os navegadores.
Sim ...
Render uma imagem;)
(Desculpe, mas se você quiser realmente "perfeita pixle", então esta é provavelmente a maneira mais fácil)
Eu concordo com Tony e annakata . No entanto, geralmente o melhor resultado vem de algo simples como este:
<span><img src="images/icon.gif" style="vertical-align:text-bottom;" />Some text</span>
quais pelo menos parece exatamente o mesmo em webkit, o IE8 e Firefox. (Eu acredito que o IE7 também, mas eu não fiz teste)
Eu sou sory para este enorme editar Eu não li a pergunta corretamente. Como alguns já disse que é muito difícil de alcançar PixelPerfection em um site, cada navegador renderizar as páginas de forma diferente. Com CSS você pode usar absolut e posicionamento relativo basicamente qualquer coisa mas seu longe de ser perfeito quando se trata de compatibilidade cross-browser.