我希望能够通过CSS属性进行旋转,例如:
<my-object data-angle="225"></my-object>
我目前的CSS代码是
transform:rotate(attr(data-angle)deg);
但是这会引发一个错误,正确的语法是什么?
我希望能够通过CSS属性进行旋转,例如:
<my-object data-angle="225"></my-object>
我目前的CSS代码是
transform:rotate(attr(data-angle)deg);
但是这会引发一个错误,正确的语法是什么?
我没抱太大希望他们会按照Asim指出的标准完全实现,但好消息是,你可以通过自定义属性(Custom Properties)或者称作CSS变量(CSS variables)来实现几乎相同的功能。
对于DOM元素有一个Javascript API,可以获取和设置这些变量。
el.style.setProperty('--foo', 'my custom property value')
如果您不介意使用内联style
属性,甚至可以直接在HTML中设置它:
<div style='--foo:"my custom prop val";'>
以下是一个示例(此代码段在各个浏览器中根据自定义属性的支持情况而有所不同):
:root {
--rotation: 5deg;
}
.rotate {
padding: 0.2em;
transition: transform .2s;
will-change: transform;
}
.rotate:hover {
transform: rotate(var(--rotation));
}
.more {
--rotation: 15deg;
}
<button class='rotate'>rotation</button>
<button class='rotate more'>more rotation</button>
<button class='rotate' style='--rotation: 30deg;'>yet more rotation</button>