2009-07-30 48 views
6

我想改變網格中禁用的複選框的CSS(他們太難以查看用戶)。什麼是簡單的方法來做到這一點?如何爲禁用的複選框設置CSS?

我在使用的技術(按降序排列)的偏好:
CSS
的JavaScript
jQuery的
其他

+0

請更多的描述,你需要JavaScript的解決方案的演示? – dusoft 2009-07-30 14:28:49

回答

8

我建議改變背景的顏色(background-color的形式/ fieldset),看看你能否想出一個更好的對比。如果你只是想改變殘疾(?非選擇)複選框的顏色,你可以嘗試:

input[disabled] { 
... 
/* CSS here */ 
... 
} 

但如果他們是殘疾人的一個原因,當然,他們並不需要是顯着的可視?他們灰色化的目的當然是爲了避免主動/啓用和不活動/禁用表單元素之間的混淆?

+0

因爲我們的用戶羣正在使用IE,所以我們無法在CSS中這樣做。但是,我們在.NET中的複選框控件上以編程方式執行了此操作。 – 2009-12-04 22:01:57

+2

@Even Mien:如果你說過你是如何做到這一點的話,那就好了,也就是說你設置了什麼屬性。 – 2010-11-17 09:40:18

+0

@Christopher在ASP.Net代碼的下面看到我的答案。 – David 2011-04-09 00:55:55

3

伊夫曾與幾個JS庫好運做的工作。當然,我的要求是使框與標準複選框看起來非常不同。以下庫甚至可以兼容508。

Styled Form Controls

0

基本上,你需要在DIV,P,或用於網格中的任何其他元件連接onclick事件,然後將選中的值轉移到與那場在網格有關的隱藏元素。這是非常微不足道的,如果使用javascript - 檢查jquery添加onclick事件的任何元素。如果點擊,則爲隱藏元素設置值= 1。

2

input:disabled {}適用於除瀏覽器外的所有瀏覽器,IE瀏覽器。對於IE,我想你必須使用一些JS庫。

4

保持該複選框處於啓用狀態,但將onfocus=this.blur()添加到複選框,以免它被點擊。

或者如果使用ASP.net(如您在您的評論說)保持複選框設置爲啓用,並添加以下到Page.Load事件:

CheckBox1.Attributes.Add("onclick", "return false;"); 
0

如果你有一個混合形式啓用和禁用複選框,禁用複選框淡出可避免用戶混淆。如果打算顯示帶有複選框的僅供查看的頁面(例如顯示在購物收據上選擇的產品選項),那麼使用圖像替換複選框輸入元素可能會產生更好的結果。

更換

<input type="checkbox" disabled> 
<input type="checkbox" disabled checked> 

<img src="unchecked.gif"> 
<img src="checked.gif"> 
0

實際上有點CSS3,你可以嘲笑了一個非常簡單的解決方案。 你將永遠不得不考慮你想提供什麼樣的支持。 但是,如果你在現代瀏覽器上工作的很好,那就試試吧。

這裏的HTML

<label> 
    <input type="checkbox" name="test" /> 
    <span>I accept terms and cons</span><br><br> 
    <button>Great!</button> 
</label> 

這裏的CSS

button { display: none} 
:checked ~ button { 
    font-style: italic; 
    color: green; 
    display: inherit; 
} 

而這裏的http://jsfiddle.net/DyjmM/