Ändere die Farbe von tr, wenn das Element im Fokus ist

8

Ich möchte die Farbe des tr-Elements ändern, wenn der Benutzer ein Textfeld darin auswählt. Die Fokus-Pseudo-Klasse arbeitet nicht damit. Kann dies ohne JavaScript erreicht werden?

html:

%Vor%

CSS:

%Vor%

Update1:
Sieht so aus, als gäbe es keine CSS-Methode. Was ist der einfachste Weg dies mit JavaScript zu tun?

    
Aamir Rizwan 15.04.2012, 08:02
quelle

4 Antworten

7

Nein. Es gibt keinen Subjekt-Selektor in CSS3, aber in CSS4 wird es einen geben.

BEARBEITEN :

Eine reine JavaScript-Lösung könnte

sein %Vor%

Dies wird jedoch in IE <7 nicht funktionieren, da Versons vor acht nicht wissen document.querySelectorAll ( Demonstration ). Wenn Sie eine problemlose Cross-Browser-Lösung benötigen, können Sie jQuery und den folgenden Code verwenden ( Demonstration ):

%Vor%

Vergessen Sie nicht, eine Klasse tr.highlight zu Ihrem CSS hinzuzufügen. Denken Sie daran, dass jQuery die Unterstützung alter Browser in zukünftigen Versionen ablehnt (siehe Browser-Unterstützung ), so dass Sie sie verwenden müssen jQuery 1.x für IE ≤8.

    
Zeta 15.04.2012, 08:06
quelle
1

Nein, das geht nicht ohne JavaScript.

    
ezakto 15.04.2012 08:06
quelle
1

Ich wollte gerade sagen: Ссылка

    
Claude Vedovini 15.04.2012 09:10
quelle
1

Es ist technisch möglich, ein tr -Element auf ausreichend neue Browser zu fokussieren, indem ein tabindex -Attribut darauf verwendet wird, z. <tr tabindex="1"> .

Allerdings ist die Methode der Fokussierung Browser-abhängig, und fokussierbare Tabellenzeilen können ein Albtraum der Benutzerfreundlichkeit sein. Beispielsweise wird sowohl auf IE als auch auf Firefox die Zeile fokussiert, wenn die TAB-Taste entsprechend verwendet wird, aber eine fokussierte Zeile nimmt keine Eingabe vor. Die Verwendung müsste TAB erneut drücken, um zu dem Eingabefeld zu gelangen. Auf Firefox, aber nicht auf IE, kann die Zeile auch durch Anklicken fokussiert werden, jedoch nicht durch Klicken auf das Eingabefeld (da sich dieses auf das Feld konzentrieren würde). Wenn Sie label markup verwenden, wie es für Benutzerfreundlichkeit und Zugänglichkeit empfohlen wird, z. B.

%Vor%

... wenn Sie dann auf die Beschriftung klicken, wird auf das Eingabefeld fokussiert (einer der Gründe für die Verwendung von label markup!), nicht auf das Zeilenelement.

    
Jukka K. Korpela 15.04.2012 11:01
quelle

Tags und Links