Jawaban:
Tidak ada perbedaan di antara keduanya.
Jika Anda tidak menentukan nilai untuk salah satu dari setengah lusin properti yang background
merupakan singkatan, maka nilai tersebut disetel ke nilai defaultnya. none
dan transparent
merupakan default.
Satu secara eksplisit menyetel background-image
ke none
dan secara implisit menyetel background-color
ke transparent
. Yang lainnya adalah sebaliknya.
transparent
dan none
.
Sebagai informasi tambahan pada jawaban @Quentin , dan seperti yang dia katakan dengan benar,
background
properti CSS itu sendiri, adalah singkatan dari:
background-color
background-image
background-repeat
background-attachment
background-position
Artinya, Anda dapat mengelompokkan semua gaya menjadi satu, seperti:
background: red url(../img.jpg) 0 0 no-repeat fixed;
Ini akan menjadi (dalam contoh ini):
background-color: red;
background-image: url(../img.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 0 0;
Jadi ... saat Anda menyetel: background:none;
Anda mengatakan bahwa semua properti latar belakang disetel ke tidak ada ...
Anda mengatakan itu background-image: none;
dan yang lainnya ke initial
status (karena tidak dideklarasikan).
Jadi, background:none;
apakah:
background-color: initial;
background-image: none;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Sekarang, ketika Anda hanya menentukan warna (dalam kasus Anda transparent
) maka pada dasarnya Anda mengatakan:
background-color: transparent;
background-image: initial;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Saya ulangi, sebagai @Quentin benar mengatakan yang default
transparent
dan none
nilai-nilai dalam hal ini adalah sama, sehingga dalam contoh Anda dan untuk pertanyaan asli Anda, Tidak, tidak ada perbedaan di antara mereka.
Tapi! .. jika Anda mengatakan background:none
Vs background:red
maka ya ... ada perbedaan besar, seperti yang saya katakan, yang pertama akan mengatur semua properti ke none/default
dan yang kedua, hanya akan mengubah color
dan tetap sisanya dalam default
statusnya.
Jawaban singkat : Tidak, tidak ada perbedaan sama sekali (dalam contoh dan pertanyaan asli Anda)
Jawaban panjang : Ya, ada perbedaan besar, tetapi bergantung langsung pada properti yang diberikan untuk atribut.
default
)Nilai awal penggabungan nilai awal properti longhandnya:
background-image: none
background-position: 0% 0%
background-size: auto auto
background-repeat: repeat
background-origin: padding-box
background-style: is itself a shorthand, its initial value is the concatenation of its own longhand properties
background-clip: border-box
background-color: transparent
background
deskripsi lebih lanjut di siniUpd2: Memperjelas background:none;
spesifikasi dengan lebih baik .
console
di demo ini jsfiddle.net/dnzy2/6
Untuk melengkapi jawaban lain: jika Anda ingin menyetel ulang semua properti latar belakang ke nilai awalnya (yang mencakup background-color: transparent
dan background-image: none
) tanpa secara eksplisit menentukan nilai apa pun seperti transparent
atau none
, Anda dapat melakukannya dengan menulis:
background: initial;
background-color: transparent; background-image: none;
. Stylesheet pengguna mungkin mengganti salah satu atau kedua nilai tersebut, tetapi akan melakukannya persis seperti jikabackground-color: transparent; background-image: none;
telah ditulis secara eksplisit.