2010-04-22 191 views
12

比方說,我有這個代碼如何通過元素id在CSS中隱藏元素標籤?

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

這將隱藏輸入:

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

如何隱藏標籤?

+0

感謝您的所有意見。我應該提到我無法更改HTML,因爲它是專有軟件。只有CSS在我的控制之下。 因此,[for =「foo」]方法似乎最好。但應該指出的是,它在IE 6 *或* IE 7中不起作用。使用jQuery的 – Stoob 2010-04-22 22:38:20

回答

20

如果你給標籤的ID,這樣的:

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

那麼這會工作:

#foo_label { display: none;} 

你的其他選擇是不是真的跨瀏覽器友好的,除非JavaScript是一種選項。 CSS3選擇,而不是廣泛的支持看起來是這樣的:

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

你應該給你的<tr>標籤的ID foo_row或什麼的。而隱藏,而不是

0

您可能必須添加一個類/ ID,然後再作出隱藏它的CSS聲明。

1

你必須給標籤分配一個id。

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

#foo_label {display: none;} 

或隱藏整排

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

#foo_row {display: none;} 
7

沒有一個類或ID,並與您的特定HTML:

table tr td label {display:none} 

否則,如果您有jQuery的

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

這不起作用。 – Stoob 2010-04-22 22:46:03

+1

你把它放在$(document).ready裏面嗎? – 2010-04-22 22:50:29

0

這是爲我工作。

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