2010-04-22 1 views
12

Disons que j'ai ce codeComment masquer l'étiquette d'élément par l'ID d'élément en CSS?

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

Cela permet de masquer l'entrée:

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

Comment puis-je masquer l'étiquette?

+0

Merci pour tous vos commentaires. J'aurais dû mentionner que je ne peux pas changer le HTML parce que c'est un logiciel propriétaire. Seul le CSS est sous mon contrôle. Par conséquent, l'approche [for = "foo"] semble la meilleure. Mais il convient de noter que cela ne fonctionne pas dans IE 6 * ou * IE 7. – Stoob

Répondre

20

Si vous donnez l'étiquette une carte d'identité, comme ceci:

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

Ensuite, cela fonctionnerait:

#foo_label { display: none;} 

Vos autres options ne sont pas vraiment amical cross-navigateur, à moins que le javascript est option. Le sélecteur de CSS3, pas aussi largement pris en charge ressemble à ceci:

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

Vous devez donner votre balise <tr> un identifiant foo_row ou autre. Et cacher qu'au lieu

0

Vous avez probablement ajouter une classe/id puis faire une autre déclaration CSS qui cache aussi bien.

1

Vous devez donner un identifiant séparé à l'étiquette aussi.

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

#foo_label {display: none;} 

Ou cacher toute la ligne

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

#foo_row {display: none;} 
7

Sans une classe ou d'une carte d'identité, et avec votre code html spécifique:

table tr td label {display:none} 

Sinon, si vous avez jQuery

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

en utilisant jQuery cela ne fonctionne pas. – Stoob

+1

L'avez-vous placé dans $ (document) .ready? –

0

C'est travaillé pour moi.

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