我有一张带链接的图片。如果由于某种原因没有图像,我希望“图像”显示标题。我在 PHP 中对此进行编码,这是我的代码行:
<a href='LINK.php?img=$id'><img src='$filename' alt='<h1>$username</h1>' width='500'></a>
它不起作用<h1>jerry></h1>
,如果 $username 是 jerry,则输出是纯文本中的“”,没有标题。
我该如何解决这个问题?
我有一张带链接的图片。如果由于某种原因没有图像,我希望“图像”显示标题。我在 PHP 中对此进行编码,这是我的代码行:
<a href='LINK.php?img=$id'><img src='$filename' alt='<h1>$username</h1>' width='500'></a>
它不起作用<h1>jerry></h1>
,如果 $username 是 jerry,则输出是纯文本中的“”,没有标题。
我该如何解决这个问题?
您可以在输出 html 之前检查文件是否存在。
if(file_exists($filename)){
echo "<img src='".$filename."' alt='".$username."' width='500' />";
}else{
echo "<h1>".$username."</h1>";
}
如果您不想让 PHP 检查这些文件,您也可以使用 onerror="" 事件来使用 javascript 为您修改这些信息。
在头部包括这个;
<script>
function switchImage(obj,un){
obj.remove();
document.getElementById("userImage").innerHTML = "<h1>" + un + "</h1>";
}
</script>
对于链接/标题,请执行以下操作:
echo "<a href='LINK.php?img=".$id."' id='userImage'><img onerror='switchImage(this,\"".$username."\");' src='".$filename."' alt='".$username."' width='500'></a>";
这就是你想要的:
<h1><a href='LINK.php?img=$id'><img src='$filename' alt='$username' width='500'></a></h1>
同样的效果,更好的搜索引擎优化,更容易。
这是不可能的,这不是 alt 的用途。Alt 是“替代文本”的缩写。它是图像尚未加载(尚未)时显示的文本。
此外,如果您希望它起作用,您应该使用该title
属性。相同的规则,但它是当您将鼠标悬停在它上面时显示的文本。
我认为您需要的解决方案是工具提示脚本。有很多可以找到,许多不同的风格,所以找到你喜欢的并不难。
简单的。检查文件是否存在于 PHP 代码中,并条件化呈现的标记。这假定图像位于运行 PHP 代码的同一台服务器上。
$relUrlPath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filename);
if(file_exists( realpath("." . $relUrlPath) ))
echo "<h1><img src='$filename' alt='$username' width='500'><h1>";
else
echo "<h1>Jerry</h1>";
这就是 alt 标签的本质;它是纯文本的。
您可以将文本样式应用于该图像,它们将应用于显示在其位置的任何文本。例如:
<a href='LINK.php?img=$id'><img src='$filename' class='headerimg' alt='$username' width='500'></a>
然后让你的 CSS 样式h1
流行起来:
.headerimg {
font-weight: bold;
font-size: 120%;
/* etc. */
}
如果您的使用首先是正确的,那么即使图像加载正确h1
,它也应该是:h1
<h1><a href=""><img src="" alt="" /></a></h1>
如果你的使用h1
不正确,例如你只使用它是因为它的默认 CSS 表示,你根本不应该使用它h1
。
不要滥用alt
。如果您需要为您的 stuff™ 自定义属性,请使用data-*
attributes。
某些图像可能需要更复杂的替代文本。在这种情况下,您可以使用longdesc
属性。或者使用object
元素:
<object data="img.png" type="image/png">
<!-- the alternative content goes here -->
<h1>…</h1>
<p>…</p>
</object>