Jaka jest różnica między tłem a kolorem tła

Jaka jest różnica pomiędzy określeniem koloru tła za pomocą background i background-color?

Snippet #1

body { background-color: blue; }

Snippet #2

body { background: blue; }
Author: Phiter, 2012-04-18

16 answers

Zakładając, że są to dwie różne właściwości, w twoim konkretnym przykładzie nie ma różnicy w wyniku, ponieważ background jest skrótem od

Background-color
background-image
background-position
background-repeat
background-attachment
background-clip
background-origin
background-size

Tak więc, oprócz background-color, korzystając ze skrótu background Możesz również dodać jeden lub więcej wartości bez powtarzania żadnej innej właściwości background-* więcej niż jeden raz.

To, którą wybrać, zależy zasadniczo od ciebie, ale może również zależeć od specyficznych warunków deklaracji stylu (np. jeśli musisz nadpisać tylko background-color podczas dziedziczenia innych powiązanych właściwości background-* z elementu nadrzędnego, lub jeśli musisz usunąć wszystkie wartości z wyjątkiem background-color).

 211
Author: fcalderan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-20 23:11:58

background zastąpi wszystkie poprzednie background-color, background-image, itd. specyfikacje. Jest to w zasadzie skrót, ale reset również.

Czasami będę go używał do nadpisywania poprzednich specyfikacji background w dostosowaniach szablonu, gdzie chciałbym:

background: white url(images/image1.jpg) top left repeat;

Być następujące:

background: black;

Więc wszystkie parametry (background-image, background-position, background-repeat) zostaną zresetowane do wartości domyślnych.

 135
Author: Anriëtte Myburgh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-18 08:25:53

About CSS performance:

background vs background-color :

Porównanie 18 próbek kolorów wyświetlonych 100 razy na stronie jako małe prostokąty, raz z tłem i raz z tłem .

Tło vs tło-kolor

Podczas gdy liczby te pochodzą z jednej strony, z kolejnymi odświeża czasy renderowania, ale różnica procentowa była zasadniczo za każdym razem tak samo.

To oszczędność prawie 42,6 ms, prawie dwa razy szybsza, przy użyciu tło zamiast koloru tła w Safari 7.0.1. Chrom 33 wygląda na to samo.

To szczerze mnie rozwaliło, bo najdłużej z dwóch powodów:

  • zazwyczaj zawsze argumentuję za jasnością we właściwościach CSS, szczególnie w przypadku tła, ponieważ może to niekorzystnie wpłynąć na specyfikę.
  • myślałem, że gdy przeglądarka widzi background: #000;, oni naprawdę widzą background: #000 none no-repeat top center;. Nie mam tu linka do jakiegoś zasobu, ale przypominam sobie, że gdzieś to czytałem.

Ref : https://github.com/mdo/css-perf#background-vs-background-color

 72
Author: l2aelba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 11:31:33

Z background możesz ustawić wszystkie background właściwości takie jak:

  • background-color
  • background-image
  • background-repeat
  • background-position
    itd.

Za pomocą background-color możesz po prostu określić kolor tła

background: url(example.jpg) no-repeat center center #fff;

VS.

background-image: url(example.jpg);
background-position: center center;
background-repeat: no-repeat;
background-color: #fff;

Więcej informacji

(Zobacz podpis: Background - shorthand property)

 23
Author: alphanyx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-15 09:23:08

Jedna z różnic:

Jeśli używasz obrazka jako tła w ten sposób:

background: url('Image Path') no-repeat;

Wtedy nie można go nadpisać właściwością "background-color".

Ale jeśli używasz tła do zastosowania koloru, jest on taki sam jak kolor tła i może być przesłonięty.

Eg: http://jsfiddle.net/Z57Za/11/ i http://jsfiddle.net/Z57Za/12/

 7
Author: Ankit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-18 08:57:33

nie ma różnicy. oba będą działać w ten sam sposób.

Właściwości tła CSS są używane do definiowania efektów tła element.

Właściwości CSS używane dla efektów tła:

  • background-color
  • background-image
  • background-repeat
  • background-attachment
  • background-position

Właściwość tła zawiera wszystkie te właściwości i można je po prostu zapisać w jednej linii.

 3
Author: Chuck Norris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-18 08:18:14

Obie są takie same. Istnieje wiele selektorów tła (np. background-color, background-image, background-position) możesz uzyskać do nich dostęp poprzez prostszy selektor background lub bardziej szczegółowy. Na przykład:

background: blue url(/myImage.jpg) no-repeat;

Lub

background-color: blue;
background-image: url(/myImage.jpg);
background-repeat: no-repeat;
 3
Author: DC_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-18 08:22:05

Różnica polega na tym, że właściwość background Stenografia ustawia kilka właściwości związanych z tłem. Ustawia je wszystkie, nawet jeśli podasz tylko np. wartość koloru, ponieważ wtedy pozostałe właściwości zostaną ustawione na ich początkowe wartości, np. background-image na none.

Nie oznacza to, że zawsze nadpisuje inne ustawienia dla tych właściwości. To zależy od kaskady zgodnie ze zwykłymi, ogólnie źle zrozumianymi zasadami.

