2010-09-30 5 views
19

Jeden z naszych klientów ma kłopoty z czytaniem szary tekst w kontroli osób w naszej aplikacji internetowej:Styling niepełnosprawnych <select> (rozwijane pudełka) w HTML

IE9 example

Chcielibyśmy, aby zmienić styl na jasnoszare tło i czarny tekst. Niestety, większość przeglądarek (w tym IE, z których korzysta klient) ignoruje atrybut CSSna wyłączonych kontrolkach, więc nie możemy zmienić koloru pierwszego planu.

W przypadku pól tekstowych (input type="text") można to łatwo obejść, używając atrybutu readonly zamiast atrybutu disabled. Niestety nie jest to opcja dla rozwijanych (select) lub pól wyboru (input type="checkbox").

Czy istnieje prosty sposób obejścia tego problemu? Preferem, w którym kontrola nie musi być zastąpiona przez inny rodzaj kontroli? (... ponieważ nasze formanty są renderowane przez ASP.NET)

PS: Używanie selektora [disabled] w CSS nie ma znaczenia.

+0

możliwe duplikat: http://stackoverflow.com/questions/679358/how-do-i-styling-disabled-select-dropdownlist-in-ie – Peter

+0

@Peter: Odpowiedź udzielona na pytanie 679358 nie dotyczy : To nie problem z wyłączonym selektorem '[disabled]'. Jest to problem z IE (w tym 8, 9), który nie pozwala na nadpisanie koloru tekstu wyłączonych kontrolek. – Heinzi

+7

Poproś klienta, aby zmniejszył jasność monitora. – Kyle

Odpowiedz

26

W programie Internet Explorer 9, wsparcie zostanie dodany do :disabled pseudo-selektor (ref). Nie wiem, czy to uhonoruje "kolorową" własność, ale wydaje się prawdopodobne.

W starszych wersjach IE można dostosować kolor tła (ale nie kolor). Zatem:

<style type="text/css"> 
     select[disabled] { background-color: blue; } 
    </style> 

To działa w IE 7 i IE 8. Nadal nie może zmienić kolor pierwszego planu, ale można zmienić kolor tła na wysoki kontrast silniej z szarą, że IE przypisuje go, gdy jest wyłączony.

+3

IE9 nie obsługuje właściwości "kolor" po wyłączeniu. Tekst wciąż jest brzydko szary z białym cieniem. – Craigo

+0

Wybrane opcje nie są również obsługiwane w IE ani Chrome –

1

Przepraszam za mój angielski ...

To nie jest możliwe przy użyciu css tylko, IE nie pozwala na zmianę właściwości niepełnosprawnej wybierz tag

1

Dla tych, którzy wciąż to znajdują.

Nie działa:

select[disabled] { background-color: blue; } 

robocza:

select option [disabled] { background-color: blue; } will do 
1

ten pracował dla mnie

select[disabled='disabled']::-ms-value { 
    color: red; 
    } 
2

ten pracował dla mnie w WebKit i Firefox

select:disabled{ 
    opacity: 0.6; 
}