是否可以在CSS选择器中使用noscript
元素?
noscript p {
font-weight: bold;
}
答案 0 :(得分:13)
是的!你绝对可以做到。
事实上,许多( all?)浏览器支持使用CSS定位任意标记。 HTML规范中的“官方”标签仅定义浏览器应该对它们执行的操作。但CSS是一种针对任何XML风格的语言,因此您可以说foo {font-weight:bold;}
,在大多数浏览器中,<foo> hello world </foo>
都会以粗体显示。
正如Darko Z所阐明的那样,IE6 / 7不会自动从源添加任意(非标准)元素到DOM;它们必须以编程方式添加。
答案 1 :(得分:6)
我要记住IE漏洞。如果像OP一样,你只想在noscript标签中设置文本样式而不是noscript标签本身,请忽略它。
假设你想让noscript标签的背景变红。在IE8中,它将显示启用JS。只是盒子本身,而不是里面的文字。
所以这种组合并不好:
<强> CSS 强>
noscript {
background-color: red;
}
<强> HTML 强>
<noscript>Turn on your damned JavaScript! What is this, 1999?</noscript>
但是这种解决方法运行良好:
<强> CSS 强>
noscript div {
background-color: red;
}
<强> HTML 强>
<noscript><div>Turn on your damned JavaScript! What is this, 1999?</div></noscript>
奇怪的是,我只在IE8中看到这种行为,而不是IE7。谁知道6 ..
答案 2 :(得分:3)
除Rex M's answer之外 - IE 6/7(6 def,7可能?)不会为您设置任意标签。但幸运的是,与所有许多IE问题一样,有一个解决方法。
假设您要设置名为foo
的元素的样式。要让IE将其识别为可设置样式元素,您需要在JS中的某处包含此行:
document.createElement('foo');
您无需附加它,只需创建它。
这将使IE使用CSS规则为您设置元素:
foo { font-weight:bold; }