你可以设计一个noscript元素吗?

时间:2009-03-24 03:26:18

标签: html css noscript

是否可以在CSS选择器中使用noscript元素?

noscript p {
    font-weight: bold;
}

3 个答案:

答案 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; }