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

如何通过div的data-bg自定义属性在::after伪元素上正常显示图片

你的代码目前是直接把data-bg的属性值作为伪元素的文本内容返回,自然只会显示URL字符串,不会加载成图片。当前原生CSS暂不支持直接在url()中嵌套attr()函数动态拼接图片地址,推荐用更兼容的CSS自定义属性方案实现:

方案1:用CSS变量实现(推荐,兼容性好)

修改HTML代码

把图片地址封装成CSS变量放到div的style属性中:

<div style="--bg-image: url('https://via.placeholder.com/150')"></div>

修改CSS代码

两种写法可选:

写法A:直接通过content属性展示图片

body {
  background: red;
  width: 100vw;
  height: 100vh;
}

div::before {
  content: var(--bg-image);
  display: block;
}

写法B:作为背景图展示(更灵活,可控制大小、位置)

body {
  background: red;
  width: 100vw;
  height: 100vh;
}

div {
  /* 给父元素设置对应尺寸,可按需调整 */
  width: 150px;
  height: 150px;
  position: relative;
}

div::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: var(--bg-image);
  background-size: cover;
  background-position: center;
}

注意事项

  • 伪元素必须设置content属性,哪怕是空字符串''才会正常渲染
  • 如果选择背景图写法,需要保证伪元素或者父元素有明确的宽高,否则元素高度为0看不到内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:36:03