더 많은 HTML 코드가 필요하지만 http://alistapart.com/article/creating-intrinsic-ratios-for-video/과 동일한 기본 기술을 사용할 수 있습니다. 배경 이미지에 고유 한 크기가 없으므로 어딘가에 너비를 설정해야하지만 부모 요소에서 올 수 있습니다. 본질적으로 :
<div class="wrapper-with-intrinsic-ratio"><div class="element-to-stretch"></div></div>
.wrapper-with-intrinsic-ratio {
position: relative;
padding-bottom: 20%; /* Adjust this to suit the aspect ratio of the image */
height: 0;
width: 100%;
}
.element-to-stretch {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("http://placehold.it/350x150/000/fff");
background-size: cover;
}
.element-to-stretch:hover {
background-image: url("http://placehold.it/350x150/ccc/fff");
}
여기는 some documentation on background-size입니다. 둘째, 종횡비가 까다로울 수 있습니다. 비율이 2 : 1 (따라서 이미지의 너비가 높이의 2 배입니다) 인 경우 의 padding-bottom
은 50%
입니다. 그것을 (높이 ÷ 너비) × 100으로 해결하십시오. 따라서 예를 들어 350x150 픽셀 이미지는 padding-bottom: 42.857%;
이고 150x350px it'd be 233.333%
이미지 일 것입니다.
또는 두 개의 img 요소를 사용하여 수행 할 수도 있습니다. 부끄럽지만 ...
<div>
<img src="normal.jpg" alt="" class="normal"><img src="hover.jpg" alt="" class="hover">
</div>
div img { max-width: 100%; height: auto; }
div img.normal,
div:hover img.hover { display: block; }
div img.hover,
div:hover img.normal { display: none; }
또는 자바 스크립트를 사용할 수 있습니다.
당신은 더 설명 할 수 있습니까? 나는 이해하지 못한다. – pbenard
나는 이와 같은 반응 마우스 오버 이미지를 원합니다. http://jsfiddle.net/4gac7/1/ 모바일에서는 이미지를 터치 할 수 있고 이미지 위에 마우스가 표시됩니다. 문제는 div가 너비와 높이를 필요로하기 때문에 반응이 없습니다. – l00per