img 元素的内容属性

Posted

技术标签:

【中文标题】img 元素的内容属性【英文标题】:content attribute of img elements 【发布时间】:2012-06-25 19:16:02 【问题描述】:

在检查 Chrome 开发工具时,我注意到以下 CSS 片段:

img 
    content: url(image-src.png);

在 Chrome 中完美运行(见下面的截图)。

这允许我通过 CSS 定义 标签的 src 属性。在 Firefox 中不起作用。到目前为止,我认为不可能通过 css 直接修改 src 属性,我还没有发现有人在谈论这个。 那么,这只是 Chrome 中的一个专有添加,还是 Chrome 实现了 W3C 草案或类似的东西,我不知道?

【问题讨论】:

【参考方案1】:

The content property as defined in CSS 2.1 仅适用于 :before:after 伪元素。通过 CSS 规则,您可以为任何元素指定任何属性,但规范对哪些属性“适用于”(即影响)各种元素有限制。

CSS3 Generated and Replaced Content Module 是一个工作草案,将content property 描述为适用于所有元素。它有一个用图像替换h1 元素的内容的示例,当然也可以对img 元素执行相同的操作。

但这只是一个工作草案。 CSS 实现状态的常用资源QuirksMode.org CSS info 和Caniuse.com,不说明情况;他们只描述了对 content:before:after 的支持(除了 IE 7 和更早版本之外,这是相当普遍的。

【讨论】:

它不仅只是一个WD,而且似乎被抛弃了。我不知道这些实现将走向何方,也不知道它们是否会完全实现这个模块。 @BoltClock,WD 自 2003 年以来一直没有工作,但在 W3C 概述文档 w3.org/Style/CSS/current-work.en.html 中,它位于“重写”部分,而不是“已废弃”。有一份 2012 年 4 月 17 日的编辑草稿,虽然我不知道它的内容与 2003 年的草稿有何关系。我希望对content 的支持让普通元素变得更加普遍;除了 Chrome,Opera 和 Safari 都已经支持了。 啊,我没看到。谢谢!【参考方案2】:

现在你可以这样做了: http://chabada.esy.es/tests/0004.html

<style>
  .redcross 
    background: transparent url('redcross.png') no-repeat;
    display: block;
    width:  24px;
    height: 24px;
    
</style>

<img class="redcross">

【讨论】:

但是你需要知道图片的像素尺寸,否则会被裁剪。

以上是关于img 元素的内容属性的主要内容,如果未能解决你的问题,请参考以下文章

HTML5-嵌入内容

HTML标记语法之图片Img元素

置换元素与非置换元素

置换元素与不可置换元素

src和href属性的区别

img元素中的crossorigin属性