【问题标题】:Is it possible to only style part of an image's alt text?是否可以只设置图像替代文本的一部分?
【发布时间】:2013-03-09 11:44:57
【问题描述】:

基本上我想要这样的东西,<img src="doesntexist.png alt="Image does <b>Not</b> exist" />

编辑 感谢您提供的信息,但我希望在没有 JavaScript 的情况下完成此操作。

【问题讨论】:

标签: html css


【解决方案1】:

传统的 HTML 无法满足您的要求。

alt 属性定义在一组标签(即 img、area 和可选的 input 和 applet)中,以允许您为对象提供等效的文本。

http://www.w3.org/QA/Tips/altAttribute

当图像不可用、浏览器不显示或用户看不到图像时,Alt 属性用于显示图像的文本描述。一些用户可能是盲人、色盲或弱视。在这种情况下,alt 属性用于通过描述图像的意图来帮助用户。

您可能想要查看类似工具提示的内容。使用工具提示,您可以自定义样式以及它们对最终用户的显示方式。那里有很多。一个例子是 jQuery 的工具提示:http://jqueryui.com/tooltip/#custom-style

【讨论】:

  • 当图像不存在时,工具提示与替代内容不同。
  • 我知道这一点,但 OP 并没有真正说明他用这个做什么。很有可能他的意图是做类似工具提示的事情。如果是这样,我想为他指明正确的方向。
  • ...我认为这很清楚。无论如何,我是专门询问 alt 属性,而不是 title 属性(我一直相信它会产生类似工具提示的效果)。
  • 我仍然不确定您为什么要这样做。它的用途是什么? alt 属性用于特定事物--它提供替代文本。屏幕阅读器——如 JAWS——为盲人阅读 alt 属性。它是标记的一部分,应该被视为内容,而不是演示。没有原生的方式来设置属性的一部分。您可能需要重新评估实际问题并以不同的方式处理它。
【解决方案2】:

很遗憾,没有。然而,它可以被复制以允许使用 Javascript 进行标记。

function altContent(img) {
    var alt = document.createElement('div');

    alt.innerHTML = img.getAttribute('alt');

    img.parentNode.replaceChild(alt, img);
}

然后只需将属性onerror 添加到图像中,就像这样。

<img src="doesntexist.png alt="Image does <b>Not</b> exist" onerror="altContent(this)" />

JSFiddle Example

Cleaner Solution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2011-05-02
    相关资源
    最近更新 更多