如何使用CSS在div中放置图片?


97

我想将所有图像都放在CSS中(我知道的唯一方法就是将它们作为背景图像放置)。

但是此解决方案中的问题是您永远不能让div占用图像的大小。

所以我的问题是:<div><img src="..." /></div>在CSS中拥有等效功能的最佳方法是什么 ?


6
背景不是替代方法:如果图像与内容理解无关,则必须使用背景,否则应保持常规<img>
Fabrizio Calderan 2012年

除了手动找出图像的大小并给div相同之外,我认为您不能。
贾瓦德

正确的方法:<img>如果图像是相关的,<div>则如果图像仅是糖果色,则使用背景。如果图像大小可变且很重要,则应使用<img>。为什么要使用背景?
亚历山德罗·佩扎托

Answers:


133

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没什么,因为div的大小为0x0,并且隐藏在图像后面。
亚历山德罗·佩扎托

您应该删除:before,我编辑了我的答案。在此处检查jsfiddle.net/2pFhc
Dany Y

2
@DanyY嘿,您说过更新了小提琴,但是我只看到绿色边框:jsfiddle.net/2pFhc为什么?
沙里科夫·弗拉季斯拉夫

3
在Firefox 55上,这对我不起作用。需要一些跨浏览器的决定。在||之后使用。
Marselo Bonagi

1
使用:: before为我在FF和chrome上工作,并显示: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 */
}

否则,只用它们


我试图避免固定尺寸。
丹妮·Y

如果您尝试避免使用固定大小,那么最简单的方法是使用普通img标签。您打算如何完成?也许还有另一种编程解决方案,例如通过PHP getimagesize获取图像大小,然后为该特定图像回显相应的styleand或imgtag。
JudeJitsu


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");
      });
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.