html - 在背景图像之前/之后使用 css 中的数据属性

标签 html css pseudo-element

所以我有如下所示的 HTML 标记:

<a href="#" data-icon="data:image/png;base64,iVKAInsdal...">Some link</a>

然后我想在我的 CSS 中使用那个 data-icon 来显示为 base 64 背景图像。像这样的东西:

a:before {
    content: "";
    width: 16px;
    height: 16px;
    padding-left: 16px;
    background: url(attr(data-icon)); // this doesn't work
}

有什么办法吗?

最佳答案

This IS possible!

(但不是你想象的那样)

a{
    background-image:url(https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRrlZZQ3MwNcconkIeLX3_nS_IV81gJ8rincQsipqXGsiBkPmCX);
    background-repeat:no-repeat;
    background-position:1000px 1000px;
}

a:before {
    content: '';
    width: 16px;
    height: 16px;
    padding-left: 16px;
    background-image: inherit;
    background-position:0px 0px;
}

很遗憾,您尝试执行的操作将不起作用,attr 仅适用于 content 属性。

唯一可能的选择是给父元素一个背景图片,然后将伪元素上的background-image设置为inherit。如果将父元素 background-position 设置在其边界之外,则伪元素为零,它会产生相同的效果,即父元素上没有图像,但伪元素上有图像。

关于html - 在背景图像之前/之后使用 css 中的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816065/

相关文章:

html - 如何正确决定 Angular 2 中的组件应该是什么?

javascript - 如何在单个变量下为下拉列表设置多个值?

css -::selection 伪元素大纲属性

jquery - 只使用 Bootstrap 4 的一小部分?

javascript - 如何更改 chardin.js 中的文本颜色和样式

css - div 上的双向箭头

html - 我如何将两条 HTML 伪元素线与另一条垂直伪线连接起来,跨越表格行?

javascript - 如何使 div 与页面上的特定 td 对齐?

html - 字体不呈现(使用 Bootstrap )

html - 单选按钮不会显示/隐藏 div