Html CSS:隐藏不支持javascript的浏览器的元素
所以我使用Modernizer来检测javascript。基于Html CSS:隐藏不支持javascript的浏览器的元素,html,css,modernizr,Html,Css,Modernizr,所以我使用Modernizer来检测javascript。基于.no js类,我有以下几点: html.no-js .navContainer { visibility: visible !important; } .navContainer{ visibility: hidden; } 如果用户启用了javascript,则元素将隐藏。如果未启用javascript,则元素可见 效果很好。现在我想做相反的事情。也就是说,如果用户没有javascript,我希望隐藏一个元素。最
.no js
类,我有以下几点:
html.no-js .navContainer {
visibility: visible !important;
}
.navContainer{
visibility: hidden;
}
如果用户启用了javascript,则元素将隐藏。如果未启用javascript,则元素可见
效果很好。现在我想做相反的事情。也就是说,如果用户没有javascript,我希望隐藏一个元素。最好的方法是什么
我已经尝试了很多方法,包括在这方面的许多变化:
html.no-js .navButton {
display: none;
}
html .navButton {
display: block;
}
但到目前为止,一切都不起作用。我的理解是,
html.no-js.navButton
应该只在
上选择。不是这样吗?试着像下面那样直接把它放到页面中
<noscript>
<style type="text/css">
@import url (nojs.css);
.navButton {
display: none;
}
</style>
</noscript>
@导入url(nojs.css);
.导航按钮{
显示:无;
}
尝试将其直接放入页面,如下图所示
<noscript>
<style type="text/css">
@import url (nojs.css);
.navButton {
display: none;
}
</style>
</noscript>
@导入url(nojs.css);
.导航按钮{
显示:无;
}
要在视觉上隐藏并防止屏幕阅读器使用
html.no-js .navbutton {
display: none
}
如果要在视觉上隐藏屏幕阅读器,但要保持布局,请执行以下操作:
html.no-js .navbutton {
visibility: hidden;
}
要仅在视觉上隐藏,但可供屏幕阅读器使用,请执行以下操作:
html.no-js .navbutton {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
要扩展上一个样式,以允许在通过键盘导航到时对元素进行聚焦,请执行以下操作:
html.no-js .navbutton.focusable:active,
html.no-js .navbutton.focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
来源
html.no-js .navbutton {
display: none
}
如果要在视觉上隐藏屏幕阅读器,但要保持布局,请执行以下操作:
html.no-js .navbutton {
visibility: hidden;
}
要仅在视觉上隐藏,但可供屏幕阅读器使用,请执行以下操作:
html.no-js .navbutton {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
要扩展上一个样式,以允许在通过键盘导航到时对元素进行聚焦,请执行以下操作:
html.no-js .navbutton.focusable:active,
html.no-js .navbutton.focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
来源
元素上有no js
类,并且没有删除它,那么.navButton
元素应该被隐藏。概念证明:。我建议您创建一个JSFIDLE并复制您的问题。好吧,现在一切正常。我一定是有点疲劳了。谢谢你看这个问题。。。我将在上面添加一点改进。它可能应该阅读html.no-js.navbutton
和html.js.navbutton
,以明确其意图。您确定要禁用js还是至少不加载Modernizer?否则,你可能会有一个更具体的CSS规则,它会覆盖你在问题中发布的规则。我正在使用chrome插件来禁用和启用JS。您认为CSS是有效的/应该做什么?是的,如果您在源代码中的
元素上有no js
类,并且没有删除它,那么.navButton
元素应该被隐藏。概念证明:。我建议您创建一个JSFIDLE并复制您的问题。好吧,现在一切正常。我一定是有点疲劳了。谢谢你看这个问题。。。我将在上面添加一点改进。它可能应该阅读html.no-js.navbutton
和html.js.navbutton
,以使意图显而易见。实际上,这可能是更好的解决方案。实际上,这可能是更好的解决方案。