动态地将 CSS 类分配给另一个类


Dynamically assign CSS class to another class

是否可以将一个CSS类的属性分配给另一个类?如果不能用CSS完成,我可以使用服务器端脚本来传递变量。

例如,如果我有一个从 .myclass1 到 .myclass20 的类列表,并且我知道对于用户 7,我需要将 .myDefault 替换为 myClass7,我该怎么做?

您希望一个类中的所有属性都由 CSS 中的另一个类继承。

不适用于通过 JS 将这两个类动态应用于对象。

这不能直接用CSS完成,JS方法会花费相当多的时间来实现。

最好的选择是让你研究更少的css。

它可以做你想要的,无论是服务器端还是客户端。

在jQuery中,你可以这样写代码:

$('.myDefault').addClass('myClass7');
$('.myClass7').removeClass('myDefault');

这不是一个直接的答案,但如果你想要混合设置,你可以使用多个类:

bigFont{
  font-size:150%;
}
errorBox{
  border:4px dashed red;
}
typMessage{
  padding:2px;
  margin:1px;
  overflow-y:auto;
}

<div class="typMessage">Hello World</div>

通过将"errorBox"和/或"bigFont"类添加到元素中,它将"合并"CSS属性。

这里有一个在没有jQuery的情况下交换类的简单方法: http://jsfiddle.net/imsky/mrKHB/

.HTML:

<div id="test" class="big one sans phone">Hello world and </div>

.CSS:

.one {background:blue;color:#fff}
.two {background:yellow;color:#000}
.sans {font-family:sans-serif}
.big {font-size:24px}
.phone:after {content:"phone!"}

JavaScript:

document.getElementById("test").onclick = (function(){
this.className = this.className.replace(/'bone'b/,"two");
});

您可以使用 PHP 为您处理此问题。只需更换例如

<div class='myDefault'></div>

// you should have that info stored somewhere anyway :)
$userClass = 'myClass7';
// now just echo out the right class for the user
<div class="<?php echo $userClass ?>"></div>