Css 堆栈溢出,如JavaScript警告和w3c HTML验证
我有一个严重依赖JavaScript的网站。虽然大多数东西降级很好,但功能上确实是二级的。因此,我想提醒用户,如果他们禁用了JS,他们应该打开它。为此,我使用NOSCRIPT显示一个div,并在页面顶部显示一个警报,类似于堆栈溢出的方式 这个div覆盖了页面内容的顶部,所以我必须向下移动文档主体。由于JS不可用,所以必须使用CSS,我使用类似于:Css 堆栈溢出,如JavaScript警告和w3c HTML验证,css,w3c-validation,noscript,Css,W3c Validation,Noscript,我有一个严重依赖JavaScript的网站。虽然大多数东西降级很好,但功能上确实是二级的。因此,我想提醒用户,如果他们禁用了JS,他们应该打开它。为此,我使用NOSCRIPT显示一个div,并在页面顶部显示一个警报,类似于堆栈溢出的方式 这个div覆盖了页面内容的顶部,所以我必须向下移动文档主体。由于JS不可用,所以必须使用CSS,我使用类似于:margintop:8px。完整的HTML如下所示: <noscript> <style type="text/css">bod
margintop:8px
。完整的HTML如下所示:
<noscript>
<style type="text/css">body { margin-top:8em; }</style>
<div class="warn">WARNING<br>Turn on JavaScript for best experience</div>
</noscript>
正文{页边顶部:8em;}
警告
打开JavaScript以获得最佳体验
问题是:我应该把这个代码放在哪里
我在主体部分的头部、主体部分、主体之后进行了尝试,但无论放置在何处,W3C HTML标记验证程序都会抱怨文档类型在此处不允许元素“STYLE”,或者文档类型在此处不允许元素“BODY”
我甚至尝试将CSS和DIV分成两部分,并为它们找到一个合适的位置,但都出现了相同的错误。您可能只需要接受它,并接受您的页面将不会验证 …或者改变它的工作方式。你能用
position:static将它放在第一位吗?这样它自然会将你的页面内容向下推
…或者,为了让你的正文始终保持页边空白:8em
。然后在JavaScript中的DOM就绪(或窗口加载)上,将其设置为0
CSS
JavaScript
您需要在noscript元素中有一个block元素(例如div),并在head元素中移动style元素以获得正确的验证。这不会导致页面加载时页边距可见吗?@Alexandre Jasmin是的,只需查看跨浏览器DOM就绪事件。或者使用$(function(){})或等效代码。您没有抓住要点。仅当JavaScript不可用时才需要应用样式。因此,它必须位于NOSCRIPT标记内。
body {
margin-top: 8em;
}
body.javascript {
margin-top: 0;
}
window.onload = function() {
document.getElementsByTagName('body')[0].className += ' javascript';
};