Является ли background-color:none допустимым CSS? — Переполнение стека

спросил

Изменено 3 года назад

Просмотрено 777 тысяч раз

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

 .класс {
    цвет фона: нет;
}
 
  • CSS
  • цвет фона

2

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

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

Значение: <цвет> | прозрачный | наследовать

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

Действителен цвет ключевые слова:

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

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

6

Нет, используйте прозрачный вместо нет . См. рабочий пример здесь, в этом примере, если вы измените прозрачный до нет это не будет работать

использовать как

.class { background-color:transparent; }


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

2

Нет.

Неверно

 .класс {
    цвет фона: нет; /* не делай это */
}
 

Правильно

 .класс {
    цвет фона: прозрачный;
}
 

background-color: Transparent выполняет то же самое, что вы хотели сделать с background-color: none .

0

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

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

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

1

 .класс {
    цвет фона: нет;
}
 

Недопустимое свойство. Валидатор W3C отобразит следующую ошибку:

Ошибка значения: background-color none не является значением background-color: none

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

1

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

1

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

 . класс {
цвет фона: прозрачный;
}
 

3

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

css — Почему background-color:none не переопределяет указанный цвет фона?

спросил

Изменено 3 года, 8 месяцев назад

Просмотрено 68 тысяч раз

Моя цель состоит в том, чтобы все ячейки в таблице имели цвет фона, кроме ячеек с классом «прозрачный».

Вот пример кода (соответствующий jsfiddle):

 <стиль>
    td {цвет фона: красный}
    td.transparent {цвет фона: нет}

<таблица>
    
        фу
        бар
    

 

Почему ячейка td.transparent не следует правилу CSS td.transparent? Когда я проверяю элемент, правило существует, но оно переопределяется правилом td, которое, похоже, нарушает обычные правила специфичности CSS.

Я могу получить то, что хочу, используя rgba(0,0,0,0) вместо none , но rgba не поддерживается в IE8, и я хотел бы избежать использования уродливого хака, если бы мог.

Я также хотел бы просто понять, почему это не работает так, как я ожидал.

Мысли?

  • css
  • цвет фона

1

Значение должно быть допустимым цветом, а нет не является допустимым цветом. Вместо этого вы можете использовать прозрачный (похож на rgba(0,0,0,0) , но поддерживается более широко). Если это не поможет, вы всегда можете использовать белый или использовать более конкретное правило для фона

красный .

0

Для чего: вы можете заменить background-color:none на background: none , и все заработает.

None недопустимый цвет, вместо этого используйте прозрачный .

демонстрация jsFiddle

 td.transparent {
    цвет фона: прозрачный;
}
 

В качестве альтернативы вы также можете использовать следующее:

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

 тд.прозрачный {
    фон: нет;
}
 

jsFiddle с использованием этого метода

.


В качестве примечания: использование цветов CSS3 (rgba) поддерживается не на 100%. Ссылка здесь: http://caniuse.