Sass结合Modernizr的使用方法
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的使用方法的更多相关文章
- Sass 编译的几种方法
常常有人会问,使用 Sass 进行开发,那么是不是直接通过“<link>”引用“.scss”或“.sass”文件呢? 那么这里告诉大家,在项目中还是引用“.css”文件,Sass 只不过是 ...
- sass学习笔记 -- sass的四种编译方法
sass的四种编译方法:(.scss) (一)ruby下的命令行编译 首先需要安装ruby,注意需勾选Add Ruby executables to your PATH选项,以添加环境变量. ruby ...
- sass安装更新及卸载方法
在 Windows 平台下安装 Ruby 需要先有 Ruby 安装包,大家可以到 Ruby 的官网(http://rubyinstaller.org/downloads)下载对应需要的 Ruby 版本 ...
- sass中文注释的解决方法和一些简单用法
最近用sass来编写项目中的css,发现不能添加中文注释,报错如下 于是查阅了一下发现需要在scss文件顶部加上@charset "utf-8"即可解决. 在此顺便记录一些sass ...
- 2019最新create-react-app创建的react中使用sass/scss,以及在react中使用sass/scss公共变量的方法
Sass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言.Sas ...
- Sass环境安装-Sass sublime 编辑器插件编译方法
首先官网(http://www.ruby-lang.org/en/downloads/)下载 ruby (1)打开链接进入到下载页面,点击如下位置进行下载 (2)下载页面 (3)进入到各个版本的列表页 ...
- Sass基本数据类型和各类型的原生方法
数据类型: 数字:1,2,3,11,10px (可以带单位) 字符串:"asd",'asd',asd (有引号和无引号都是字符串类型) 如 $name : zhang san ; ...
- sass初步认识2
sass可以使用变量,采用 $ 来进行变量声明,格式为: $highlight-color:#f90;(声明方式和css属性声明类似.使用的变量名可以更加语义化) 与js分为全局变量和局部变量类似,s ...
- sass+require实现侧边栏
一.效果图(如下)及使用的技术 实现用sass实现页面中右侧固定侧边栏的样式,用require.js实现返回顶部的功能 二.sass 具体的sass的介绍就不多说了,大家可以参考sass官网介绍,下面 ...
随机推荐
- div+css的前端工程师的价值体现在哪些方面?
个人认为前端工程师正慢慢演变为产品工程师.wap app, 响应性UI等以html5技术为基础的开发将成为前端工程师的主要工作内容,解决产品跨平台跨设备的实现问题.Javascript, HTML, ...
- 【树形DP/搜索】BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会
1827: [Usaco2010 Mar]gather 奶牛大集会 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 793 Solved: 354[Sub ...
- BT5之Metasploit[MSF]连接postgresql数据库
1,先查看postgresql的端口,默认是自动开启的,端口7337 . root@bt:~# netstat -tnpl |grep postgres tcp 0 0 1 ...
- .NET基础篇——Entity Framework 数据转换层通用类
在实现基础的三层开发的时候,大家时常会在数据层对每个实体进行CRUD的操作,其中存在相当多的重复代码.为了减少重复代码的出现,通常都会定义一个共用类,实现相似的操作,下面为大家介绍一下Entity F ...
- 暑假集训单切赛第一场 CF 191A Dynasty Puzzles
题意不说了,看原题吧,思路见代码: #include <iostream> #include <stdio.h> #include <string.h> #incl ...
- ubuntu12.10+NDK r9 编译 ffmpeg 的一些参考资料Perhaps you should add the directory containing `libssl.pc'
首先入门级的 编译宝典: https://trac.ffmpeg.org/wiki/CompilationGuide/Android http://www.roman10.net/how-to-bui ...
- Android 父类super.onDestroy();的有关问题
super.onDestroy(); 的问题. 注意:没有显式地在自己的方法中调用父类Activity的onDestroy是会报错的.我的问题很简单,在我覆盖的onDestroy(),方法中需要调用父 ...
- 2016年2月---Javascript
How to Learn JavaScript Properly 如何正确学习JavaScript Learn Intermediate and Advanced JavaScript 书籍: < ...
- lintcode:两个数的和
题目 两数之和 给一个整数数组,找到两个数使得他们的和等于一个给定的数target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是1到n,不 ...
- SQL Server Profiler监控SQL Server性能
全面掌握SQL Server Profiler 1. 原理与相关概念介绍 SQL Server Profiler,大家已经非常熟悉.常常在性能优化中使用,本文档详细介绍SQL Server ...