29 de abril de 2008

Condicional para estilo CSS com IF IE e em PHP

CSS, PHP | 5 Comentários »
por Ricardo José Corrêa

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.

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:

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

Leia também:

  1. Popup para abrir imagem? Lightbox.
  2. Hack nunca mais: resete seu CSS com Trípoli
  3. Gravador de Som para Mac – Audio Recorder 3.2
  4. JQuery para Designers
  5. CSS para decorar galeria de fotos

Você pode deixar um comentário, ou trackback de seu próprio site.

5 comentários para “Condicional para estilo CSS com IF IE e em PHP”

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

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

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

  3. jcopia falou:

    so copiou do maujor

  4. Ricardo José Corrêa falou:

    Vou começar a recusar comentário com nome e e-mail fake!

  5. DynCoch falou:

    Eu testei aqui e nenhum dos dois funfo… e o do css eu mudei pra

    E funcionou…

    Abrazz

Deixe um comentário