Capa / Portfolio / 244 posts / 1,043 comentários

Diagramar CSS é uma coisa muito gostosa (pense o que quiser), mas o que mais nos faz passar raiva nessa atividade é a compatibilidade entre browsers. Como fazer para que o meu código CSS seja compatível com diversos browsers.

Como a Microsoft já anunciou que não vai seguir os padrões W3C, e quase todos os clientes do mundo não vão tomar vergonha na cara e migrar pra algo melhor, o jeito é ficar fazendo xunxos.

Aurélio propôem uma solução muito bacana e inteligente, que é separar as classes mediante a identificação do browser via JavaScript:

Coloque no head como javascript:

if( navigator.appName.indexOf("Microsoft") > -1 ){
document.body.className = "msie";
}

E separe as classes da seguinte forma:

 #logo{
	background-image: url("florTop.jpg");
	display: block;
	width: 127px;
	height: 159px;
	float: left;
	text-decoration: none;
	margin-top: -120px;
}
 
.msie #logo{
	margin-top: -119px;
}

Uma outra solução é esconder o conteúdo do Internet Explorer, o que pode ser feito atribuindo a definição html>body a qualquer estilo, o que não precisa do cógido JavaScript, e que tomando o mesmo exemplo fica da seguinte forma:

 #logo{
	background-image: url("florTop.jpg");
	display: block;
	width: 127px;
	height: 159px;
	float: left;
	text-decoration: none;
	margin-top: -119px;
}
 
html>body #logo{
	margin-top: -120px;
}

Note que o item de interesse (margin-top) teve de ser invertido nesse método.

4 Comentários

Mailane — 11 de novembro de 2007 às 15:12 #

q engraçado ler isso!
é grego pra mim (!), ou melhor inglês mesmo(!), pq de grego é capaz de eu até saber algum a coisa!!!hehe

naiady11 de novembro de 2007 às 11:07 #

Sempre quis aprender CSS. :/
(considerando minha idade nem tão avançada, quem sabe ainda dê tempo!)

Sonildo Lima — 01 de janeiro de 2010 às 09:48 #

Você falou que o css é gostoso.

Sim é gostoso para a guerra de construtores de browsers, não vejo graça nenhuma nesse monte de regras exclusivas, dizem que a Microsoft não vai seguir as regras, evidente que não vai porque o css é avacalhado com muitas regrinhas extras direcionadas a interesses. Ate porque quando nem se falavam em css o FrontPage da Microsoft já veio comum css muito bom e compatível com os Browsers existentes na época; partindo daí a concorrência tentou criar padrões extras para não falar qeu copiaram o style CSS da Microsoft, e mesmo que o FrontPage volte a mil, a guerra de browsers vai dificultar a compatibilidade geral que é o que a gente precisa para trabalhar o CSS sem ter que ficar implantando prioridades extras.
Meus sites ainda usam muitas tabelas e são rapidissimos e compativeis com 32 Brosers, e o melhor usa bordas compartilhadas e fura as filas dos css no google, site com 68 pages. google publicou 100% , são 68 entradas para usuários.

Vinicius Massuchetto01 de janeiro de 2010 às 19:15 #

Oi Sonildo.

Então continue com as tabelas.

Eu acho um saco programar séries e repetições em meio à tabelas, e por mais compatíveis que elas sejam, se seu site tiver um tráfego muito alto vai fazer toda a diferença, principalmente no custo.

Afinal, se CSS fosse uma coisa ruim, nenhum CMS ou outro software atualizado utilizaria.

Abraços
Vinicius