不知道你background是怎么设置的,如果你同时设置了背景图片和背景色,那么你要把背景图片写在背景色前面,否则背景色会覆盖背景图片;简写的话就是:
background: url(图片) no-repeat #666;不简写的话就是先写background-image再background-color
如果不设置背景色的话,那么div默认是没有颜色的,你看到的背景色只是底层其他div的颜色而已,如果所有层都没设定颜色,那就是body默认自带的白色,也就是浏览器自带的白色;
至于你这里图片变为半透明,可能是你本身图片就被处理成了半透明效果,不会是背景色覆盖图片这个原因,因为背景色默认不会有透明度,要挡住的话就绝对看不到图片了;要不然就是你给div设置了半透明滤镜,造成div背景半透明效果并把背景图片覆盖了
我建议你半透明滤镜少用,因为兼容性不好,如果你想要背景色半透明,建议你还是用ps把有色图层处理成半透明效果后切成1*1px的图片做背景平铺,再在这个div内添加你所要的图片