[英]CSS get parent elements attribute
所以我只是遇到了这个问题。 假设我有以下标记:
<article data-color='#123456'>
<header>...</header>
<a href='#'>Lorem ipsum</a>...
...
</article>
所以我有一个带有自定义颜色属性的元素。 我想让标题将其作为背景色,并将链接作为一种颜色(颜色是随机生成的或用户定义的)。 有一种方法可以单独使用CSS吗? (我知道jQuery会做到这一点没有问题,但是我想尽可能地简化事情,而不是仅使用Javascript进行样式设置。)
您可以在CSS中使用属性选择器:
article[data-color="#123456"] header {
background-color: "#123456";
}
article[data-color="#123456"] a {
color: "#123456";
}
但是,这假设您可以在CSS中枚举data-color
属性。 如果它是动态生成的并且可以取任何值,那么您将无法在CSS中使用它-它没有变量或反向引用。
不幸的是CSS无法做到这一点。 JS比较简单:
$('article').filter(function() {
return $(this).data('color');
}).each(function() {
var $el = $(this), color = $el.data('color');
$el
.find('header').css('background-color', color).end()
.find('a').css('color', color);
});
我认为您可以这样做:
article[data-color="#123456"] header {
background-color: attr(data-color color);
}
article[data-color="#123456"] a {
color: attr(data-color color);
}
UPDATE
第一个答案不正确,它不起作用。 而是这样做:
article[data-color="#123456"] header {
background-color: "#123456";
}
article[data-color="#123456"] a {
color: "#123456";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.