2013-03-26 201 views
0

这可能是一个愚蠢的问题,但它在这里。CSS继承,或类似的东西

我在我的css文件中有3个ID,他们都有一些相同的代码。例如:

#ID1 { 
    // some code 
    width: 300px; 
    height: 300px; 
}  
#ID2 { 
    // some code 
    width: 300px; 
    height: 300px; 
}  
#ID3 { 
    // some code 
    width: 300px; 
    height: 300px; 
} 

我的问题是:是否有可能使一些类或ID在CSS和调用它里面另一个CSS类或ID。例如:

#setting { 
    width: 300px; 
    height: 300px; 
} 
#ID1 { 
    .setting   
    // some code 
}  
#ID2 { 
    .setting 
    // some code 
}  
#ID3 { 
    .setting 
    // some code 
} 

谢谢。

+1

目前还没有,但有LESS.css和SASS。 – 2013-03-26 06:34:57

+1

不,不是。 – 2013-03-26 06:35:21

回答

1

你在找什么叫做LESS。阅读关于它here

1

您可以通过应用参考它的父类中重写CSS,请检查下面的例子:

#setting { 
width: 300px; 
height: 300px; 
} 
#ID1 .setting { 
    // some code 
}  
#ID2 .setting { 
    // some code 
}  
#ID3 .setting { 
    // some code 
} 

上面的代码将分别适用里面ID1,ID2,ID3所有的“设置”类的标签。 如果你的“设置”孩子是即时类,那么你可以在你下面的例子:

#setting { 
width: 300px; 
height: 300px; 
} 
#ID1 > .setting { 
    // some code 
}  
#ID2 > .setting { 
    // some code 
}  
#ID3 > .setting { 
    // some code 
} 

上面的代码将只适用于与类名为直接子“设置”。

1

您可以在单个元素上使用多个CSS类。

您可以创建“通用”类并将其应用于元素。

例如:

<div class="class1 class2">some content</div> 

请记住,如果存在的Class1和class2的共同属性,在等级2该属性的值将覆盖一个Class1中该元件上,并且最终元件将具有在class2中定义的值。

真的很旧的浏览器不支持这一点,但很可能你不应该担心它们。

1

不,在CSS中是不可能的,它与继承无关。在CSS规则中,您将所有选择器放在“{”之前,并且只在“{”和“}”之间声明(属性)。

但是你可以使用两者id属性和元素上的class属性,如在

<div id="ID1" class="setting">...</div> 

,然后如果有例如

.setting { 
    width: 300px; 
    height: 300px; 
} 

(注:.没有#),这些声明应用于所有元素与class=setting,有可能由于其他CSS规则适用任何其他声明一起。