簡體   English   中英

動態地將CSS類分配給另一個類

[英]Dynamically assign CSS class to another class

是否可以將一個CSS類的屬性分配給另一個類? 如果無法使用CSS,我可以使用服務器端腳本來傳遞變量。

例如,如果我有一個從.myclass1到.myclass20的類列表,我知道對於user7,我需要用myClass7替換.myDefault,我該怎么做?

在jQuery中,您可以使用以下代碼:

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

您希望類中的所有屬性都可以由CSS中的另一個類繼承。

不是由JS動態地將兩個類應用於對象。

這不能直接用CSS完成,JS方法會耗費相當多的時間來實現。

最好的選擇是讓你看看更少的CSS

它可以滿足您的需求,無論是服務器端還是客戶端。

這不是一個直接的答案,但如果你想要混合設置,你可以使用多個類:

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM