A cor de fundo: nenhum CSS válido?


432

Alguém pode me dizer se o seguinte CSS é válido?

.class {
    background-color:none;
}

10
O validador geralmente pode responder a esse tipo de pergunta.
thirtydot

10
Você pode se confundir com o background:none;que é válido e que define a cor do plano de fundo como transparente.
Lister

Respostas:


551

Você provavelmente deseja transparentque nonenão seja um background-colorvalor válido .

A especificação do CSS 2.1 indica o seguinte para a background-colorpropriedade:

Value: <color> | transparent | inherit

<color>pode ser uma palavra-chave ou uma representação numérica de uma cor. As colorpalavras-chave válidas são:

aqua, preto, azul, fúcsia, cinza, verde, limão, marrom, marinha, azeitona, laranja, roxo, vermelho, prata, cerceta, branco e amarelo

transparente inheritsão palavras-chave válidas por direito próprio, mas nonenão são.


25
Sim. Como o valor inicial é transparent, é isso que você usa se quiser desativar a coloração de fundo.
Sr. Lister

1
nada disso será redefinido para um valor anterior (ou seja, se definido por outra regra css :(
pstanton 15/12/14

2
@ pstanton no seu caso, você precisa dar a cor de fundo: transparente! importante;
herr

Isso me lembra de tentar usar a cor da fonte quando comecei a codificar. Claro que é color, não font-color. Faz tanto sentido quando já outra propriedade fonte tem fontna frente dele ...
serraosays

@herr Mas ainda como pstanton disse, definir a cor de fundo transparente substituirá as propriedades anteriores do CSS! Existe alguma maneira de remover essa propriedade de cor de plano de fundo, de modo que ela pegue a propriedade CSS da anterior?
SE_User

159

Não, use em transparentvez disso none. Veja o exemplo de trabalho aqui neste exemplo se você mudar transparentpara noneele não funcionará

use como .class { background-color:transparent; }


Onde .class é o que você nomeará sua classe transparente.


No meu exemplo, é completamente o oposto. Se você alterar nenhum para transparente, não funcionará. Eu realmente preciso usar nenhum: jsfiddle.net/BkAad
Hrvoje Golcic

No seu exemplo, altere para body *: not (.exception) {background-color: transparent} Você deve remover o! Important, pois isso está forçando todos os outros membros a ter essa propriedade. E no li (s) interno (s), em vez disso, use a propriedade background-color do que a propriedade background somente para a cor background.
Yveslebeau 31/07

67

A resposta é não.

Incorreta

.class {
    background-color: none; /* do not do this */
}

Corrigir

.class {
    background-color: transparent;
}

background-color: transparentrealiza a mesma coisa com o que você queria fazer background-color: none.


7
.class {
    background-color:none;
}

Esta não é uma propriedade válida. O validador W3C exibirá o seguinte erro:

Erro de valor: cor de fundo none não é um valor de cor de fundo: none

transparentpode ter sido selecionado como termo melhor em vez de 0ou nonevalores durante o desenvolvimento da especificação do CSS.


2
E isso repete o que James disse há dois anos e meio, mas em um formato não cortável e passível de pastagem. ; ^)
ruffin

6

O nível 3 do CSS especifica o unsetvalor da propriedade. Do MDN :

A palavra-chave CSS não configurada é a combinação das palavras-chave inicial e herdada. Como essas duas outras palavras-chave em todo o CSS, ele pode ser aplicado a qualquer propriedade CSS, incluindo a abreviação CSS all. Essa palavra-chave redefine a propriedade para seu valor herdado se herdar do pai ou para o valor inicial, se não. Em outras palavras, ele se comporta como a palavra-chave herdada no primeiro caso e como a palavra-chave inicial no segundo caso.

Infelizmente, esse valor atualmente não é suportado em todos os navegadores, incluindo IE, Safari e Opera. Sugiro usar transparentpor enquanto.


3

escreva isso:

.class {
background-color:transparent;
}

2
Por favor, explique seu código e como ele ajuda a resolver o problema! - Da avaliação
Luca Kiebel

Está bem. background-color é um atributo css e, como todo atributo css, pode ter algum valor válido e não válido. O valor válido para a cor de fundo pode ser um dos seguintes formatos: # 5f9 ou # 56f293 ou transparente. transparente significa que você deseja uma cor de fundo nula ou nenhuma.
Abolfazl Miadian

1
uau - 6 anos após a pergunta (e a resposta) você responde com uma duplicata?
NarfkX

a hora de perguntar não é importante porque todos os dias algumas pessoas visitam esta página ou outra página antiga para obter respostas. Eu acho que minha sintaxe da resposta é mais clara!
Abolfazl Miadian

1

Então, eu gostaria de explicar o cenário em que tive que usar essa solução. Basicamente, eu queria desfazer o atributo de cor de fundo definido por outro CSS. O resultado final esperado era fazer parecer que o CSS original nunca havia aplicado o atributo cor de fundo. A configuração background-color:transparent;tornou isso eficaz.


1
Estou descobrindo esse plano de fundo: transparente não está funcionando para substituir uma cor de plano de fundo que está sendo definida por outro css. Se eu escolher o plano de fundo: vermelho; por exemplo - isso vai funcionar. Mas fundo: transparente; está permitindo que a outra cor de fundo css permaneça. Alguma idéia de como parar isso?
Auxiliar Joel
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.