你可以设置 noscript 元素的样式吗?

发布于 2024-07-15 11:16:18 字数 113 浏览 5 评论 0原文

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

noscript p {
    font-weight: bold;
}

Is it possible to use the noscript element in CSS selectors?

noscript p {
    font-weight: bold;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

澜川若宁 2024-07-22 11:16:18

是的! 你绝对可以做到。

事实上,许多(所有?)浏览器都支持使用 CSS 定位任意标签。 HTML 规范中的“官方”标签仅定义浏览器应如何使用它们。 但 CSS 是一种针对任何 XML 风格的语言,因此您可以说 foo {font-weight:bold;} 并且在大多数浏览器中,hello world 将以粗体显示。

正如 Darko Z 澄清的那样,IE6/7 不会添加任意内容(非标准)元素自动从源添加到 DOM; 它们必须以编程方式添加。

Yes! You can definitely do that.

In fact, many (all?) browsers support targeting any arbitrary tag using CSS. "Official" tags in the HTML spec only define what a browser should do with them. But CSS is a language that targets any flavor of XML, so you can say foo {font-weight:bold;} and in most browsers, <foo> hello world </foo> will come out bold.

As Darko Z clarifies, IE6/7 do not add arbitrary (non-standard) elements to the DOM automatically from the source; they have to be programmatically added.

阳光①夏 2024-07-22 11:16:18

我需要记住一个 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..

I have an IE bug to keep in mind. If, like OP, you just want to style text within the noscript tag and not the noscript tag itself, please disregard this..

Say you want to make the noscript tag's background red. In IE8, it will show up with JS enabled. Just the box itself, not the text inside.

So this combination isn't good:

CSS

noscript {
    background-color: red;
}

HTML

<noscript>Turn on your damned JavaScript! What is this, 1999?</noscript>

But this workaround works fine:

CSS

noscript div {
    background-color: red;
}

HTML

<noscript><div>Turn on your damned JavaScript! What is this, 1999?</div></noscript>

Weirdly, I only see this behavior in IE8, not IE7. And who knows about 6..

冰之心 2024-07-22 11:16:18

除了 Rex M 的回答 - IE 6/7(6 def,7 也许?)不会为任意标签设置样式你。 但幸运的是,对于所有许多 IE 问题,都有一个解决方法。

假设您想要为一个名为 foo 的元素设置样式。 要让 IE 将其识别为可样式元素,您需要在 JS 中的某个位置包含此行:

document.createElement('foo');

您不需要附加它,只需创建它。

这将使 IE 使用 CSS 规则为您设置该元素的样式:

foo { font-weight:bold; }

In addition to Rex M's answer - IE 6/7 (6 def, 7 maybe?) will not style an arbitrary tag for you. But lucky for you as with all many IE problems there's a workaround.

Say you want to style an element called foo. To get IE to recognise it as a styleable element you need to include this line somewhere in your JS:

document.createElement('foo');

You don't need to append it, just create it.

This will kick IE into styling that element for you with the CSS rule:

foo { font-weight:bold; }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文