我認爲這個問題只與CSS相關的...但我會給你一些背景:可以覆蓋一個CSS類另一個CSS類
我與ZK框架內工作,我有一些組合框我的zul頁面... ZK渲染其組件並將它們轉換爲具有一些預定義樣式(css類)的html組件...我可以覆蓋這些樣式...但是我想用另一個覆蓋整個css類,因此我可以我的CSS類只在我想改變其風格的組件。
這是怎樣一個組合框創建:
正如你所看到的,它是變成一個input
用CSS類名爲Z-組合框中輸入
如果我覆寫類直接,就像這樣:
.z-combobox-input{
border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff
}
它將afect每一個組合框的頁面,結果我得到:
所以我想知道是否存在的方式做這樣的事情:
.class-original{
//some styles in here
}
.class-overriding{
.class-original{
//new styles in here
}
}
所以我可以把我的.class,只覆蓋在我需要改變,而不是組件在同一類型的每個組件中。
<combobox id="newCombo" sclass="class-overriding" />
我做this小提琴,如果你想嘗試的解決方案。
我看到this的問題,顯然這是不可能的......所以:是否有另一種方法來實現呢?
謝謝。
UPDATE
我不能使用的dinamically生成的ID(在這種情況下, 「vXgV3真實」)。
我可以通過把一個CSS類或使用標籤style
修改從組合框的一些屬性:
<combobox id="combo1" style="background: red" />
但我不能改變的邊界尤其是這樣的:
<combobox id="combo2" style="border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff"/>
因爲當它被渲染時(當zk將其組件改爲html組件時)它變成這樣:
所以,當ZK改變combobox
組件:
<span id="nZEQo" style="width:80%;" class="myCombo z-combobox">
<input id="nZEQo-real" class="z-combobox-input" autocomplete="off" value="" type="text" style="width: 269px;">
<a id="nZEQo-btn" class="z-combobox-button">
<i class="z-combobox-icon z-icon-caret-down"></i>
</a>
<div id="nZEQo-pp" class="z-combobox-popup myCombo" style="display:none">
<ul id="nZEQo-cave" class="z-combobox-content"></ul>
</div>
</span>
它一放就亂的ID爲HTML組件。
Fiddle with this particular part
有些文檔:
Customize Look and Feel of ZK Components Using CSS3 - Part 2
ZK Component Reference>Input>Combobox
'ZK'有一些關於樣式的特定規則。我花了幾分鐘瀏覽它並更新了我的答案。您希望在任何元素上使用'sclass'和'zclass'屬性來添加或完全替換該元素的默認樣式。這是基礎知識。 –
我已經替換元素的默認樣式了......問題@AndreiGheorghiu是我需要某些元素具有默認外觀和其他礦井 – Dazak