W praktyce, Skrót wydaje się być nieco bezpieczniej. Jest to zabezpieczenie (nie kompletne, ale użyteczne) przed przypadkowym uzyskaniem nieoczekiwanych właściwości tła, takich jak obraz tła, z innego arkusza stylów. Poza tym jest krótszy. Ale musisz pamiętać, że to naprawdę oznacza "ustaw wszystkie właściwości tła".

 3
Author: Jukka K. Korpela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-19 10:35:38

To najlepsza odpowiedź. Shorthand (tło) jest dla reset i suche (połączyć z longhand).

 1
Author: Jonh Doe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-01 15:37:28

Porównanie 18 próbek kolorów wyświetlonych 100 razy na stronie jako małe prostokąty, raz z tłem i raz z tłem-kolor.

Odtworzyłemwydajność CSS eksperyment i wyniki są znacznie różne w dzisiejszych czasach.

background

Chrome 54 : 443 (µs/div)

Firefox 49: 162 (µs/div)

Edge 10 : 56 (µs/div)

background-color

Chrome 54 : 449 (µs/div)

Firefox 49 : 171 (µs/div)

Edge 10 : 58 (µs/div)

Jak widzisz-nie ma prawie żadnej różnicy.

 1
Author: Marcin Biernacki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-15 13:33:42

background jest skrótem dla background-color i kilku innych rzeczy związanych z tłem, jak poniżej:

background-color
background-image
background-repeat
background-attachment
background-position 

Przeczytaj poniższą wypowiedź z W3C:

Background-shorthand property

aby skrócić kod, jest możliwe jest również określenie wszystkich właściwości tła w jednym własność. To się nazywa właściwość stenograficzna.

Właściwością skrótu dla tła jest background:

body {
  background: white url("img_tree.png") no-repeat right top;
}

Przy użyciu właściwości shorthand kolejność wartości właściwości to:

background-color
background-image
background-repeat
background-attachment
background-position

Nie ma znaczenia, czy brakuje jednej z wartości właściwości, o ile tak jak pozostałe w tej kolejności.

 1
Author: Alireza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 13:08:53

Zauważyłem podczas generowania wiadomości e-mail dla programu Outlook...

/*works*/
background: gray;

/*does not work*/
background-color: gray;
 0
Author: Homer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-14 16:43:32

Możesz zrobić całkiem porządne rzeczy, gdy zrozumiesz, że możesz bawić się dziedziczeniem za pomocą tego. Jednak najpierw zrozummy coś z tego doc na tle:

Z CSS3, można zastosować wiele tła do elementów. Są to nakładane na siebie warstwy z pierwszym tłem, które podajesz na wierzchu i ostatnie tło wymienione z tyłu. Tylko ostatnie tło może zawierać kolor tła.

Więc kiedy JEDEN do:

background: red;

Ustawia kolor tła na czerwony, ponieważ czerwony jest ostatnią podaną wartością.

Gdy ktoś robi:

background: linear-gradient(to right, grey 50%, yellow 2%) red;

Czerwony jest znowu kolorem tła Ale zobaczysz gradient.

    .box{
        border-radius: 50%;
        width: 200px;
        height: 200px;
        background: linear-gradient(to right, grey 50%, yellow 2%) red;
    }

    .box::before{
       content: "";
       display: block;
       margin-left: 50%;
       height: 50%;
       border-radius: 0 100% 100% 0 / 50%;
       transform: translateX(70px) translateY(-26px) rotate(325deg);
       background: inherit;
    }
    <div class="box">
      
     </div>

Teraz to samo z background-color:

    .box{
        border-radius: 50%;
        width: 200px;
        height: 200px;
        background: linear-gradient(to right, grey 50%, yellow 2%) red;
    }

    .box::before{
       content: "";
       display: block;
       margin-left: 50%;
       height: 50%;
       border-radius: 0 100% 100% 0 / 50%;
       transform: translateX(70px) translateY(-26px) rotate(325deg);
       background-color: inherit;
    }
    <div class="box">
      
     </div>

Dzieje się tak dlatego, że kiedy robimy to:

background: linear-gradient(to right, grey 50%, yellow 2%) #red;

Ostatnia liczba ustawia tło-kolor.

Następnie w przed dziedziczymy z tła (wtedy otrzymujemy gradient) lub kolor tła, wtedy otrzymujemy czerwony.

 0
Author: Ced,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-05 05:58:40

Odkryłem, że nie można ustawić gradientu z kolorem tła.

To działa:

background:linear-gradient(to right, rgba(255,0,0,0), rgba(255,255,255,1));

To nie:

background-color:linear-gradient(to right, rgba(255,0,0,0), rgba(255,255,255,1));
 0
Author: Vörös Amadea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-10 16:10:49

Jest błąd dotyczący tła i koloru tła

Różnica tego, podczas korzystania z tła, czasami podczas tworzenia strony internetowej w CSS background: # fff / / można przejechać blokiem obrazu Maski ("górny element, tekst lub obraz")) więc lepiej zawsze używać koloru tła do bezpiecznego użytkowania, w projekcie, jeśli jego indywidualny

 -1
Author: user8505560,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 10:22:02

Jedna rzecz, której nie widzę w dokumentacji, to używanie background: url("image.png")

Krótka ręka jak powyżej jeśli obrazek nie zostanie znaleziony wysyła kod 302 zamiast być ignorowanym jak jest, jeśli używasz

background-image: url("image.png") 
 -2
Author: bigwater,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-03 11:09:21