可能重复:
Embedding extra styles with noscript
Define css if javascript is not enabled
我正在尝试仅在关闭Javascript时定义特定的CSS样式。我正在使用:
<noscript>
<style type="text/css">
.needjs {display:none !important;}
.mwnojs { margin-top: 40px !important; }
</style>
</noscript>
在尝试验证页面源时,我收到错误“元素样式不允许作为此上下文中元素noscript的子元素”。
那么,在保持标记有效的情况下,我该如何做呢?
答案 0 :(得分:3)
<noscript>
标记是“body”标记,<style>
标记是“head”标记。因此,您会收到错误。
你应该使非javascript样式默认,然后使用js来改变你的风格。有关详细信息,请参见此处 https://stackoverflow.com/a/218917/1068167
答案 1 :(得分:1)
答案 2 :(得分:0)
尝试这样的事情:
<html class="nojs">
<head>
<script type="text/javascript">
document.getElementByTagName("html")[0].className="";
</script>
<style>
html#nojs {
/* do something */
}
</style>
这会在加载页面时删除一个类。如果未激活javascript,则不会删除该类。
答案 3 :(得分:0)
你可以通过在默认样式表中使用这些类来解决这个问题,并在页面加载时让JavaScript删除它们。这仅在启用JavaScript时才有效,否则会加载所需的样式。
答案 4 :(得分:0)
例如,您可以通过javascript执行此操作并通过javascript禁用某些css文件,如果它未激活则不会发生。