아니요, opacity
콘텐츠를 포함한 전체 요소에 영향을 미치고이 동작을 변경할 방법 이 없으므로이 작업을 수행 할 수 없습니다 . 다음 두 가지 방법으로이 문제를 해결할 수 있습니다.
보조 div
div
배경을 유지하기 위해 컨테이너에 다른 요소를 추가 합니다. 이것은 브라우저간에 가장 친숙한 방법이며 IE6에서도 작동합니다.
HTML
<div class="myDiv">
<div class="bg"></div>
Hi there
</div>
CSS
.myDiv {
position: relative;
z-index: 1;
}
.myDiv .bg {
position: absolute;
z-index: -1;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: url(test.jpg) center center;
opacity: .4;
width: 100%;
height: 100%;
}
jsFiddle에서 테스트 케이스 보기
: before 및 :: before 의사 요소
또 다른 트릭은 CSS 2.1 :before
또는 CSS 3 ::before
의사 요소를 사용하는 것입니다. :before
가상 요소는 IE 버전 8부터 지원되지만 ::before
의사 요소는 전혀 지원되지 않습니다. 이것은 버전 10에서 수정 될 것입니다.
HTML
<div class="myDiv">
Hi there
</div>
CSS
.myDiv {
position: relative;
z-index: 1;
}
.myDiv:before {
content: "";
position: absolute;
z-index: -1;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: url(test.jpg) center center;
opacity: .4;
}
추가 참고 사항
z-index
당신 의 행동으로 인해 컨테이너에는 Z- 색인을 설정 z-index
하고 배경 이미지 에는 음수 를 설정해야합니다.
테스트 케이스
jsFiddle의 테스트 사례를 참조하십시오.