Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafagets

[Resolvido] tem usar php em um arquivo css?

Recommended Posts

ola galera é o seguinte.

 

tenho um arquivo css e nele contem esse codigo

 


*
{
border: 0;
margin: 0;
padding: 0;
}

/* =Basic HTML, Non-essential
----------------------------------------------------------------------*/

a
{
text-decoration: none;
}

body
{
background: #fff;
color: #777;
margin: 0 auto;
position: relative;
font-size: 16;

}

h1
{
background: inherit;
border-bottom: 1px dashed #ccc;
color: #933;
font: 17px Georgia, serif;
margin: 0 0 10px;
padding: 0 0 5px;
text-align: center;
}

p
{
clear: both;
font: 10px Verdana, sans-serif;
padding: 10px 0;
text-align: center;
font-size: 24px;
}

p a
{
background: inherit;
color: #777;
}

p a:hover
{
background: inherit;
color: #000;
}

/* =Hoverbox Code
----------------------------------------------------------------------*/

.hoverbox
{
cursor: default;
list-style: none;
}

.hoverbox a
{
cursor: pointer;
}

.hoverbox a .preview
{
display: none;
}



.hoverbox img
{
background: #fff;
border-color: #aaa #ccc #ddd #bbb;
border-style: solid;
border-width: 1px;
color: inherit;
padding: 2px;
vertical-align: top;
width: 121px;
height: 96px;
}

.hoverbox li
{
background: #eee;
border-color: #ddd #bbb #aaa #ccc;
border-style: solid;
border-width: 1px;
color: inherit;
display: inline;
float: left;
margin: 3px;
padding: 5px;
position: relative;
}

.hoverbox .preview
{
border-color: #000;
width: 250px;
height: 200px;
color: #F00;
}

 

ai então eu pego o navegador do cliente e edito assim por exemplo:

 

<?php
if (preg_match("/Chrome/", $_SERVER['HTTP_USER_AGENT']  )) {
       ebackground: inherit;
border-bottom: 1px dashed #ccc;
color: #933;
font: 25px Georgia, serif;
margin: 0 0 8px;
padding: 0 0 5px;
text-align: center;
} else {

background: inherit;
border-bottom: 1px dashed #ccc;
color: #933;
font: 17px Georgia, serif;
margin: 0 0 10px;
padding: 0 0 5px;
text-align: center;
}
?>

tem como fazer? ou há outra maneira?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe o seu CSS do jeito que está, sem alteração.

 

Anexe ele na página PHP, usando <link>.

 

Após isso coloque o seguinte:

<?php if (preg_match("/Chrome/", $_SERVER['HTTP_USER_AGENT']  )) { ?>
<style>
  h1
  {
       font: 25px Georgia, serif;
       margin: 0 0 8px;
  }
</style>
<?php } ?>

 

Pronto, o seu hack para o Chrome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou há outra maneira?

 

sim, a maneira correta:)

 

 

INDEX.PHP

[TOPO]

 

if (preg_match("/Chrome/", $_SERVER['HTTP_USER_AGENT']  ))
{
  echo '<link rel="stylesheet" type="text/css" href="navegador_X.css" />';
}
else
{
  echo '<link rel="stylesheet" type="text/css" href="navegador_Y.css" />';
}

 

 

sempre use folhas css ou js, NUNCA coloque o codigo CSS ou JS na página, e sempre entre a tag <head>...</head>

assim, basta você alterar as folhas que necessita sem precisar mudar os srquivos de programação

Compartilhar este post


Link para o post
Compartilhar em outros sites

@criatividade zero

 

 

Mas aí se ele fizesse uma mudança em um dos seletores, teria que repeti-la no outro arquivo. Se essa for a maneira correta, não quero nem imaginar a errada... <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

em apenas uma única página entra o if $_SERVER['HTTP_USER_AGENT']

carregando um css correspondente

qualquer alteração simpesmente é feita no css

 

<div id='topo'>

