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
返回的内容。