Является ли цвет фона: нет действующего CSS?


432

Может кто-нибудь сказать мне, если следующий CSS является действительным?

.class {
    background-color:none;
}

10
Валидатор часто может ответить на такого рода вопрос.
тридцать пятого

10
Вы можете быть смущены тем background:none;, что является допустимым, и который устанавливает прозрачный цвет фона.
Мистер Листер

Ответы:


552

Вы, вероятно, хотите, так transparentкак noneэто недопустимое background-colorзначение.

В спецификации CSS 2.1 для background-colorсвойства указано следующее :

Value: <color> | transparent | inherit

<color>может быть ключевым словом или числовым представлением цвета. Допустимые colorключевые слова :

аква, черный, синий, фуксия, серый, зеленый, салатовый, бордовый, темно-синий, оливковый, оранжевый, фиолетовый, красный, серебристый, чирок, белый и желтый

transparentи inheritявляются действительными ключевыми словами сами по себе, но noneэто не так.


25
Да. Так как начальное значение - transparentэто то, что вы используете, если хотите отключить фоновую раскраску.
Мистер Листер

1
ни один из них не будет сброшен к предыдущему значению (то есть если установлено другим правилом css :(
pstanton

2
@pstanton в вашем случае, вам нужно задать цвет фона: прозрачный! важный;
герр

Это напоминает мне о попытке использовать цвет шрифта, когда я только начал заниматься кодированием. Конечно color, нет font-color. Имеет такой смысл всякий раз, когда fontперед ним
стоит

@herr Но все же, как сказал pstanton, установка прозрачного цвета фона переопределит предыдущие свойства CSS! Есть ли способ удалить это свойство цвета фона так, чтобы оно брало свойство CSS из предыдущего?
SE_User

159

Нет, используйте transparentвместо этого none. Смотрите пример работает здесь , в этом примере , если изменится transparentна noneэто не будет работать

использовать как .class { background-color:transparent; }


Где .class - это то, что вы назовете своим прозрачным классом.


В моем примере это полная противоположность. Если вы не измените ни один на прозрачный, он не будет работать. Мне действительно нужно использовать ничего: jsfiddle.net/BkAad
Hrvoje Golcic

В вашем примере измените на body *: not (.exception) {background-color: transparent} Вы должны удалить! Важное, так как это заставит все остальные внутри иметь это свойство. И на внутренней стороне li (s) лучше использовать свойство background-color, чем свойство background только для цвета фона.
Yveslebeau

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 не является значением background-color: none

transparentвозможно, был выбран как лучший термин вместо 0или noneзначения при разработке спецификации CSS.


2
И это повторяет то, что Джеймс сказал два с половиной года назад, но в не вырезанном и вставляемом формате. ; ^)
Ерф

6

Уровень CSS 3 определяет unsetзначение свойства. От MDN :

Неустановленное ключевое слово CSS - это комбинация начальных и наследуемых ключевых слов. Как и эти два других ключевых слова в формате CSS, его можно применять к любому свойству CSS, включая сокращение CSS all. Это ключевое слово сбрасывает свойство к его унаследованному значению, если оно наследует от своего родителя, или к его начальному значению, если нет. Другими словами, он ведет себя как ключевое слово наследования в первом случае и как начальное ключевое слово во втором случае.

К сожалению, в настоящее время это значение поддерживается не во всех браузерах, включая IE, Safari и Opera. Я предлагаю использовать transparentв настоящее время.


3

напишите это:

.class {
background-color:transparent;
}

2
Пожалуйста, объясните ваш код и как он помогает решить проблему! - Из обзора
Лука Кибель

Хорошо. background-color является атрибутом css и, как и любой атрибут css, может иметь некоторые допустимые и недействительные значения. допустимое значение для background-color может быть одним из следующих форматов: # 5f9 или # 56f293 или прозрачное. Прозрачный означает, что вы хотите нулевой или нулевой цвет фона.
Абольфазл Миадиан,

1
вау - через 6 лет после вопроса (и ответа) вы отвечаете дубликатом?
NarfkX

время запроса не имеет значения, потому что каждый день некоторые люди посещают эту страницу или другую старую страницу для ответов. Я думаю, что мой синтаксис ответа более ясен!
Абольфазл Миадиан,

1

Итак, я хотел бы объяснить сценарий, в котором мне пришлось использовать это решение. По сути, я хотел отменить атрибут background-color, установленный другим CSS. Ожидаемый конечный результат должен был выглядеть так, как если бы оригинальный CSS никогда не применял атрибут background-color. Настройка background-color:transparent;сделала это эффективным.


1
Я нахожу этот фон: прозрачный не работает для меня, чтобы переопределить цвет фона, установленный другим CSS. Если я выберу фон: красный; например - это сработает. Но фон: прозрачный; позволяет другому цвету фона CSS остаться. Есть идеи как это остановить?
Вспомогательный Джоэл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.