1

我在 CSS 和一些 jQuery 中有一些元素,display:none;它们会延迟淡入淡出。

如何处理关闭了 javascript 的浏览器?有没有办法<noscript>改变这些元素的显示值?

4

3 回答 3

2

没有脚本就无法设置 CSS 值,但可以将默认值设置为可见状态,并且在脚本中执行的第一件事是立即将元素设置为不可见状态,然后再将其淡化。

您还可以查看不需要 JavaScript的 CSS 动画http://www.w3.org/TR/css3-animations/ ,但它们确实需要现代风格的浏览器http://caniuse.com/css-animation

于 2012-11-27T21:34:42.120 回答
1

如果您使用modernizr,它会将类插入js到您的<html>标签中(当然,如果Javascript正在运行),并且具有HTML5样板文件提出的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 -->
于 2012-11-27T21:40:50.850 回答
0

设置 css 属性以显示元素,然后如果启用了 javascript,则使用 javascript 关闭/隐藏元素。但是,我不喜欢这样做,因为启用了 javascript 的用户数量远远超过了没有 javascript 的用户。您不想强迫大部分用户等待页面加载所有元素,然后在他们已经在内容达到峰值时隐藏它们。

您希望以您设计的方式实际使用您的网页的用户能够获得最佳体验。Web 的 javascript、jquery 和其他库功能如此丰富,以至于没有 javascript 的用户习惯于无法获得 Web 开发人员想要的体验。如果我觉得我真的对没有 javascript 的用户情有独钟,我会将他们重定向到静态页面。他们和网络爬虫将一起玩得开心。

于 2012-11-27T21:46:00.650 回答