是background-color:none有效的CSS吗?


Answers:


551

您可能想要transparent作为none无效background-color值。

CSS 2.1规范规定了以下background-color特性:

Value: <color> | transparent | inherit

<color>可以是关键字,也可以是颜色的数字表示。有效的color关键字是:

浅绿色,黑色,蓝色,紫红色,灰色,绿色,石灰,栗色,海军,橄榄色,橙色,紫色,红色,银色,蓝绿色,白色和黄色

transparent并且inherit是在自己的权利是有效的关键词,但none并非如此。


25
是。由于初始值transparent,那是,如果你要打开的背景色“关闭”你用什么。
李斯特先生,2012年

1
这些都不会重置为先前的值(即,如果由另一个CSS规则设置:(
pstanton 2014年

2
@pstanton在您的情况下,您需要提供background-color:透明的!
杜林

这让我想起了我刚开始编码时尝试使用字体颜色的方法。当然是color,不是font-color。每当其他字体属性出现font在前面时,它就显得非常有意义……
serraosays 2015年

@herr但是仍然如pstanton所说,将背景色设置为透明会覆盖以前的CSS属性!有什么方法可以删除此背景色属性,使其采用上一个的CSS属性?
SE_User

159

不,transparent改用none。如果您将其更改为无效,请在此示例中查看此处的工作示例transparentnone

使用像 .class { background-color:transparent; }


.class 在哪里,您将命名透明类。


在我的示例中,情况完全相反。如果将任何内容都更改为透明,则将无法使用。我真的不需要使用任何内容:jsfiddle.net/BkAad
Hrvoje Golcic 2014年

在您的示例中,更改为body *:not(.exception){background-color:transparent}您必须删除!important,因为这将迫使内部的所有其他对象都具有该属性。而且在内部li而不是仅使用background-color属性作为背景色,而使用background-color属性。
yveslebeau 2014年

67

答案是不。

不正确的

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

正确

.class {
    background-color: transparent;
}

background-color: transparent完成您想要做的相同的事情background-color: none


7
.class {
    background-color:none;
}

这不是有效的属性。W3C验证器将显示以下错误:

值错误:background-color none不是背景颜色值:none

transparent在开发CSS规范时可能选择了更好的术语代替0none值。


2
这重复了詹姆斯两年半之前所说的内容,但是以不可剪切和可粘贴的格式。; ^)
ruffin 2015年

6

CSS级别3指定unset属性值。从MDN

未设置CSS关键字是initial关键字和Inherited关键字的组合。像其他两个CSS级关键字一样,它可以应用于任何CSS属性,包括全部的CSS缩写。如果该关键字从其父级继承,则将该属性重置为其继承的值;否则,将其重置为其初始值。换句话说,在第一种情况下,它的行为类似于Inherit关键字,在第二种情况下,其行为与初始关键字类似。

不幸的是,当前所有浏览器(包括IE,Safari和Opera)都不支持该值。我建议transparent暂时使用。


3

写这个:

.class {
background-color:transparent;
}

2
请解释您的代码及其如何解决问题!- 评论
卢卡·基贝尔

好。background-color是css属性,就像每个css属性一样,它可以具有一些有效值和无效值。background-color的有效值可以是以下格式之一:#5f9或#56f293或透明。透明意味着您希望使用零或无背景色。
Abolfazl Miadian

1
哇-问题(和答案)问了6年后,您重复了一次吗?
NarfkX

询问时间并不重要,因为每天都有人访问此页面或另一个旧页面来寻找答案。我认为我的答案语法更加清晰!
Abolfazl Miadian

1

因此,我想解释一下我必须使用此解决方案的情况。基本上,我想撤消另一个CSS设置的background-color属性。预期的最终结果是使它看起来好像原始CSS从未应用background-color属性。设置background-color:transparent;有效。


1
我发现background:transparent不适用于覆盖另一个CSS设置的背景颜色。如果我选择background:red; 例如-会起作用。但是背景:透明;允许其他CSS背景颜色保留。有什么想法可以阻止吗?
辅助乔尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.