2010-04-22 2 views
12

Lassen Sie uns sagen, dass ich diesen Code habeWie kann man Element-Label nach Element-ID in CSS ausblenden?

<table> 
    <tr> 
     <td><input id="foo" type="text"></td> 
     <td><label for="foo">This is foo</label></td> 
    </tr> 
</table> 

Dies wird die Eingabe verbergen:

#foo { display: none;} /* or hidden could work too, i guesss */ 

Wie blende ich das Etikett?

+0

danke für alle Ihre Kommentare. Ich hätte erwähnen sollen, dass ich das HTML nicht ändern kann, weil es proprietäre Software ist. Nur das CSS steht unter meiner Kontrolle. Daher scheint der [for = "foo"] Ansatz am besten zu sein. Aber es sollte beachtet werden, dass es nicht funktioniert in IE 6 * oder * IE 7. – Stoob

Antwort

20

Wenn Sie das Etikett eine ID geben, wie folgt aus:

<label for="foo" id="foo_label"> 

Dann würde diese Arbeit:

#foo_label { display: none;} 

Ihre anderen Optionen sind nicht wirklich Cross-Browser-freundlich, es sei denn, Sie Javascript ein ist Möglichkeit. Der CSS3-Selektor, nicht so weit wie folgt aussieht unterstützt:

[for="foo"] { display: none;} 
0

Sie sollten Ihre <tr> Tag eine ID foo_row oder was auch immer geben. Und verstecken Sie das stattdessen

0

Sie müssen wahrscheinlich eine Klasse/ID hinzufügen und dann eine andere CSS-Deklaration machen, die es auch verbirgt.

1

Sie müssen dem Etikett auch eine eigene ID geben.

<label for="foo" id="foo_label">text</label> 

#foo_label {display: none;} 

oder ausblenden ganze Reihe

<tr id="foo_row">/***/</tr> 

#foo_row {display: none;} 
7

Ohne eine Klasse oder eine ID, und mit Ihren spezifischen html:

table tr td label {display:none} 

Andernfalls, wenn Sie jQuery haben

$('label[for="foo"]').css('display', 'none'); 
+0

mit jQuery das funktioniert nicht. – Stoob

+1

Hast du das in $ (document) gesetzt? –

0

Dies ist für mich gearbeitet.

#_account_id{ 
     display: none; 
    } 
    label[for="_account_id"] { display: none !important; } 
Verwandte Themen