oi mundo dificil

</div>

ele pode ter um estilo diferente para cada navegador, alterando apenas 1 unica coisa

 

 

não quero nem imaginar a errada... <_<

a forma errada é a que você postou - CSS dentro de HTML

 

 

Mas aí se ele fizesse uma mudança em um dos seletores, teria que repeti-la no outro arquivo.

pelo visto você deve programar em uma unica pagina tudo que tem direito, fazendo aquele mix danadão

 

 

estude web standards

Compartilhar este post


Link para o post
Compartilhar em outros sites

@criatividade zero

 

Você acha correto/bom/elegante manter dois arquivos CSS sendo que será usado apenas um só para não ter de usar estilos dentro do HTML?

 

Pode até haver alguma recomendação, algo a se evitar. Mas não tem jeito...

 

Às vezes somos obrigados até mesmo a usar estilos inline e eu não vejo nenhum problema em usar alguns estilos dentro do HTML. No mais, acho bem melhor que manter duas folhas de estilos, com certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No mais, acho bem melhor que manter duas folhas de estilos, com certeza.

então deixemos que o colega do topico decida quals forma fazer

 

 

recomendação ha aos montes, basta procura-las

não é dificil aplica-las

eu não mantenho nada no meu html que não seja <xx></xx>

todo js, css fica fora - no lugar que deve

 

imagina você implementar um site imenso com mais de 500 paginas, categorias e sub, sessoes, inumeros diretorios...

prefere varrer pasta por pasta pra alterar um color=0000 ou alterar um css?

 

 

Você acha correto/bom/elegante manter dois arquivos CSS sendo que será usado apenas um só para não ter de usar estilos dentro do HTML?

nao tenho apenas uma folha de estilo, divido em varios e varios css's

tudo separado, vou direto no arquivo especifico quando preciso mudar alguma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

A unica maneira correta de desenvolver css, é não precisar desses hacks.

 

use um css reset, um doctype válido, e valide eles.

pronto. Passou disso é gambiarra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@William Bruno

 

Na teoria, beleza. mas na prática... quando você precisa que o site rode no IE (ás vezes até no IE6), no Firefox, no Chrome... precisa fazer escolhas. Ficar 100% purista também tem seu custo, como no exemplo aí do @criatividade zero, ter de manter dois arquivos CSS com praticamente a mesma coisa. Mas se ele acha que compensa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu também acho válido gerar o CSS com PHP, bastando enviar um cabeçalho com o tipo do arquivo, no caso, text/css

 

Assim você pode fazer várias configurações, talvez até uma para cada navegador e ao mesmo tempo manter um único CSS, já que se determinada condição se satisfizer, o valor X será usado, se não, vai o Y, o Z e etc...

 

E vocxê ainda pode ter funçõeszinhas, externas ou não, do tipo isIE(), isChrome(), isOpera()... para poder criar as regras CSS com simples ternários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

INDEX.PHP

[TOPO]

 

if (preg_match("/Chrome/", $_SERVER['HTTP_USER_AGENT']  ))
{
  echo '<link rel="stylesheet" type="text/css" href="navegador_X.css" />';
}
else
{
  echo '<link rel="stylesheet" type="text/css" href="navegador_Y.css" />';
}

 

 

o topco foi meio quente em galera... rsrsrs.

 

mas na minha umilde opinião de um programador com pouca bagagem ainda, acho que dois css esta mais valido para que eu queria...

igual o colega ai encima disse.

 

obrigados a todos pelas respostas... não sei o que seria de mim, sem voces do imasters... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@William Bruno

 

Na teoria, beleza. mas na prática...

na prática eu faço isso que disse. Evito hacks, e desenvolvo para ie6, chrome... e outros tantos sem precisar desse tipo de coisa.

 

sou FrontEnd na minha essencia, já recortei mais de 110 layouts de sites, e nunca precisei desse tipo de artimanha.

é possível, só depende do nível de conhecimento, em HTML e CSS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.