CSS로 div에 이미지를 넣는 방법은 무엇입니까?


97

모든 이미지를 CSS로 만들고 싶습니다 (배경 이미지로 넣는 방법을 아는 유일한 방법).

그러나이 솔루션의 문제는 div가 이미지의 크기를 차지하도록 할 수 없다는 것입니다.

그래서 내 질문은 : <div><img src="..." /></div>CSS 에서에 상응하는 가장 좋은 방법은 무엇 입니까?


6
배경은 대안이 아닙니다. 이미지가 내용 이해력과 관련이없는 경우 배경을 사용해야합니다. 그렇지 않으면 규칙적이어야합니다<img>
Fabrizio Calderan

수동으로 이미지의 크기를 알아 내고 div에 똑같이주는 것 외에는 할 수 없다고 생각합니다.
Jawad

올바른 방법 : <img>이미지가 관련성이 <div>있는 경우, 이미지가 눈에 띄는 경우에만 배경을 사용합니다. 이미지 크기가 가변적이고 중요한 경우 <img>. 배경을 사용하는 이유는 무엇입니까?
Alessandro Pezzato

답변:


134

Jaap의 답변 :

<div class="image"></div>

그리고 CSS에서 :

div.image {
   content:url(http://placehold.it/350x150);
}​

이 링크에서 시도해 볼 수 있습니다 : http://jsfiddle.net/XAh2d/

이것은 CSS 콘텐츠에 대한 링크입니다 http://css-tricks.com/css-content/

이것은 Chrome, firefox 및 Safari에서 테스트되었습니다. (저는 Mac을 사용하고 있으므로 누군가 IE에 결과가 있으면 추가하라고 알려주세요)


이것은 div당신이 요청한 것과 같은 크기의 이미지를 가져 가지 않습니다 . div에 테두리를 추가하면 어떻게되는지보세요 : jsfiddle.net/XAh2d/6 Nothing div의 크기가 0x0이고 이미지 뒤에 숨겨져 있기 때문입니다.
Alessandro Pezzato

당신은 제거해야합니다 : 전에, 나는 내 대답을 편집했습니다. 여기에서 확인하십시오 jsfiddle.net/2pFhc
Dany Y

2
@DanyY 헤이, 당신은 당신의 바이올린을 업데이트했다고 말했지만 거기에는 녹색 테두리 만 보입니다 : jsfiddle.net/2pFhc 왜?
Sharikov Vladislav 2014

3
이것은 firefox 55에서 저에게 효과가 없었습니다. 크로스 브라우저 결정이 필요합니다. before | after와 함께 작동합니다.
Marselo Bonagi 2017 년

1
FF 및 크롬에서 :: before 및 display : flex; => jsfiddle.net/q0vL1m7v/1
Catweazle

21

다음과 같이 할 수 있습니다.

<div class="picture1">&nbsp;</div>

이것을 CSS 파일에 넣으십시오.

div.picture1 {
   width:100px; /*width of your image*/
   height:100px; /*height of your image*/
   background-image:url('yourimage.file');
   margin:0; /* If you want no margin */
   padding:0; /*if your want to padding */
}

그렇지 않으면 그냥 평범하게 사용하십시오.


고정 된 크기를 피하려고했습니다.
Dany Y

고정 된 크기를 피하려는 경우 가장 쉬운 방법은 일반 img태그 를 사용하는 것 입니다. 이것으로 무엇을 성취하려고합니까? PHP getimagesize를 통해 이미지 크기를 가져온 다음 해당 이미지에 해당하는 style및 또는 img태그를 에코하는 것과 같은 프로그래밍 방식으로 다른 솔루션이있을 수 있습니다.
JudeJitsu

5

이것을 샘플 코드로 사용하십시오. 이미지 높이와 이미지 너비를 이미지 크기로 바꿉니다.

<div style="background:yourimage.jpg no-repeat;height:imageheight px;width:imagewidth px">
</div>

작동하지만 문제 "CSS"에 대한 한
마이클 BIERMANN

아마 그렇게해서는 안됩니다.
jasonleonhard

5

Javascript / Jquery 사용 :

  • 숨겨진 이미지로드 img
  • 이미지가로드되면 너비와 높이를 가져옵니다.
  • div너비, 높이 및 배경을 동적으로 만들고 설정
  • 원본 제거 img

      $(document).ready(function() {
        var image = $("<img>");
        var div = $("<div>")
        image.load(function() {
          div.css({
            "width": this.width,
            "height": this.height,
            "background-image": "url(" + this.src + ")"
          });
          $("#container").append(div);
        });
        image.attr("src", "test0.png");
      });
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.