이 스레드를 찾았 습니다. 이미지의 종횡비를 유지하면서 <div>를 채우기 위해 이미지를 늘리는 방법은 무엇입니까? — 그것이 내가 원하는 것이 전부는 아닙니다.
특정 크기와 그 안에 이미지가있는 div가 있습니다. 이미지가 가로인지 세로인지에 관계없이 항상 div를 이미지로 채우고 싶습니다 . 그리고 이미지가 잘 렸는지 여부는 중요하지 않습니다 (div 자체에 오버플로가 숨겨져 있음).
이미지가 세로 경우 그래서 내가 원하는 width
일을 100%
하고는 height:auto
이 비율에 남아 있도록. 이미지가 가로 인 경우 내가 원하는 height
일을 100%
하고 width to be
auto`. 복잡해 보이죠?
<div class="container">
<img src="some-image.jpg" alt="Could be portrait or landscape"/>
</div>
어떻게해야할지 모르기 때문에 나는 단순히 내가 의미하는 바에 대한 빠른 이미지를 만들었습니다. 제대로 설명 할 수도 없습니다.
그래서 나는 이것을 묻는 첫 번째 사람이 아닌 것 같습니다. 그러나 나는 이것에 대한 해결책을 실제로 찾지 못했습니다. 새로운 CSS3 방식이있을 수 있습니다. 저는 flex-box를 생각하고 있습니다. 어떤 생각? 내가 예상했던 것보다 훨씬 쉬울 수도 있습니다.
답변
원하는 것을 올바르게 이해했다면 가로 세로 비율을 유지하기 위해 너비 및 높이 속성을 이미지에서 제외하고 flexbox를 사용하여 중앙 정렬을 수행 할 수 있습니다.
.fill {
display: flex;
justify-content: center;
align-items: center;
overflow: hidden
}
.fill img {
flex-shrink: 0;
min-width: 100%;
min-height: 100%
}
<div class="fill">
<img src="https://lorempizza.com/320/240" alt="" />
</div>
IE9, Chrome 31 및 Opera 18에서 성공적으로 테스트했습니다. 그러나 다른 브라우저는 테스트되지 않았습니다. 항상 그렇듯이 특정 지원 요구 사항을 고려해야합니다.
답변
조금 늦었지만 똑같은 문제가 있었고 마침내 다른 stackoverflow 게시물 ( https://stackoverflow.com/a/29103071 ) 의 도움으로 해결했습니다 .
.img {
object-fit: cover;
width: 50px;
height: 100px;
}
이것이 여전히 누군가에게 도움이되기를 바랍니다.
추신 : 또한 max-height , max-width , min-width 및 min-height CSS 속성 과 함께 작동 합니다. 특히 100 % 또는 100vh / 100vw 와 같은 길이 단위 를 사용하여 컨테이너 또는 전체 브라우저 창을 채울 때 편리 합니다.
답변
오래된 질문이지만 지금은 방법이 있으므로 업데이트 할 가치가 있습니다.
올바른 CSS 기반 대답은를 사용 object-fit: cover
하는 것 background-size: cover
입니다. 위치 지정은 object-position
속성 별로 처리 되며 기본값은 중심입니다.
그러나 IE / Edge 브라우저 또는 Android <4.4.4에서는 지원되지 않습니다. 또한 object-position
Safari, iOS 또는 OSX에서는 지원되지 않습니다. Polyfill이 존재하며, object-fit-images 가 최상의 지원을 제공하는 것 같습니다.
속성의 작동 방식에 대한 자세한 내용 은 설명 및 데모 에object-fit
대한 CSS 트릭 문서를 참조하십시오 .
답변
이렇게해야합니다.
img {
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
}
답변
아래의 모든 답변은 너비와 높이가 고정되어있어 솔루션이 “응답하지 않음”을 나타냅니다.
결과를 얻지 만 이미지 반응을 유지하기 위해 다음을 사용했습니다.
- 컨테이너 내부에 원하는 비율로 투명한 GIF 이미지를 배치하십시오.
- 크기를 조정하고 자르려는 이미지와 함께 이미지 태그 인라인 CSS 배경 제공
HTML :
<div class="container">
<img style="background-image: url("https://i.imgur.com/XOmNCwY.jpg");" src="img/blank.gif">
</div>
.container img{
width: 100%;
height: auto;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
답변
css flex 속성을 사용하여이를 달성 할 수 있습니다. 아래 코드를 참조하십시오
.img-container {
border: 2px solid red;
justify-content: center;
display: flex;
flex-direction: row;
overflow: hidden;
}
.img-container .img-to-fit {
flex: 1;
height: 100%;
}
<div class="img-container">
<img class="img-to-fit" src="https://images.pexels.com/photos/8633/nature-tree-green-pine.jpg" />
</div>