Колір фону: жоден дійсний CSS?


431

Хтось може мені сказати, чи дійсний наступний CSS?

.class {
    background-color:none;
}

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

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

Відповіді:


551

Ви, мабуть, хочете, 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 у вашому випадку потрібно надати фоновий колір: прозорий! важливо;
herr

Це нагадує мені, що я намагався використовувати колір шрифту, коли я вперше почав кодувати. Звичайно, це colorне так font-color. Має так багато сенсу, коли будь-яка інша властивість шрифту має fontперед собою ...
serraosays

@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} Ви повинні видалити! Важливо, оскільки це змушує всіх інших всередині мати це властивість. А на внутрішніх лі (-ях) скоріше використовуйте властивість кольору тла, ніж фоновий лише для кольору фону.
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 з’явиться наступна помилка:

Значення Помилка: color-color none не є значенням кольору фону: немає

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


2
І це повторює те, що Джеймс сказав два з половиною роки тому, але у нерізаному та вставному форматі. ; ^)
рюш

6

CSS рівень 3 визначає unsetзначення властивості. Від MDN :

Невизначене ключове слово CSS - це поєднання початкового та успадкованого ключових слів. Як і ці два інші ключові слова, що стосуються CSS, воно може бути застосоване до будь-яких властивостей CSS, включаючи скорочення всіх CSS. Це ключове слово скидає властивість до його успадкованого значення, якщо воно успадковує від свого батьківського або його початкове значення, якщо ні. Іншими словами, воно поводиться як ключове слово у спадок у першому випадку, так і як початкове ключове слово у другому випадку.

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


3

написати це:

.class {
background-color:transparent;
}

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

Добре. background-color є атрибутом css і, як і кожен атрибут css, може мати деяке дійсне і недійсне значення. Допустимим значенням для фонового кольору може бути один із форматів нижче: # 5f9 або # 56f293 або прозорий. прозорий означає, що ви хочете нульового або жодного кольору фону.
Абольфазл Міадян

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

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

1

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


1
Я знаходжу цей фон: прозорий не працює для мене, щоб змінити колір тла, встановлений іншим css. Якщо я вибираю фон: червоний; наприклад - це спрацює. Але фон: прозорий; дозволяє іншому кольоровому тексту css залишатися. Будь-які ідеї, як це зупинити?
Допоміжний Джоел
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.