Tutorial de CSS > Criando um layout com CSS a partir do zero > Parte 12
12. Fazendo funcionar no IE
Vamos iniciar os truques com a criança problema atual, o IE5.
Abra seu navegador IE5. Há duas coisas que eu notei instantaneamente que estão erradas. A primeira é que a página não é centralizada como deveria ser, e a segunda é que o rodapé tem um problema de alinhamento estranho.
O problema de alinhamento é bem conhecido, então vamos nos deter primeiramente neste.
O IE 5 e o 5.5 não reconhecem a propriedade CSS margin: auto; como deveria ser. Para corrigir isto,
necessitamos usar a propriedade text-align: center; no body, que vai
centralizar o contêiner div.
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
text-align: center;
}
Isto vai centralizar nosso contêiner div, mas vai centralizar também todo o texto dentro do
div. Nós não queremos isto, então necessitamos sobrescrever o text-alignment
dentro do contêiner div.
#page-container {
width: 760px;
margin: auto;
text-align: left;
}
O que resolve o problema de centralização.
Agora, o rodapé esquisito.
Eu não consegui encontrar atualmente qualquer referência a este bug particular através de uma rápida pesquisa no google, então eu
tentei imaginar um jeito de consertar isso. Eu pensei que o bug tinha algo a ver com o div altnav
flutuante mas não pude identificar onde estava o problema exatamente. Então, eventualmente eu tentei colocar um div ao
redor da informação de copyright e que fez com que o bug desaparecesse.
<div id="copyright">
Copyright © Enlighten Designs<br />
Powered by <a href="http://www.enlightenhosting.com/">Enlighten Hosting</a> and
<a href="http://www.vadmin.co.nz/">Vadmin 3.0 CMS</a>
</div>
Isto disparou alguns problemas de padding-top no rodapé, então eu removi o atributo
padding-top: 13px; da regra #footer, e adicionei a ambas as div's:
#copyright e #altnav.
#footer #altnav {
clear: both;
width: 350px;
float: right;
text-align: right;
padding-top: 13px;
}
#footer #copyright {
padding-top: 13px;
}
Há um último bug do IE que pude verificar, e é quando você passa o cursor do mouse sobre item selecionado da navegação. Ele reverte o fundo para branco como se não fosse selecionado. Nós não queremos que o item selecionado mude quando o cursor do mouse estiver sobre ele.
Se adicionarmos mais algumas poucas regras para nossa enorme regra que define a seleção da navegação, teremos nosso problema solucionado.
body.about dt#about,
body.about dt#about a,
body.about dt#about a:hover,
body.services dt#services,
body.services dt#services a,
body.services dt#services a:hover,
body.portfolio dt#portfolio,
body.portfolio dt#portfolio a,
body.portfolio dt#portfolio a:hover,
body.contact dt#contact,
body.contact dt#contact a,
body.contact dt#contact a:hover {
background-position: 0 -100px;
}
E agora está tudo certo. Espero que você tenha aprendido alguma coisa sobre layouts em CSS. Minha recomendação é que você procure mais sites especializados em CSS como os listados abaixo e repare em suas codificações HTML/CSS para ver como eles tem feito as coisas funcionarem. Em caso de dúvida, dê uma googlada.
Sinta-se à vontade para sugerir modificações ou melhorias neste tutorial (diretamente com o autor, em inglês), ou pergunte por tutoriais em outros tópicos do site.
Outras boas fontes: