Condicional para estilo CSS com IF IE e em PHP

29 de abril, 2008 por Ricardo José Corrêa
1 Star2 Stars3 Stars4 Stars5 Stars (1 voto, média: 5 de 5)
Loading ... Loading ...

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:

  • você não sabe se na próxima versão do navegador o hack continuará valendo;
  • o css vira uma bagunça infernal.

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.

Primeira opção: IF IE

<!-- [ 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:

  • gte - maior ou igual ao navegador setado;
  • gt - maior que o navegador setado;
  • lte - menor ou igual ao navegador setado;
  • lt - menor que o navegador setado.

Segunda opção: apelando com PHP:

<?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(); 
*/ 
 
?>

Technorati Tags: , ,

Compartilhe e aproveite:
  • del.icio.us
  • Technorati
  • Digg
  • Facebook
  • Google
  • Reddit
  • Furl
  • Mixx
  • Live
  • E-mail this story to a friend!

2 comentários, o bicho está pegando :) to “Condicional para estilo CSS com IF IE e em PHP”

  1. RjCorrêa » Hack nunca mais: resete seu CSS com Trípoli Says:

    [...] 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 [...]

  2. Comentários condicionais (Conditional Comments) « Miltonweb’s Weblog Says:

    [...] - 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 [...]

Deixe um comentário


I love beerI love CMSI love DesignI love DreamweaverI love FlashI love FoodI love GamesI love MoneyI love MusicI love PhotoshopI love PHPI love ProgrammingI love ShoppingI love WindowsI love Wine
Site protegido Feito com a cabea PageRank Add to Technorati Favorites