50 Stimmen

Wie wählt man einen Radiobutton in css aus?

Wie wählt man ein Optionsfeld in CSS aus? Der HTML-Code, mit dem ich arbeite, wird generiert, so dass ich ihm keine Klasse oder andere Attribute hinzufügen kann.

Ich habe input[type="radio"] im Internet gefunden, aber ich weiß nicht, ob dies reguläres CSS ist und von den meisten Browsern unterstützt wird.

Gibt es noch andere Möglichkeiten, ein Optionsfeld auszuwählen?

Ich danke Ihnen,

Brett

90voto

Evan Meagher Punkte 4307

input[type="radio"] ist ein Beispiel für eine Attributselektor . Es ist Teil der CSS3-Spezifikation und ist völlig legal. Der einzige Browser, der sie nicht unterstützt, ist IE6. Wenn die Unterstützung des IE6 für das Projekt wichtig ist, sollten Sie die betreffenden Optionsschaltflächen mit Klassen versehen.

Hier ist ein Artikel mit einem Beispiel für die effektive Verwendung von Attributselektoren. Ausprobieren dieser Artikel für weitere Informationen über CSS3-Goodies.

9voto

annakata Punkte 72408

Der Attributselektor input[type="radio"] ist die richtige Lösung, die von allen Seiten unterstützt wird, außer von IE6 :)

Wenn Sie keine Möglichkeit haben, den HTML-Code zu ändern, um die Unterstützung von Klassennamen zu integrieren oder Zugang zu Javascript, um dies zu erreichen dann haben Sie folgende Möglichkeiten:

  1. um sicherzustellen, dass Ihre Website nicht davon abhängt, und um dem IE6 einen vernünftigen Abbau zu ermöglichen.
  2. ohne sie leben

5voto

Josh Punkte 6118

Könnten Sie verwenden jQuery um die Eingabe auszuwählen und eine Klasse dynamisch hinzuzufügen.

Beispiel (Quelle: http://docs.jquery.com/Attributes/addClass#class ):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){
    $("p:last").addClass("selected highlight");
  });
  </script>
  <style>
  p { margin: 8px; font-size:16px; }
  .selected { color:red; }
  .highlight { background:yellow; }
  </style>
</head>
<body>
  <p>Hello</p>
  <p>and</p>
  <p>Goodbye</p>
</body>
</html>

[Bearbeiten]

Eine Alternative zu jQuery ist die Verwendung von http://code.google.com/p/ie7-js/

es behebt viele Probleme mit IE-Versionen unter 7 Die Lösung, die Sie am meisten interessieren wird, ist hier dargestellt:

http://ie7-js.googlecode.com/svn/test/attr-value.html

1voto

PatrikAkerstrand Punkte 44499

Die von Ihnen erwähnte Methode ist der richtige Weg, um es per CSS zu erreichen. Man nennt es eine Attributselektor . Sie wird jedoch von IE6 und darunter nicht unterstützt. Sie können durch Hinzufügen eines Skripts für bedingtes Verhalten für IE6 simuliert werden. (Suchen Sie einfach bei Google, die Dateiendung ist normalerweise .htc).

Es sollte darauf hingewiesen werden, dass .htc-Dateien in der Regel zu horrenden Leistungseinbußen führen und daher nur sparsam verwendet werden sollten, um sicherzustellen, dass die Leistungseinbußen akzeptabel sind.

0voto

edeverett Punkte 7630

Ihre Lösung ist die richtige und funktioniert in allen modernen Browsern außer dem IE6. Für den IE6 müssen Sie entweder einen Weg finden, sie auszuwählen, den HTML-Code ändern oder Javascript verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X