Selektor CSS dla

Czy Jest jakiś sposób z CSS, aby kierować wszystkie wejścia 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żyć CSS, jeśli to możliwe. Jestem pewien, że mogę to ustawić w javascript, ale znowu Szukam CSS.

Celuję w IE7+. Więc chyba nie mogę użyć CSS3.

Edit

Z CSS3 byłbym w stanie zrobić coś takiego jak?

INPUT[type='text']:disabled to byłoby jeszcze lepiej pozbyć się mojej klasy w ogóle...

Edit

Ok dzięki za pomoc! Więc 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 myślałem, że to możliwe...

INPUT[disabled][type='text'], TEXTAREA[disabled]
{   
    background-color: Silver;
}

To działa w IE7

Author: Linus Caldwell, 2009-01-22

4 answers

Tak. IE7 + obsługuje selektory atrybutów:

input[type=radio]
input[type^=ra]
input[type*=d]
input[type$=io]

Element wejściowy z typem atrybutu, który zawiera wartość równą, zaczyna się, Zawiera lub kończy określoną wartością.

Inne bezpieczne selektory (IE7+) to:

  • rodzic > dziecko, które ma: p > span { font-weight: bold; }
  • poprzedzone przez ~ element, który jest: span ~ span { color: blue; }

Które dla <p><span/><span/></p> dałoby ci:

<p>
    <span style="font-weight: bold;">
    <span style="font-weight: bold; color: blue;">
</p>

Czytaj dalej: zgodność CSS przeglądarki na quirksmode.com

Dziwię się, że wszyscy myślą, że nie da się tego zrobić. Selektory atrybutów CSS są tu już od jakiegoś czasu. Chyba czas posprzątać .pliki css.
 149
Author: Filip Dupanović,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-09 00:13:10

niestety inne plakaty są poprawne, że jesteś ...w rzeczywistości, jak poprawił kRON, ty jesteś w porządku ze swoim IE7 i ścisłym doc, ale większość z nas z wymaganiami IE6 jest zredukowana do js lub referencji klas dla tego, ale jest właściwością CSS2, tylko jedną bez wystarczającego wsparcia ze strony przeglądarek IE^h^h.

Z kompletności selektor typu jest - podobnie jak xpath - formą [attribute=value], ale istnieje wiele ciekawych wariantów. It will be dość potężny, gdy jest dostępny, dobrze trzymać w głowie dla IE8.

 3
Author: annakata,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-22 21:39:02

Możesz to zrobić za pomocą jQuery. Za pomocą ich selektorów można wybierać według atrybutów, takich jak typ. Wymaga to jednak, aby użytkownicy mieli włączony Javascript i dodatkowy plik do pobrania, ale jeśli to działa...

 1
Author: cdeszaq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-22 20:47:33

Przepraszam, krótka odpowiedź brzmi nie. CSS (2.1) będzie oznaczał tylko elementy DOM, a nie ich atrybuty. Do każdego wejścia musiałbyś zastosować określoną klasę.

Szkoda, że wiem, bo to byłoby niesamowicie przydatne.

Wiem, że powiedziałeś, że wolisz CSS niż 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.

 0
Author: Phil.Wheeler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-22 20:43:48