2015-07-10 7 views
5

Mi chiedo se questo sia possibile. Con questo html:Selettore CSS per il primo elemento dopo l'altro non essendo fratelli

<h1></h1> 
<form> 
    <label><input type="text"></label> 
    <label><input type="text"></label> 
    <label><input type="text"></label> 
</form> 

so che posso fare:

label:first-child{} 

ma mi chiedo se è possibile selezionare solo la prima etichetta preceduta da un h1 che non è allo stesso livello con + o ~ o qualcos'altro.

risposta

6

È possibile utilizzare il selettore di seguito:

h1 + form > label:first-child { 
    /* some properties here */ 
} 

Così il sopra selettore si seleziona l'elemento form che è un fratello di h1 e di quello che entra e seleziona il primo label elemento diretta e quindi sto usando >

È possibile eliminare in modo sicuro > se si è certi di non disporre di ulteriori elementi nidificati all'interno dell'elemento form.


Si noti che questo è un selettore di tag molto generico, io vi suggerisco di avvolgere gli elementi all'interno di un elemento di involucro e dargli un class dire form-wrapper e modificare il selettore come

.form-wrapper h1 + form > label:first-child { 
    /* some stuff */ 
} 
+0

Sono d'accordo con voi su questo, ma in questo caso la pagina non avrò molto più di una forma – Vandervals

+0

@Mr. Alien Ti preghiamo di pensare che potresti aiutarmi con questa domanda http://goo.gl/Yl5qIi – Axel

+0

@Axel incolla il link originale, non clicchiamo su quello minuscolo –

1

h1 + form label:first-child { 
 
    color: red; 
 
}
<h1>H1</h1> 
 
<form> 
 
    <label>First</label> 
 
    <label>Second</label> 
 
    <label>Third</label> 
 
</form> 
 

 
<h2>H2</h2> 
 
<form> 
 
    <label>First</label> 
 
    <label>Second</label> 
 
    <label>Third</label> 
 
</form>

1

È possibile accedere al successivo fratello utilizzando + e quindi utilizzare il selettore discendente per individuare l'etichetta.

h1 + form label:first-child { 
 
    padding-right: 120px; 
 
}
<h1></h1> 
 
<form> 
 
    <label> 
 
    <input type="text"> 
 
    </label> 
 
    <label> 
 
    <input type="text"> 
 
    </label> 
 
    <label> 
 
    <input type="text"> 
 
    </label> 
 
</form>

Problemi correlati