Php 未找到图像时的图像高度和宽度

Php 未找到图像时的图像高度和宽度,php,html,css,Php,Html,Css,我有以下代码: <div> <img src="../images/curry.jpg" height="242" width="300" alt="Can't find image (http://localhost/images/curry.jpg)"> </div> 我试图精确地布局一个页面,因此,即使找不到图像,我也希望Alt文本占据给定的高度和宽度 1) 这就是HTML/CSS的工作原理吗 2) 如果没有,因为我是从PHP生

我有以下代码:

<div>
  <img src="../images/curry.jpg" height="242" width="300" 
       alt="Can't find image (http://localhost/images/curry.jpg)">
</div>

我试图精确地布局一个页面,因此,即使找不到图像,我也希望Alt文本占据给定的高度和宽度

1) 这就是HTML/CSS的工作原理吗


2) 如果没有,因为我是从PHP生成HTML的,我能做些什么来实现我想要的吗?例如,如果我检查不存在,而不是IMG tage,生成一个包含我的Alt文本的所需大小的字段集,它会起作用吗?

如果您使用PHP生成页面,您只需固定div的宽度/高度即可


至于“Alt Text”,你能给我一个你想要的小屏幕截图吗?我真的不明白你所说的占据给定尺寸是什么意思

第一个问题的答案是肯定的。 Alt属性用于SEO目的,其行为与您所看到的一样

这是可能的,尽管我必须警告您额外的开销, 有一个功能可以检查图像是否存在

如果该函数返回false而不是回显图像,则只回显 “
找不到图像(http://localhost/images/curry.jpg)

” 并向包装div添加一个样式属性,该属性表示所需的宽度和高度

<div style='height: 242px;width: 300px'>

浏览器找不到图像时会发生什么情况取决于浏览器。只需在几个浏览器中查看一下,看看会发生什么:

Safari使用指定的尺寸,但在该空间中显示“断开图像”图标

Firefox4使用
alt
文本,但忽略维度

Opera和Chrome使用指定的尺寸,并在该空间中显示
alt
文本

我没有费心检查IE,因为那些机器藏在我测试实验室的壁橱里:)

如果您需要特定的行为,那么您必须使用包装器
display:inline block
以及所需的尺寸来完成。如果你想覆盖所有的浏览器,那么安排适当的内容将更加棘手

用于无法显示图像的用户代理(如屏幕阅读器和纯文本设备):

对于无法显示图像、表单或小程序的用户代理,此属性指定备用文本


+1.谢谢回复。谢谢我的意思是,我希望alt文本“找不到图像()”占据242 X 300像素的区域。为了实现这一点,您可以轻松地将
设置为
display:block
display:inline block
,并对其应用宽度和高度。只是默认的显示是内联的,所以当它返回到一个未替换的元素时,宽度/高度被忽略了。值得一提的是,Firefox的行为还取决于怪癖与标准模式以及其他一些事情…@Boris:我有点惊讶Firefox没有表现得更理智;OTOH,我在用jsfiddle.net检查东西,所以我不能完全控制doctype。我认为Opera和Chrome的行为是最明智的,但现实与理智无关。哦,Firefox的行为完全明智。在标准模式下,如果无法加载图像,则将其视为
,其中包含alt文本。然后,布局仅取决于应用于它的样式;这让页面作者完全控制他们想要发生的事情。如果
display:inline
,那么它当然会忽略宽度/高度。如果它是
display:inline block
,那么它将使用给定的大小。你想要哪一个完全取决于你;这两种方法都有使用案例。@Boris:对于
的默认
显示值,您有官方参考吗?我以为这是
inline block
而不是
inline
,但我以前就错了,如果这次我错了,我很乐意被纠正。显示
首字母:inline
。因此,所有内容的显示都是内联的,除非由某个样式表(作者、用户或用户代理)另行设置样式。典型UAs的默认样式表不会更改
的显示值。实际上,您可以在任何浏览器中检查这一点,只需创建一个带有
的页面,并查看
getComputedStyle
display
返回的内容。