我想做一个鼠标悬浮的下拉列表,悬浮的容器做一个三角形,三角形的left需要动态的读取容器的大小设置,所以打算通过HTML的data-属性,然后让css读取并且使用这个属性。
现在的问题是,伪元素中content属性可以读取并且使用这个属性,但是left却无法使用这个
属性。
&-content {
position: relative;
&::before {
--left: attr(data-left); // 只能设置content,不能设置left
// --left: 43px; // 使用这个变量可以设置left,
position: absolute;
content: attr(data-left); // 读取并显示值43px
// left: 43px;
left: var(--left); // 如果是通过attr取data-left的值是无效的css属性
// background: #f5f5f5;
background: #f00;
width: 8.5px;
height: 8.5px;
transform-origin: center;
transform: rotate(45deg) translateY(-60%);
}
}
https://developer.mozilla.org...
https://caniuse.com/css3-attr
https://caniuse.com/css-genco...
mdn上说就是目前attr()只支持content