我在CSS中有一些带有display:none;
的元素和一些会在延迟时淡入它们的jQuery。
如何处理关闭javascript的浏览器?有没有办法使用<noscript>
来更改这些元素的显示值?
答案 0 :(得分:2)
您不能在没有脚本的情况下设置CSS值,但您可以将默认值设置为可见状态,并且您在脚本中执行的第一件事就是在淡化它们之前立即将元素设置为不可见状态上。
您还可以查看不需要JavaScript的CSS动画http://www.w3.org/TR/css3-animations/,但它们确实需要现代浏览器http://caniuse.com/css-animation
答案 1 :(得分:1)
如果你使用modernizr,它会将类js
插入到你的<html>
标签中(如果Javascript正在运行),并且通过HTML5 boilerpate提出的html结构:
<!--[if lt IE 7 ]> <html class="no-js ie6 ie"> <![endif]-->
<!--[if IE 7 ]> <html class="no-js ie7 ie"> <![endif]-->
<!--[if IE 8 ]> <html class="no-js ie8 ie"> <![endif]-->
<!--[if IE 9 ]> <html class="no-js ie9 ie"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html class="no-js">
<!--<![endif]-->
默认情况下,您将拥有<html class="no-js">
,并且您可能在css中有某些事情(您担心通常JS隐藏),默认情况下将其用作父选择器来隐藏它。
.no-js .whatever, .no-js .someOtherStuff { display: none; } <!-- just an example -->
答案 2 :(得分:0)
设置css属性以显示元素,然后如果启用了javascript,则使用javascript关闭/隐藏元素。但是,我不喜欢这样做,因为启用了javascript的用户数远远超过没有javascript的用户。您不希望强制大部分用户等待页面加载所有元素,然后在内容已经达到峰值时隐藏它们。
您希望实际使用您网页的用户采用您设计的方式,以获得最佳体验。网络功能丰富的javascript,jquery和其他库,没有javascript的用户习惯于无法获得Web开发人员的预期体验。如果我觉得我对没有javascript的用户真的很感兴趣,我会将它们重定向到一个静态页面。他们和网络爬虫一起玩得很开心。