Modernizr在初始化的时候会首先找寻class=“no-js”的元素:

<!DOCTYPE html>
<html class="no-js">
<head lang="en">
<title>ModernizrDemo</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./stylesheets/base.css">
</head>
<body>
<script src="js/Modernizr.js"></script>
</body>
</html>

如果浏览器支持JavaScript,那么节点的class会被变成“js”,使用firebug或者谷歌控制台查看就是如下结果:

<!DOCTYPE html>
<html class="js fontface cssanimations
backgroundsize borderradius boxshadow csstransitions no-csscalc">
<head lang="en">
<title>ModernizrDemo</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./stylesheets/base.css">
</head>
<body>
<script src="js/Modernizr.js"></script> </body></html>

我们可以看到,在html节点,附加了一些“未知”的样式名称,这正是Modernizr检测CSS支持情况的结果,如果附加的className是no-"",那么表明当前浏览器内核不支持改css属性,那么就为我们在开发中解决浏览器的差异上提供了很大的便利。

本文只阐述如题观点,如果你同时在使用sass作为css预处理器的话,实测可以告诉您一个技巧,来看一个例子:

.csscalc .mg-right{
margin-right:calc(100% - 900px);
}
.no-csscalc .mg-right{
margin-right: 3%;
}

上述样式说明了,在浏览器支持css运算函数calc的时候,右边距样式使用calc来计算,不支持的时候右边距样式为3%;

这就使得我们在使用sass的时候,如果我们很元素都在使用这个边距,

那么我们不能以一个函数(@mixin)来表示公共的右边距了,因为它不具备一个单独的样式木块(不具备一个具体名称mg-right),不能被命名空间.csscalc或者.no-csscalc所管理:

如下代码:

/**这种方式编译到样式中以后并不能被Modernizr所产成的命名空间所管理,bad**/
@mixin mixin_mg_right(){
margin-right: calc(100% - 900px);
margin-right: 3%;
}
body{
@include mixin_mg_right();
} /**使用继承的方式来管理。good**/
.csscalc .mg-right{
margin-right:calc(100% - 900px);
}
.no-csscalc .mg-right{
margin-right: 3%;
}
body{
@extend .mg-right;
}

如此,完结!

Sass结合Modernizr的使用方法的更多相关文章

  1. Sass 编译的几种方法

    常常有人会问,使用 Sass 进行开发,那么是不是直接通过“<link>”引用“.scss”或“.sass”文件呢? 那么这里告诉大家,在项目中还是引用“.css”文件,Sass 只不过是 ...

  2. sass学习笔记 -- sass的四种编译方法

    sass的四种编译方法:(.scss) (一)ruby下的命令行编译 首先需要安装ruby,注意需勾选Add Ruby executables to your PATH选项,以添加环境变量. ruby ...

  3. sass安装更新及卸载方法

    在 Windows 平台下安装 Ruby 需要先有 Ruby 安装包,大家可以到 Ruby 的官网(http://rubyinstaller.org/downloads)下载对应需要的 Ruby 版本 ...

  4. sass中文注释的解决方法和一些简单用法

    最近用sass来编写项目中的css,发现不能添加中文注释,报错如下 于是查阅了一下发现需要在scss文件顶部加上@charset "utf-8"即可解决. 在此顺便记录一些sass ...

  5. 2019最新create-react-app创建的react中使用sass/scss,以及在react中使用sass/scss公共变量的方法

    Sass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言.Sas ...

  6. Sass环境安装-Sass sublime 编辑器插件编译方法

    首先官网(http://www.ruby-lang.org/en/downloads/)下载 ruby (1)打开链接进入到下载页面,点击如下位置进行下载 (2)下载页面 (3)进入到各个版本的列表页 ...

  7. Sass基本数据类型和各类型的原生方法

    数据类型: 数字:1,2,3,11,10px (可以带单位) 字符串:"asd",'asd',asd (有引号和无引号都是字符串类型) 如 $name : zhang san ; ...

  8. sass初步认识2

    sass可以使用变量,采用 $ 来进行变量声明,格式为: $highlight-color:#f90;(声明方式和css属性声明类似.使用的变量名可以更加语义化) 与js分为全局变量和局部变量类似,s ...

  9. sass+require实现侧边栏

    一.效果图(如下)及使用的技术 实现用sass实现页面中右侧固定侧边栏的样式,用require.js实现返回顶部的功能 二.sass 具体的sass的介绍就不多说了,大家可以参考sass官网介绍,下面 ...

随机推荐

  1. 学习KnockOut第二篇之Counter

                                                                        学习KnockOut第二篇之Counter        欲看此 ...

  2. Careercup - Facebook面试题 - 5110993575215104

    2014-04-30 16:12 题目链接 原题: The beauty of a number X is the number of 1s in the binary representation ...

  3. 《C++Primer》复习——with C++11 [2]

    1.数组引用形参,C++允许将变量定义成数组的引用,给予同样的道理,形参也可以是数组的引用,此时引用形参绑定到对应的实参上,也就是绑定到数组上 ]) { for (auto elem : arr) c ...

  4. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  5. 为什么使用long声明和double声明得到的结果不一样呢?

    为什么使用long声明和double声明得到的结果不一样呢? 程序如下: public class P376{ public static void main(String[] atgs){ long ...

  6. c# XAML

    http://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/hh465340.aspx 如果你选择在 Microsoft Visual Basi ...

  7. HDU 5486 Difference of Clustering 图论

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5486 题意: 给你每个元素一开始所属的集合和最后所属的集合,问有多少次集合的分离操作,并操作和不变操 ...

  8. IEnumerator/IEnumerable接口

    IEnumberator函数成员 Current返回序列中当前位置项的 属性 只读属性 返回object类型 MoveNext把枚举器位置前进到集合中下一项的方法 新位置有效返回true,否则fals ...

  9. 【HTTP】Fiddler(一) - Fiddler简介

    1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包 ...

  10. 【DP/二分】BZOJ 1863:[Zjoi2006]trouble 皇帝的烦恼

    863: [Zjoi2006]trouble 皇帝的烦恼 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 465  Solved: 240[Submit][ ...