2014-01-16 47 views
1

现在我有CSS(SASS)代码,这是否:在CSS中,我可以访问元素的父级属性的值吗?

.container 
    background-color: red 
    .inner 
    ... 
    border-bottom-color: red 

(在这种情况下,.inner是一个三角形,所以它的边框颜色作为其背景色)

我'喜欢避免指定第二个'红色',如:

.container 
    background-color: red 
    .inner 
    border-bottom-color: attr(parent.background-color) 

有没有办法在纯CSS中做到这一点? (我可以使用SASS变量,或者JS,或者其他的,但我想留在CSS中。)

+2

我不认为这是可能的... – randomizer

+0

复制? http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector – Phil

+0

菲尔......这不是一个完全相同的问题。 – JayC

回答

1

CSS variables在非常early stage of the specification process

这是一定会来的,但你现在不能真正使用它。 (MDN指出Fx的29支持它的话)

例子:

::root { 
    var-brand-color: red; 
} 

.container { 
    background-color: var(brand-color); 
} 
.container .inner { 
    border-bottom-color: var(brand-color); 
} 
3

在纯CSS中没有办法(目前)这样做,但既然你提到过你使用SASS,你可以简单地用一个变量:

$myColor: red 

.container 
    background-color: $myColor 
    .inner 
     border-bottom-color: $myColor 

编辑

根据如何你的CSS的其余部分的结构因为你正在处理border-color您可以设定在border-colorcolor.container,然后设置border-bottom-color: inherit;.inner

.container { 
    border-color: red; 
    background-color: red; 
} 

.container .inner { border-bottom-color: inherit; } 

但是,这是特定于您的示例中的属性。没有办法显式地继承不同属性的值。

+0

正如问题的主体部分所述,我对CSS解决方案的存在(或不存在)更感兴趣...... –

+1

@AlexFeinman没有CSS解决方案。 'inherit'是最接近你想要做的事情,但只是用来继承* same *属性的值。 –

相关问题