HTML5中的no-js类是什么意思?

10

我看到很多网站都有专门针对IE6、IE7、IE8的代码。

<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

看起来我需要像这样使用特定类的HTML

<html class=" js no-flexbox flexbox-legacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths">

请问这些代码有什么用途?


1
可能是 https://dev59.com/02w15IYBdhLWcg3wQ5hi 的重复内容。 - w00
3个回答

10

这是Modernizr的说明。如果您的浏览器启用了JavaScript,则Modernizr将no-js更改为js类,因此您可以为启用JavaScript的浏览器和禁用JavaScript的浏览器定义CSS样式。


7

这段代码的目的是,在支持Javascript的环境下,可以使用JS删除no-js类名。

如果您的网站通常需要JS才能正常运行,您可以使用no-js类来为您的网页设置CSS样式。这提供了一种降级但功能正常的格式,如果您想要提供足够的HTML和足够的表单,使页面在没有JS的情况下工作,然后隐藏低版本并在以后用高级的东西替换它。


3

<!--[if IE]><![endif]--> 是微软的条件注释

因此,对于IE版本< 7 ([if lt IE 7]),使用<html lang="en" class="no-js ie6">

对于IE版本7 ([if IE 7]),使用<html lang="en" class="no-js ie7">

以此类推。

最后,对于IE版本> 9 ([if gt IE 9]),使用<html lang="en" class="no-js">

由于这是一个微软特定的注释,所有非IE浏览器将其视为普通注释,因此只使用<html lang="en" class="no-js">(唯一未被注释的部分)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接