问题 即使没有加载图像,如何强制占用宽度


我正在加载一堆img,我希望它们占用文档的空间,即使它们没有加载,或者还没有完成加载。

我尝试指定宽度和高度(作为属性本身,并在样式属性中),并发现如果图像不加载,图像将不占用空间令人沮丧。

当然,必须有一种方法可以将img强制为特定尺寸,即使该图像无法加载也是如此。

谢谢


12326
2017-09-25 00:30


起源



答案:


当然有:

<img src="path/to/image.png" height="50" width="20" />

另外,指定宽度和高度的原因 style="/* css */" 属性不起作用是因为默认情况下,图像是内嵌元素。如果你指定了 display: block 图像会接受 width 和 height 值。

如果你添加到css / style:

display: inline-block;

它应该工作。我不确定 为什么 Firefox不尊重宽度/高度属性,但仍然如此。即使是IE,也有定义 doctype 应该尊重 display: inline-block从那以后 img 默认情况下,元素无论如何都是内联的。


12
2017-09-25 00:33



@Andrew Vit,感谢编辑。当我在您执行编辑的同时添加信息时,我意外地取消了它。撤销是偶然的,是一种疏忽。编辑你的编辑,它属于哪里! =) - David Thomas
如果图像未加载,则无效。至少,在Windows上的最新FF中。 - Sambo
@Sambo,也不是Ubuntu 10.04上的Firefox 3.6.10。请参阅编辑,和 jsbin演示,它现在应该工作。 - David Thomas
@David如何在IE中定义DOCTYPE以尊重 display: inline-block?谢谢。 - Jeaf Gilbert
自从我使用IE以来已经有一段时间了,但看看: Doctype.com, 要么 htmlhelp.com 为了想法。这主要取决于您的使用情况,但我个人建议 <!DOCTYPE html> 现在,但其他html或xhtml严格都是好的。 - David Thomas


答案:


当然有:

<img src="path/to/image.png" height="50" width="20" />

另外,指定宽度和高度的原因 style="/* css */" 属性不起作用是因为默认情况下,图像是内嵌元素。如果你指定了 display: block 图像会接受 width 和 height 值。

如果你添加到css / style:

display: inline-block;

它应该工作。我不确定 为什么 Firefox不尊重宽度/高度属性,但仍然如此。即使是IE,也有定义 doctype 应该尊重 display: inline-block从那以后 img 默认情况下,元素无论如何都是内联的。


12
2017-09-25 00:33



@Andrew Vit,感谢编辑。当我在您执行编辑的同时添加信息时,我意外地取消了它。撤销是偶然的,是一种疏忽。编辑你的编辑,它属于哪里! =) - David Thomas
如果图像未加载,则无效。至少,在Windows上的最新FF中。 - Sambo
@Sambo,也不是Ubuntu 10.04上的Firefox 3.6.10。请参阅编辑,和 jsbin演示,它现在应该工作。 - David Thomas
@David如何在IE中定义DOCTYPE以尊重 display: inline-block?谢谢。 - Jeaf Gilbert
自从我使用IE以来已经有一段时间了,但看看: Doctype.com, 要么 htmlhelp.com 为了想法。这主要取决于您的使用情况,但我个人建议 <!DOCTYPE html> 现在,但其他html或xhtml严格都是好的。 - David Thomas


简单的答案:将图像包装成一个 <div> 具有固定的宽度。

<div style="width: 400px;"><img src="404.png" /></div>

如果你设置填充,边框等 0,你不会注意到div就在那里。


0
2017-09-25 00:34



那为什么要把它放在那里?该 div 将缩小到适合图像 除非 它( div) 被设定为 display: block 要么 inline-block。所以你只需要指定即可 display: block; (要么 inline-block) img加上 img 接受 width 和 height 属性是有原因的。 - David Thomas
不, div 将 不 缩小以适应图像 - display: block 是a的默认值 div。另一方面,指定 display: block 在图像上可能也会起作用。问题是,如果加载的图像小于html指定的尺寸,图像将会失真。 - Tomas Lycken