이미지 너비를 부모 div의 100 %로 설정하지만 자체 너비보다 크지 않아야합니다.


125

이미지를 (동적 크기로 제한없이) 부모 div만큼 넓게하려고하지만 너비가 자체 너비보다 100 % 넓지 않는 한 이미지를 얻으려고합니다. 나는 이것을 시도했지만 아무 소용이 없었다.

img {
    width: 100%;
    height: auto;
    max-width: 100%;
}

이 이미지의 대부분은 부모 div보다 넓기 때문에 그에 따라 크기를 조정하고 싶지만 작은 이미지가 거기에 나타나고 일반 크기보다 확장되면 실제로 끔찍하게 보입니다. 이 작업을 수행하는 방법이 있습니까?


5
지정 만하면 어떻게됩니까 max-width: 100%?
Fyodor Soikin

@Fyodor Soikin-답변으로 알려 주시면 투표 해 드리겠습니다.
Gert Grenander

그래도 최대 너비를 지원하는 브라우저를 고려하는 것이 좋습니다.
kbrimington

kbrimington은 테이블을 잘 보여줍니다. reference.sitepoint.com/css/max-width#compatibilitysection 에 따르면 IE8의 구현은 버그가 있습니다.
Alfonso

답변:


221

max-width: 100%혼자 지정 하면됩니다.


1
크롬은 상황에 관계없이 단순히 100 %로 유지하는 것 같습니다. 아마도 베타 소프트웨어에 대한 나의 연구를 끊임없이 바라보아야 할 것입니다. 감사합니다!
Alfonso

최대 너비 100 %를 사용하지 않고이 작업을 수행하는 방법 React-Native에서는 백분율을 사용할 수 없습니다.
Croolsby

당신이 비율을 사용할 수 있습니다 @Croolsby이 '100 %'처럼, 네이티브 반응하지만, 문자열 값에
라파엘 호프 세 피안

9

Google 검색 에서이 게시물을 찾았으며 @jwal 회신 덕분에 문제를 해결했지만 그의 해결책에 하나를 추가했습니다.

img.content.x700 {
  width: auto !important; /*override the width below*/
  width: 100%;
  max-width: 678px;
  float: left;
  clear: both;
}

위의 내용으로 최대 너비를 이미지가있는 콘텐츠 컨테이너의 크기로 변경했습니다.이 경우 컨테이너 너비-패딩-보더 = 최대 너비

이렇게하면 내 이미지가 포함 된 div를 벗어나지 않고 콘텐츠 div 내에서 이미지를 플로팅 할 수 있습니다.

IE 9, FireFox 18.0.2 및 Chrome 25.0.1364.97, Safari iOS에서 테스트했으며 작동하는 것 같습니다.

추가 : 678px (최대 너비)로 표시된 1024px 너비의 이미지와 500px (이미지 너비)로 표시된 500px 너비의 이미지에서 이것을 테스트했습니다.


1
사용하여 width:auto !important;이미지가 컨테이너와 IE11 이미지를 확장하지 않는 것보다 더 큰 것이 어디 나를 위해 IE11에서 문제를 해결했습니다. img선택기 에서 이것을 설정하면 IE11의 문제가 정렬됩니다. 그러나 width:100%;다른 규칙없이 설정 하면 IE11에서 아무것도하지 않았습니다. 따라서 이미지를 컨테이너 크기로 축소하려면 "재정의"를 포함해야합니다.
lowtechsun

3

너비를 100 %로 설정하면 원래의 전체 크기 이미지가 아닌 div의 전체 너비가됩니다. 자바 스크립트 나 이미지를 측정 할 수있는 다른 스크립팅 언어 없이는 그렇게 할 수 없습니다. 너비가 200px와 같이 div의 고정 너비 또는 고정 높이를 가질 수 있으면 이미지에 채울 범위를 지정하기 가 너무 어렵지 않아야합니다 . 그러나 200x300 픽셀 상자에 20x20 픽셀 이미지를 넣으면 여전히 왜곡됩니다.


1
가능할 때마다 실제 사례를 제공하십시오. 좋습니다. :)
bhb

1

선 스타일-이것은 매번 나에게 효과적입니다.

<div class="imgWrapper">
    <img src="/theImg.jpg" style="max-width: 100%">
</div>

0

최대 너비를 설정해야하며 원하는 경우 측면 중 하나에 패딩을 설정할 수도 있습니다. 필자의 경우 최대 너비 : 100 %는 좋지만 이미지는 화면 끝 옆에있었습니다.

  max-width: 100%;
  padding-right: 30px;
  /*add more paddings if needed*/

0

나는 또한 같은 문제가 있었지만 CSS의 높이 값을 자동으로 설정하면 문제가 해결되었습니다. 또한 display 속성을 수행하는 것을 잊지 마십시오.

  #image {
      height: auto;
      width: auto;
      max-height: 550px;
      max-width: 1200px;
      margin-left: auto;
      margin-right: auto;
      display: block;
 }  

fyi .. 당신은 height : auto 및 width : auto를 제거 할 수 있습니다. 최대 높이와 ​​최대 너비는 같습니다.
Debbie Kurth



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.