noscript
是否可以在 CSS 选择器中使用该元素?
noscript p {
font-weight: bold;
}
是的!你绝对可以做到这一点。
事实上,许多(所有?)浏览器都支持使用 CSS 定位任意标签。HTML 规范中的“官方”标签只定义了浏览器应该如何处理它们。但是 CSS 是一种针对任何 XML 风格的语言,因此您可以说foo {font-weight:bold;}
,并且在大多数浏览器中,它<foo> hello world </foo>
会显得粗体。
正如Darko Z所阐明的,IE6/7 不会从源代码自动向 DOM 添加任意(非标准)元素;它们必须以编程方式添加。
我有一个 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..
除了Rex M 的回答- IE 6/7 (6 def, 7 也许?) 不会为您设置任意标签的样式。但幸运的是,对于所有许多 IE 问题,有一个解决方法。
假设您想为一个名为foo
. 要让 IE 将其识别为可样式化元素,您需要在 JS 中的某处包含此行:
document.createElement('foo');
您不需要附加它,只需创建它。
这将让 IE 使用 CSS 规则为您设置该元素的样式:
foo { font-weight:bold; }