如何在CSS中按元素id隐藏元素标签?

Sto*_*oob 15 css label input

假设我已经有了这段代码

<table>
    <tr>
        <td><input id="foo" type="text"></td>
        <td><label for="foo">This is foo</label></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这将隐藏输入:

#foo { display: none;}  /* or hidden could work too, i guesss */
Run Code Online (Sandbox Code Playgroud)

如何隐藏标签?

Nic*_*ver 24

如果您为标签提供ID,如下所示:

<label for="foo" id="foo_label">
Run Code Online (Sandbox Code Playgroud)

然后这将工作:

#foo_label { display: none;}
Run Code Online (Sandbox Code Playgroud)

你的其他选择并不是真正的跨浏览器友好,除非javascript是一个选项.没有广泛支持的CSS3选择器如下所示:

[for="foo"] { display: none;}
Run Code Online (Sandbox Code Playgroud)


And*_*y E 12

如果您不关心IE6用户,请使用等于属性选择器.

label[for="foo"] { display:none; }
Run Code Online (Sandbox Code Playgroud)


Jam*_*ate 7

没有类或id,以及您的特定html:

table tr td label {display:none}
Run Code Online (Sandbox Code Playgroud)

否则,如果你有jQuery

$('label[for="foo"]').css('display', 'none');
Run Code Online (Sandbox Code Playgroud)


小智 5

尽管这里其他的答案,你应该使用display:none隐藏标签元素。

可视地隐藏标签的可访问方法是在CSS中使用“左偏”或“剪切”规则。使用display:none将阻止使用屏幕阅读器的人员访问label元素的内容。使用display:none不会向所有用户隐藏内容,包括屏幕阅读器用户(从标签元素中受益最大)。

label[for="foo"] { 
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}
Run Code Online (Sandbox Code Playgroud)

W3C和WAI提供有关此主题的更多指导,包括CSS的“夹”技术。

  • 最佳答案在这里 (3认同)