วิธีแก้ปัญหาด้วย 1 div และไม่มีภาพโปร่งใส:
คุณสามารถใช้คุณสมบัติ multibackground CSS3 และวางพื้นหลังสอง: หนึ่งกับภาพอีกด้วยแผงโปร่งใสเหนือ (เพราะฉันคิดว่าไม่มีวิธีการตั้งค่าความทึบของภาพพื้นหลังโดยตรง):
background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%), url(bg.png) repeat 0 0, url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,0.7))), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -webkit-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -ms-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: linear-gradient(to bottom, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
คุณไม่สามารถใช้rgba(255,255,255,0.5)
เพราะเพียงอย่างเดียวมันเป็นที่ยอมรับที่ด้านหลังเท่านั้นดังนั้นคุณจึงใช้การไล่ระดับสีที่สร้างขึ้นสำหรับแต่ละเบราว์เซอร์สำหรับตัวอย่างนี้ แต่แนวคิดดังต่อไปนี้:
background: tranparentColor, url("myImage");
http://jsfiddle.net/pBVsD/1/
opacity: ...
ในเบราว์เซอร์ทั้งหมดได้ดีกว่า!