2010-02-06 3 views
33

Wie kann ich ändern, den Hintergrund eines Elternteils <div> wenn ein <input> oder <a> ist: focus'd (oder eine andere dynamische PseudoklasseAffecting geordnete Element: focus'd Element (reines CSS + HTML bevorzugt)

Eg

<div id="formspace"> 
<form> 
<label for="question"> 
How do I select #formspace for the case when a child is active?</label> 
<input type="text" id="question" name="answer"/></form></div> 
+0

Nope: http: //en.wikipedia .org/wiki/Cascading_Style_Sheets # Einschränkungen (2. Aufzählungspunkt) –

+0

Nein, nicht einmal mit CSS3 – graphicdivine

+0

Danke all. Einfach checken, da ich mit reinem CSS und HTML-Tag-Bewegung keinen Weg zu finden schien könnte es tun, wollte nur meine Hände sauber zu halten. –

Antwort

27

Leider unterstützt CSS keine Elternselektoren. :(
So ist die einzige Art und Weise, es zu tun ist Javascript zu verwenden wie die jQuery parent method

Update:. CSS Selectors Ebene 4 Eltern Selektoren unterstützt http://www.w3.org/TR/selectors4/#subject

+0

[Sieht so aus, als ob Elternelektoren es nicht schaffen.] (Http://css4.rocks/selectors-level-4/subject-of-selector.php) –

6

Die einzige Art, wie ich denken kann, muss Javascript aktiviert ist:

function focusLink(isOnFocus) 
{ 
    if (isOnFocus) 
     document.getElementById('formspace').className = "<make a focus class name here>"; 
    else 
     document.getElementById('formspace').className = "<default class name here>"; 
} 

...

<input onFocus="focusLink(true)" onBlur="focusLink(false)"> 

Hoffe, dass hilft!