关于 html class=”no-js”的使用

栏目: Html · 发布时间: 5年前

内容简介:最近有些朋友问到:为什么我的网页 code 有其实,这个Modernizr 是一个 javascript 库,检查你的游览器是否支持 CSS3 或者 HTML5 的特性而自动添加一些类名(class)到 <html> 并 替换掉原来的 .no-js(简单来说,Modernizr 就是一个CSS3/HTML5 的测试器,你需要测试什么,这可以到它的官方网站配置,选择自己需要测试的元素)。

最近有些朋友问到:为什么我的网页 code 有 class="no-js"

<!DOCTYPE html>
<html dir="ltr" lang="en-US" class="no-js">
<head>
<meta charset="utf-8">

其实,这个 no-js 是配合  Modernizr 一起使用的类名(class)

Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

Modernizr 是一个 javascript 库,检查你的游览器是否支持 CSS3 或者 HTML5 的特性而自动添加一些类名(class)到 <html> 并 替换掉原来的 .no-js(简单来说,Modernizr 就是一个CSS3/HTML5 的测试器,你需要测试什么,这可以到它的官方网站配置,选择自己需要测试的元素)。

还有让你的游览器支持 HTML5 中的新的标签,例如: <nav>, <header>, <footer> 和  <figure>

Modernizr 官方网站: http://modernizr.com/

IE8 例子

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

可以看到,IE8 不支持很多 CSS3。以 no 开头的,都是不支持。

如何使用:

0、在 </head> 关闭前加载 Modernizr。(这是个独立的 js 库,跟jQuery 没关系,没有jQuery 也可以使用。)

<script src="/js/modernizr-2.5.3.min.js"></script>
</head>

1、如果你的游览器没启用 javascript,当然 html 中的 class=”no-js” 是没改变的,我们可以用这个 class 来提示用户启用 javascript。

<!DOCTYPE html>
<html dir="ltr" lang="en-US" class="no-js"><!-- html 需要添加 no-js 这个class -->

2、除了侦查游览器是否用了 javascript,还可以玩其他的东西,类似 IE hack。譬如 IE8 不支持 box-shadow,我们可以指定这个 div 使用背景图片让它看起来有暗影。

/* 是否支持 JavaScript */

/* 默认支持JS,所以就隐藏这个提示 */
.please-enable-js {
    display:none;
}
/* 不支持 JS 就显示用户需要启用JS */
html.no-js .please-enable-js {
    display:block;
}



/* 是否支持 css 渐变*/
.glossy {
    /* 默认设计使用css渐变 */
    background-image: linear-gradient(top, #555, #333);
}
.no-cssgradients .glossy {
    /* 不支持css渐变的就是用图片,这样不会损坏原本的设计 */
    background-image: url("images/glossybutton.png");
}

使用 Modernizr 中的 javascript 方式侦查一些 HTML5 元素

if (Modernizr.canvas){
   // 如果游览器支持 HTML canvas,就运行这些代码
} else {
   // 不支持就运行这写代码
}

更多侦查在 Modernizr test: http://modernizr.github.com/Modernizr/test/index.html

Modernizr 是一款很好的工具,让设计者更好控制他的设计。如果你只用一点点或许没用完全用上它的功能,这样太浪费了,你还是使用 html5shiv 吧。

更新 #1

可以在游览器 console 里输入 Modernizr ,也可以看到测试的结果(结果是布尔值)。(当然你要加载这个 Modernizr 的 javascript 才能用)

更新 #2 – 关于 html5shiv 误解

1、html5shiv 只是个 javascript 库,只有一个功能,就是让 Internet Explorer 6-8 支持 HTML5 的标签,例如 article,section,aside,video 等等……

2、Modernizr 默认包含了这个库

3、使用 html5shiv,配合 conditional comment。你也不想支持的游览器加载多余的东西吧(IE9+ 是支持 HTML5的):

<!--[if lt IE 9]>
    <script src="assets/js/html5shiv.js"></script>
<![endif]-->

以上所述就是小编给大家介绍的《关于 html class=”no-js”的使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘技术

数据挖掘技术

[美]MichaelJ.A.B / 别荣芳、尹静、邓六爱 / 机械工业 / 2006-7 / 49.00元

本书是数据挖掘领域的经典著作,数年来畅销不衰。全书从技术和应用两个方面,全面、系统地介绍了数据挖掘的商业环境、数据挖掘技术及其在商业环境中的应用。自从1997年本书第1版出版以来,数据挖掘界发生了巨大的变化,其中的大部分核心算法仍然保持不变,但是算法嵌入的软件、应用算法的数据库以及用于解决的商业问题都有所演进。第2版展示如何利用基本的数据挖掘方法和技术,解决常见的商业问题。 本书涵盖核心的数......一起来看看 《数据挖掘技术》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具