Estou trabalhando em um arquivo CSS que é bastante longo. Eu sei que o cliente poderia solicitar alterações no esquema de cores e fiquei pensando: é possível atribuir cores às variáveis, para que eu possa alterar uma variável para que a nova cor seja aplicada a todos os elementos que a usam?
Observe que não posso usar o PHP para alterar dinamicamente o arquivo CSS.
css
variables
colors
css-variables
patrick
fonte
fonte
Respostas:
CSS suporta isso nativamente com variáveis de CSS .
Arquivo CSS de exemplo
Para um exemplo de trabalho, consulte este JSFiddle (o exemplo mostra que um dos seletores de CSS no violino tem a cor codificada em azul, o outro seletor de CSS usa variáveis CSS, sintaxe original e atual, para definir a cor em azul) .
Manipulando uma variável CSS no JavaScript / lado do cliente
O suporte está em todos os navegadores modernos
O Firefox 31+ , Chrome 49+ , Safari 9.1+ , Microsoft Edge 15+ e Opera 36+ são fornecidos com suporte nativo para variáveis CSS.
fonte
As pessoas continuam votando na minha resposta, mas é uma solução terrível em comparação com a alegria do sass ou menos , principalmente devido ao número de GUIs fáceis de usar nos dois dias. Se você tem algum sentido, ignore tudo o que eu sugiro abaixo.
Você pode colocar um comentário no css antes de cada cor para servir como uma espécie de variável, que pode alterar o valor do uso de localizar / substituir, para ...
Na parte superior do arquivo css
Posteriormente no arquivo CSS
Em seguida, para, por exemplo, alterar o esquema de cores do texto da caixa em que você encontra / substitui
fonte
O próprio CSS não usa variáveis. No entanto, você pode usar outro idioma como o SASS para definir seu estilo usando variáveis e produzir automaticamente arquivos CSS, que podem ser colocados na web. Observe que você precisaria executar novamente o gerador toda vez que fizer uma alteração no seu CSS, mas isso não é tão difícil.
fonte
Você pode tentar variáveis CSS3 :
fonte
Não existe uma solução fácil apenas para CSS. Você pode fazer isso:
Encontre todas as instâncias
background-color
ecolor
no seu arquivo CSS e crie um nome de classe para cada cor exclusiva.Em seguida, percorra todas as páginas do site em que a cor estava envolvida e adicione as classes apropriadas para a cor e para o plano de fundo.
Por fim, remova qualquer referência de cores em seu CSS, exceto as classes de cores recém-criadas.
fonte
Yeeeaaahhh .... agora você pode usar a função var ( ) em CSS .. ...
A boa notícia é que você pode alterá-lo usando o acesso JavaScript , que também mudará globalmente ...
Mas como declará-los ...
É bem simples:
Por exemplo, você deseja atribuir a
#ff0000
a avar()
, simplesmente atribuí-lo:root
, também preste atenção a--
:As boas coisas são o suporte do browser não é ruim, também não precisa ser compilado para ser usado no navegador como
LESS
ouSASS
...Além disso, aqui está um script JavaScript simples, que altera o valor vermelho para azul:
fonte
A 'Ruby Gem' para CSS parece incrível.
http://lesscss.org/
fonte
Sim, em um futuro próximo (eu escrevi isso em junho de 2012) você pode definir variáveis nativas de css, sem usar menos / sass etc! O mecanismo Webkit acabou de implementar as primeiras regras de variáveis css, portanto, as versões mais recentes do Chrome e Safari já devem trabalhar com elas. Veja o log de desenvolvimento do Webkit oficial (Chrome / Safari) com uma demonstração do navegador css no local.
Espero que possamos esperar um amplo suporte do navegador a variáveis nativas de css nos próximos meses.
fonte
Não use variáveis css3 devido ao suporte.
Eu faria o seguinte se você quiser uma solução css pura.
Use classes de cores com nomes semenáticos .
Separe a estrutura da pele (OOCSS)
Coloque-os dentro de um arquivo css separado para alterar conforme necessário.
fonte
Você pode passar o CSS por javascript e substituir todas as instâncias do COLOUR1 por uma determinada cor (basicamente regexá-la) e fornecer uma folha de estilo de backup, caso o usuário final tenha o JS desativado
fonte
Não sei ao certo por que você não pode usar PHP. Você pode simplesmente adicionar e usar variáveis como desejar, salvar o arquivo como um arquivo PHP e vincular a esse arquivo .php como a folha de estilos, em vez do arquivo .css.
Não precisa ser PHP, mas você entende o que quero dizer.
Quando queremos coisas de programação, por que não usar uma linguagem de programação até CSS (talvez) suportar coisas como variáveis?
Além disso, consulte o CSS orientado a objetos de Nicole Sullivan .
fonte
dicejs.com (formalmente cssobjs) é uma versão do cliente do SASS. Você pode definir variáveis em seu CSS (armazenadas em CSS formatado em json) e reutilizar suas variáveis de cores.
E aqui está um link para uma demonstração completa para download, que é um pouco mais útil que a documentação deles: dicejs demo
fonte
Considere usar o SCSS. É totalmente compatível com a sintaxe CSS, portanto, um arquivo CSS válido também é um arquivo SCSS válido. Isso facilita a migração, basta alterar o sufixo. Possui inúmeras melhorias, sendo as mais úteis variáveis e seletores aninhados.
Você precisa executá-lo através de um pré-processador para convertê-lo em CSS antes de enviá-lo ao cliente.
Sou desenvolvedor de CSS há muitos anos, mas desde que me forçei a fazer um projeto no SCSS, agora não vou usar mais nada.
fonte
Se você possui Ruby no seu sistema, pode fazer o seguinte:
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
Isso foi feito para o Rails, mas veja abaixo como modificá-lo para executá-lo sozinho.
Você pode usar esse método independentemente do Rails, escrevendo um pequeno script de wrapper Ruby que funcione em conjunto com site_settings.rb e leve em consideração seus caminhos CSS, e que você pode chamar sempre que quiser gerar novamente seu CSS (por exemplo, durante a inicialização do site)
Você pode executar o Ruby em praticamente qualquer sistema operacional, portanto, isso deve ser bastante independente da plataforma.
por exemplo, wrapper: generate_CSS.rb (execute esse script sempre que precisar gerar seu CSS)
o método generate_CSS_files em site_settings.rb precisa ser modificado assim:
fonte
Você pode agrupar seletores:
fonte
Com certeza, graças ao maravilhoso mundo de várias classes, é possível:
mas muitas vezes acabo combinando-os assim:
Eu sei que a polícia semântica estará em cima de você, mas funciona.
fonte
Receio que não o PHP, mas o Zope e o Plone usam algo semelhante ao SASS chamado DTML para conseguir isso. É incrivelmente útil em CMS.
A Upfront Systems tem um bom exemplo de seu uso no Plone.
fonte
Se você escrever o arquivo css como um modelo xsl, poderá ler os valores de cores de um arquivo xml simples. Em seguida, crie o css com um processador xslt.
colors.xml:
styles.xsl:
Comando para renderizar css:
xsltproc -o styles.css styles.xsl colors.xml
styles.css:
fonte
Não é possível apenas com CSS.
Você pode fazer isso com JavaScript e LESS usando less.js , que tornarão variáveis LESS em CSS ativas , mas é apenas para desenvolvimento e adiciona muita sobrecarga para uso na vida real.
O mais próximo que você pode chegar do CSS é usar um seletor de substring de atributos como este:
e defina os
id
s de todos os seus elementos com os quais você deseja ajustar os nomes que começam comcolvar-
, comocolvar-header
. Então, quando você altera a cor, todos os estilos de ID são atualizados. É o mais próximo possível do CSS sozinho.fonte