html - 设置伪元素内容 url 图片

标签 html css pseudo-element css-content

我正在尝试将 data-img 设置为伪元素中的图像但没有成功,这是我目前所做的尝试:

标记:

<div data-img="http://www.hdwallpapers.in/walls/cute_baby_in_autumn-wide.jpg">radomPicture</div>

风格:

div:before{
    content: url('attr(data-img)');
    position:absolute;
    width:200px;
    height:200px;
}

结果损坏图像:http://jsfiddle.net/vfPKb/

enter image description here

最佳答案

我不完全确定这是可能的。你可能想弄乱 CSS variables ,尽管您可能会遇到与此处相同的问题;我不相信您可以向一个 CSS 函数发送一个从另一个函数生成的值(即使 CSS 变量也是通过 var 函数访问的)。我知道这不是那么令人满意,但您是否考虑过一些快速简单的 jQuery?

$("div[data-img]").each(function(){$(this).css("background-image", "url(" + $(this).attr("data-img") + ")")});

这是一个 fork 的 JSFiddle

如果您不愿意向您的元素添加新的库,您也可以使用 vanilla Javascript 做类似的事情。

编辑:

如果您能够编辑标记,一个简单得多(尽管可能不是完全可行)的解决方案可能是只使用内联样式:

<div style="background-image: url('http://www.hdwallpapers.in/walls/cute_baby_in_autumn-wide.jpg')">radomPicture</div>

我无法想象在许多情况下添加 img-data 属性会比添加 style 属性容易得多,但我想这取决于所有的正在生成此标记,或者该权力是否掌握在您手中。

关于html - 设置伪元素内容 url 图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18925765/

相关文章:

html - 无法找到填充的原因 - CSS

html - 如何在文本框下放置 SVG 元素?

javascript - 将 material-ui 为子组件生成的样式放在为父组件生成的样式之后?

html - 更早地折叠 Bootstrap 响应式导航栏

css - 如何在我的 css 中设置默认的伪样式?

css - Z-index with before 伪元素

html - 有没有办法删除 span 元素内的空间?

css - Gruntjs sass 插件

css - 绝对 :after displaying differently in firefox and webkit

javascript - 动态填充选择选项javascript