The opacity
gaya mempengaruhi seluruh elemen dan segala sesuatu di dalamnya. Jawaban yang benar untuk ini adalah dengan menggunakan warna latar belakang rgba.
CSS cukup sederhana:
.myelement {
background: rgba(200, 54, 54, 0.5);
}
... dengan tiga angka pertama adalah nilai merah, hijau dan biru untuk warna latar belakang Anda, dan yang keempat adalah nilai saluran 'alfa', yang bekerja dengan cara yang sama seperti opacity
nilainya.
Lihat halaman ini untuk info lebih lanjut: http://css-tricks.com/rgba-browser-support/
Sisi negatifnya, ini tidak berfungsi di IE8 atau lebih rendah. Halaman yang saya tautkan di atas juga mencantumkan beberapa browser lain yang tidak berfungsi, tetapi semuanya sudah sangat tua sekarang; semua browser yang digunakan saat ini kecuali IE6 / 7/8 akan bekerja dengan warna rgba.
Kabar baiknya adalah Anda dapat memaksa IE untuk bekerja dengan ini juga, menggunakan peretasan yang disebut CSS3Pie . CSS3Pie menambahkan sejumlah fitur CSS3 modern ke versi IE yang lebih lama, termasuk warna latar belakang rgba.
Untuk menggunakan CSS3Pie untuk latar belakang, Anda perlu menambahkan -pie-background
deklarasi khusus ke CSS Anda, serta behavior
gaya PIE , sehingga lembar gaya Anda akan terlihat seperti ini:
.myelement {
background: rgba(200, 54, 54, 0.5);
-pie-background: rgba(200, 54, 54, 0.5);
behavior: url(PIE.htc);
}
Semoga membantu.
[EDIT]
Untuk apa nilainya, seperti yang telah disebutkan orang lain, Anda dapat menggunakan filter
gaya IE , dengan gradient
kata kunci. Solusi CSS3Pie sebenarnya menggunakan teknik yang sama di belakang layar, tetapi menghilangkan kebutuhan Anda untuk bermain-main secara langsung dengan filter IE, sehingga stylesheet Anda jauh lebih bersih. (itu juga menambahkan sejumlah besar fitur bagus lainnya juga, tapi itu tidak relevan dengan diskusi ini)