Czy w CSS jest jakiś sposób na kierowanie wszystkich danych wejściowych na podstawie ich typu? Mam wyłączoną klasę, której używam na różnych wyłączonych elementach formularza, i ustawiam kolor tła dla pól tekstowych, ale nie chcę, aby moje pola wyboru miały ten kolor.
Wiem, że mogę to zrobić z oddzielnymi klasami, ale wolałbym używać CSS, jeśli to możliwe. Jestem pewien, że mogę to ustawić w javascript, ale znowu szukam CSS.
Celuję w IE7 +. Więc nie sądzę, żebym mógł używać CSS3.
Edytować
Z CSS3 byłbym w stanie zrobić coś takiego?
INPUT[type='text']:disabled
to byłoby jeszcze lepsze całkowite pozbycie się mojej klasy ...
Edytować
Ok dzięki za pomoc! Oto selektor, który modyfikuje wszystkie pola tekstowe i obszary, które zostały wyłączone, bez konieczności ustawiania żadnych klas, kiedy zacząłem to pytanie, nigdy nie sądziłem, że jest to możliwe ...
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
Działa to w IE7
źródło
Odpowiedzi:
Tak. IE7 + obsługuje selektory atrybutów:
Element wejściowy z typem atrybutu, który zawiera wartość, która jest równa, zaczyna się, zawiera lub kończy określoną wartością.
Inne bezpieczne selektory (IE7 +) to:
p > span { font-weight: bold; }
span ~ span { color: blue; }
Za
<p><span/><span/></p>
co skutecznie dałoby ci:Dodatkowe informacje: Zgodność przeglądarek z CSS na quirksmode.com
Dziwię się, że wszyscy myślą, że nie da się tego zrobić. Selektory atrybutów CSS istnieją już od jakiegoś czasu. Myślę, że czas wyczyścić nasze pliki .css.
źródło
Niestety inne plakaty są poprawne, że jesteś... właściwie tak, jak poprawił go kRON, jesteś w porządku ze swoim IE7 i ścisłym dokumentem, ale większość z nas z wymaganiami IE6 jest zredukowana do JS lub odwołań do klas, ale tak jest właściwość CSS2, tylko jedna bez wystarczającej obsługi przeglądarek IE ^ h ^ h.Poza kompletnością selektor typu ma - podobnie jak xpath - postać,
[attribute=value]
ale istnieje wiele interesujących wariantów. To będzie dość silny, gdy jest ona dostępna, dobrze jest zachować w głowie dla IE8.w3 odniesienie
informacje dotyczące obsługi przeglądarki
źródło
Możesz to zrobić za pomocą jQuery. Używając ich selektorów, możesz wybierać według atrybutów, takich jak typ. Wymaga to jednak, aby użytkownicy mieli włączoną obsługę Javascript i dodatkowy plik do pobrania, ale jeśli to działa ...
źródło
Przepraszamy, krótka odpowiedź brzmi: nie. CSS (2.1) zaznaczy tylko elementy DOM, a nie ich atrybuty. Musiałbyś zastosować określoną klasę do każdego wejścia.
Bummer wiem, bo to byłoby niezwykle przydatne.
Wiem, że powiedziałeś, że wolisz CSS od JavaScript, ale nadal powinieneś rozważyć użycie jQuery. Zapewnia bardzo czysty i elegancki sposób dodawania stylów do elementów DOM na podstawie atrybutów.
źródło