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: