Vou começar esse post dando dois bons motivos para você NÃO usar hack, e sim condicionais para especificar navegadores e, assim, poder ajustar pequenos erros do seu CSS em cada um dos browsers:
Quer mais motivos? Acho que não né…
Apresento estão, duas alternativas para evitar esses problemas: uma é o condicional IF IE, e outra em PHP. Ai já viu: é apelação, você vai poder especificar desde o sitema operacional até o navegador e versão.
<!-- [ if IE] --> Com esse comentário, todos os Internet Explorer vão usar o CSS aqui informado. <!-- [endif] --> <!-- [ if IE 5] --> Já se você esquecificar a versão, somente esta vai usar o CSS informado. <!-- [endif] --> <!-- [ if IE 5,5] --> Você pode ser mais especifico na versão. <!-- [endif] --> <!-- [ if gte IE 6] --> Usando a opção "gte" ele verifica se a versão do navegador é igual ou superior à especificada. <!-- [endif] --> <!-- [ if gt IE 6] --> Usando a opção "gt" ele verifica se a versão do navegador é superior à especificada. <!-- [endif] --> <!-- [ if lte IE 6] --> Já a opção 'lte', condiciona a versões igual ou inferiores. <!-- [endif] --> <!-- [ if lt 5,5 IE] --> E finalmente a opção "lt", é para versões inferiores a informada. <!-- [endif] -->
Ou seja:
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: tim20000821.php3,v 1.2 2001/05/22 19:22:47 tim Exp $ unset ($BROWSER_AGENT); unset ($BROWSER_VER); unset ($BROWSER_PLATFORM); function browser_get_agent () { global $BROWSER_AGENT; return $BROWSER_AGENT; } function browser_get_version() { global $BROWSER_VER; return $BROWSER_VER; } function browser_get_platform() { global $BROWSER_PLATFORM; return $BROWSER_PLATFORM; } function browser_is_mac() { if (browser_get_platform()=='Mac') { return true; } else { return false; } } function browser_is_windows() { if (browser_get_platform()=='Win') { return true; } else { return false; } } function browser_is_ie() { if (browser_get_agent()=='IE') { return true; } else { return false; } } function browser_is_netscape() { if (browser_get_agent()=='MOZILLA') { return true; } else { return false; } } /* Determine browser and version */ if (ereg( 'MSIE ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version)) { $BROWSER_VER=$log_version[1]; $BROWSER_AGENT='IE'; } elseif (ereg( 'Opera ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version)) { $BROWSER_VER=$log_version[1]; $BROWSER_AGENT='OPERA'; } elseif (ereg( 'Mozilla/([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version)) { $BROWSER_VER=$log_version[1]; $BROWSER_AGENT='MOZILLA'; } else { $BROWSER_VER=0; $BROWSER_AGENT='OTHER'; } /* Determine platform */ if (strstr($HTTP_USER_AGENT,'Win')) { $BROWSER_PLATFORM='Win'; } else if (strstr($HTTP_USER_AGENT,'Mac')) { $BROWSER_PLATFORM='Mac'; } else if (strstr($HTTP_USER_AGENT,'Linux')) { $BROWSER_PLATFORM='Linux'; } else if (strstr($HTTP_USER_AGENT,'Unix')) { $BROWSER_PLATFORM='Unix'; } else { $BROWSER_PLATFORM='Other'; } /* //debug code echo "\n\nAgent: $HTTP_USER_AGENT"; echo "\nIE: ".browser_is_ie(); echo "\nMac: ".browser_is_mac(); echo "\nWindows: ".browser_is_windows(); echo "\nPlatform: ".browser_get_platform(); echo "\nVersion: ".browser_get_version(); echo "\nAgent: ".browser_get_agent(); */ ?>
[tags]PHP, Conditional CSS, IF IE[/tags]
You can leave a response, or trackback from your own site.
maio 2nd, 2008 at 19:07
[...] Logo depois que escrevi sobre “Condicional para estilo CSS com IF IE e em PHP”, o Thomas que trabalha comigo, com uma certa pitada de maldade e sarcasmo disse [...]
agosto 28th, 2008 at 14:30
[...] – algumas respostas tableless – uma visão contra o uso do comentários condicionais emanuelfelipe rjcorrea – apelando para o PHP alexandremagno – apelando para o Jquery maujor – ótimo w3css marcusvbp [...]
outubro 16th, 2009 at 15:53
so copiou do maujor
outubro 18th, 2009 at 19:49
Vou começar a recusar comentário com nome e e-mail fake!