You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CSS attr()设置网站图片动态标签失败,求排查解决

图片署名标签不显示的问题排查与修复

核心错误点

  • 语法不兼容:你使用的attr(data-content, "Photo credit: Me")是CSS草案阶段的语法,目前主流浏览器均未支持这种带默认值的写法,这是标签内容完全不显示的关键原因。
  • 属性挂载位置错误:你把data-content属性加在了<img>标签上,但伪元素.image::after是绑定在<span class="image">元素上的,CSS无法跨层级读取子元素的自定义属性。

修正后的代码实现

CSS 部分

采用兼容性更好的方式实现“默认值+自定义内容”的效果:

/* Image */
.image {
  border: 0;
  display: inline-block;
  position: relative;
}
/* 有自定义署名时显示对应内容 */
.image[data-content]::after {
  content: attr(data-content);
}
/* 无自定义署名时显示默认文本 */
.image:not([data-content])::after {
  content: "Photo credit: Me";
}
.image::after {
  position: absolute; 
  bottom: 0; 
  right: 3em; 
  font-size: 0.7em; 
  color:rgba(0, 0, 0, 0.175);
}
.image img {
  display: block;
}
.image.left, .image.right {
  max-width: 30%;
}

HTML 部分

将data-content属性移到<span class="image">标签上:

<div class="row">
  <p> 
    <span class="image left" data-content="Photo credit: Others">
      <img src="images/image_1.png">
    </span>
  </p>
</div>

额外注意事项

由于你使用的是HTML5 UP模板,需检查模板内其他CSS规则是否覆盖了.image的position: relative属性——如果该属性被修改,伪元素的绝对定位会失效,同样会导致标签不显示。

内容的提问来源于stack exchange,提问作者Ogiad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:40:41