我试图添加颜色到不同的元素与数据属性在我的CSS,但不工作...
我遵循以下指示:
attr()函数:从已编辑文档中收集的属性值。
W3C语言
HTML语言
<table>
<tr>
<td>
<span class="bgborder" data-color="#e7663f"></span>
<i class="fa fa-copy"></i>
</td>
<td>
<span>Blaablaaablaaa</span>
</td>
</tr>
</table>
<table>
<tr>
<td>
<span class="bgborder" data-color="#77c385"></span>
<i class="fa fa-upload fa-fw"></i>
</td>
<td>
<span>Blablaablaaa</span>
</td>
</tr>
</table>
CSS
.bgborder {
display: block;
width: 5px;
height: 100%;
position: absolute;
top: 0;
background-color: attr(data-color color);
}
什么都没有......我说的对吗?
在我的Chrome检查器中,我看到了以下内容:
background-color: attr(data-color color);
/!\ Invalid property value
我不明白为什么...???
感谢您的帮助:)
7条答案
按热度按时间jexiocij1#
您可以从html传递css值:
到CSS:
源代码:https://css-tricks.com/css-attr-function-got-nothin-custom-properties/代码源代码:https://codepen.io/chriscoyier/pen/EbxVME
8cdiaqws2#
阅读文档始终是一个好主意:https://developer.mozilla.org/en/docs/Web/CSS/attr
惊喜吧!如果没有任何东西支持它,那么它就不会工作;)
备选方案:如果您知道自己的颜色范围有限,请尝试:
正如您所看到的,这允许灵活性,例如定义您自己的颜色;)
pexxcrt23#
如果只讨论颜色,则可以使用currentColor值作为代理。
例如:
HTML语言
CSS
wmvff8tz4#
目前,CSS
attr
函数只能在浏览器中与content
属性一起使用请参阅此处了解兼容性
根据CSS 2规范:
限于内容属性
CSS3将对此(提案)进行扩展
..可用于所有属性;可能会传回
<string>
以外的值yr9zkbsy5#
我猜你正在寻找的是CSS variables,你可以在Chrome,Firefox和Safari上使用。
并可在Lea Verou的视频中看到更多内容
txu3uszq6#
另一个非常方便javascript:
其他贡献者概述的css解决方案通常更好更简单,所以JS解决方案在某种程度上是重新发明了轮子,但是确实明确地做了你在问题中想要做的事情,所以在这里是为了完整性。
xam8gpfp7#
不知何故,它总是可能的!.例如:让我们在css中定义一个全局变量:
在Javascript中:让我们修改javascript中的全局变量,将元素属性的内容赋值为值
现在,在Css中,让我们将全局变量的值插入到我们想要的元素中,然后尽情享受吧!