回到过去,我学到了很多关于CSS的知识,但现在我不记得如何重用样式了。
示例:
我有一些类tab
的标签,我可以用javascript切换它们。当前选定的标签有另一个类active
。
他们的CSS风格:
.tab {
position: relative;
top: 0;
left: 0;
width: 100%;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
cursor: pointer;
background-color: white;
}
.active {
position: relative;
top: 0;
left: 0;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
cursor: default;
background-color: #FFCF75;
}
除了cursor
和background-color
之外,这两种风格都有很多相同的风格。
所以我的问题是,如何重新使用.tab样式并在.active中使用它?
我想要达到这样的目标:
.active { //extends .tab
cursor: default;
background-color: #FFCF75;
}
感谢。
答案 0 :(得分:9)
在class
属性中使用这两个类名。在.active
规则中,仅定义与第二个示例中已有的不同样式。
<div class="tab active"></div>
答案 1 :(得分:8)
您可以,也可能应该将这两个类应用于元素,如下所示:
<a class="tab active"></a>
如果你想要这两个类的特定组合的css规则,你可以这样做:
.tab {
position: relative;
top: 0;
left: 0;
width: 100%;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
cursor: pointer;
background-color: white;
}
.active
{
cursor: default;
background-color: #FFCF75;
}
.tab.active /* no space */
{
/* styles for elements that are both .tab and .active */
/* leaving .active reusable for things other than tabs */
/* and allowing override of both .tab and .active */
}
这使您可以避免对样式声明进行不必要的复制...并且在元素同时具有覆盖任何一个类时的特异性。
答案 2 :(得分:7)
这样做。结合样式并用逗号分隔。然后添加针对差异的其他规则。
.tab, .active {
position: relative;
top: 0;
left: 0;
width: 100%;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
}
.tab{
cursor: pointer;
background-color: white;
}
.active {
cursor: default;
background-color: #FFCF75;
}
修改强>
根据您的评论
我目前正在通过向班级添加.active样式来切换标签 属性。
这就是我要做的事情:
HTML
<div class="tab"></div>
CSS
.tab {
position: relative;
top: 0;
left: 0;
width: 100%;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
cursor: pointer;
background-color: white;
}
.active {
cursor: default;
background-color: #FFCF75;
}
然后只需添加或删除.active
类,保留.tab
即可。
只要样式表中的.active
降低,它就会覆盖必要的位。
答案 3 :(得分:5)
将.tab
规则更改为.tab, .active
。
答案 4 :(得分:3)
.active, .tab {
... full style of both here
}
.active {
... the styles that differ from .tab
}
答案 5 :(得分:2)
这个选择器继承是SASS的一个很好的特性。
如果您想坚持使用纯CSS,请查看Selector继承部分,您可以看到带有@extend的SASS代码如何转换为常规CSS。
答案 6 :(得分:0)
您可以将多个类应用于元素。因此,您可以使用class =“tab active”的元素,并使其包含两个规范。
答案 7 :(得分:0)
答案 8 :(得分:0)
您可以将.active组合成.tab并覆盖需要更改的部分,如下所示:
.tab, .active {
position: relative;
top: 0;
left: 0;
width: 100%;
padding: 15px 0 15px 0;
border: solid thin #CCC;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
color: #272F42;
cursor: pointer;
background-color: white;
}
.active {
cursor: default;
background-color: #FFCF75;
}