Czy kolor tła: brak prawidłowego CSS?


431

Czy ktoś może mi powiedzieć, czy następujący CSS jest prawidłowy?

.class {
    background-color:none;
}

10
Walidator często może odpowiedzieć na tego typu pytania.
thirtydot

10
Możesz się mylić background:none;, który jest prawidłowy i który ustawia kolor tła na przezroczysty.
Pan Lister

Odpowiedzi:


551

Prawdopodobnie chcesz, transparentponieważ nonenie jest to poprawna background-colorwartość.

Specyfikacja CSS 2.1 określa następującą background-colorwłaściwość:

Value: <color> | transparent | inherit

<color>może być słowem kluczowym lub liczbową reprezentacją koloru. Prawidłowe colorsłowa kluczowe to:

aqua, czarny, niebieski, fuksja, szary, zielony, limonkowy, bordowy, granatowy, oliwkowy, pomarańczowy, fioletowy, czerwony, srebrny, turkusowy, biały i żółty

transparenti inheritsą poprawnymi słowami kluczowymi, ale nonenie są.


25
Tak. Ponieważ wartością początkową jest to transparent, czego używasz, jeśli chcesz wyłączyć kolorowanie tła.
Pan Lister

1
żadna z nich nie zostanie zresetowana do poprzedniej wartości (tj. jeśli zostanie ustawiona inną regułą css :(
pstanton

2
@pstanton w twoim przypadku musisz podać kolor tła: przezroczysty! ważne;
herr

To przypomina mi próbę użycia koloru czcionki, kiedy po raz pierwszy zacząłem pisać kodowanie. Oczywiście, że colornie font-color. Ma tyle sensu, ilekroć ma fontprzed sobą inną właściwość czcionki ...
serraosays,

@herr Ale nadal, jak powiedział pstanton, ustawienie przezroczystości koloru tła zastąpiłoby poprzednie właściwości css! Czy jest jakiś sposób, aby usunąć tę właściwość koloru tła, tak aby pobierała właściwość CSS z poprzedniej?
SE_User

159

Nie, użyj transparentzamiast tego none. Zobacz działający przykład tutaj w tym przykładzie, jeśli przejdziesz transparentna noneto, nie będzie działać

użyj jak .class { background-color:transparent; }


Gdzie .class to nazwa twojej przezroczystej klasy.


W moim przykładzie jest zupełnie odwrotnie. Jeśli zmienisz none na transparent, to nie zadziała. Naprawdę muszę użyć none: jsfiddle.net/BkAad
Hrvoje Golcic

W twoim przykładzie zmień na body *: not (.exception) {background-color: transparent} Musisz usunąć! Ważne, ponieważ to zmusza wszystkie inne osoby do posiadania tej właściwości. A wewnątrz li używają raczej właściwości koloru tła niż tła dla samego koloru tła.
yveslebeau

67

Odpowiedź brzmi nie.

Błędny

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

Poprawny

.class {
    background-color: transparent;
}

background-color: transparentosiąga to samo, co chciałeś zrobić background-color: none.


7
.class {
    background-color:none;
}

To nie jest poprawna właściwość. Walidator W3C wyświetli następujący błąd:

Błąd wartości: kolor tła brak nie jest wartością koloru tła: brak

transparentmogły zostać wybrane jako lepszy termin zamiast 0lub nonewartości podczas opracowywania specyfikacji CSS.


2
I to powtarza to, co James powiedział dwa i pół roku temu, ale w nie wyciętym i wklejalnym formacie. ; ^)
ruffin

6

Poziom 3 CSS określa unsetwartość właściwości. Z MDN :

Nieustawione słowo kluczowe CSS jest kombinacją słów kluczowych początkowych i dziedziczonych. Podobnie jak dwa inne słowa kluczowe w całym CSS, można go zastosować do dowolnej właściwości CSS, w tym do skrótu CSS wszystkich. To słowo kluczowe resetuje właściwość do wartości odziedziczonej, jeśli dziedziczy po rodzicu lub do wartości początkowej, jeśli nie. Innymi słowy, zachowuje się jak słowo kluczowe dziedziczące w pierwszym przypadku i jak początkowe słowo kluczowe w drugim przypadku.

Niestety ta wartość nie jest obecnie obsługiwana we wszystkich przeglądarkach, w tym IE, Safari i Opera. Na razie sugeruję używanie transparent.


3

Napisz to:

.class {
background-color:transparent;
}

2
Proszę wyjaśnić swój kod i jak pomaga rozwiązać problem! - Z recenzji
Luca Kiebel

Ok. kolor tła jest atrybutem css i jak każdy atrybut css może mieć pewną prawidłową i niepoprawną wartość. Prawidłowa wartość koloru tła może mieć jeden z poniższych formatów: # 5f9 lub # 56f293 lub przezroczysty. przezroczysty oznacza, że ​​chcesz mieć zerowy lub żaden kolor tła.
Abolfazl Miadian

1
wow - 6 lat po pytaniu (i odpowiedzi) odpowiadasz duplikatem?
NarfkX

czas pytania nie jest ważny, ponieważ każdego dnia niektóre osoby odwiedzają tę stronę lub inną starą stronę w celu uzyskania odpowiedzi. Myślę, że moja składnia odpowiedzi jest bardziej przejrzysta!
Abolfazl Miadian

1

Chciałbym więc wyjaśnić scenariusz, w którym musiałem skorzystać z tego rozwiązania. Zasadniczo chciałem cofnąć atrybut koloru tła ustawiony przez inny CSS. Oczekiwanym rezultatem końcowym było sprawienie, że oryginalny CSS nigdy nie zastosował atrybutu koloru tła. Ustawienie background-color:transparent;uczyniło to skutecznym.


1
Odnajduję to tło: przezroczysty nie działa, aby zastąpić kolor tła ustawiony przez inny css. Jeśli wybiorę tło: czerwony; na przykład - to zadziała. Ale tło: przezroczyste; pozwala na pozostanie innego koloru tła css. Jakieś pomysły, jak to zatrzymać?
Pomocniczy Joel,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.