优先级

important > 内联(1,0,0,0) > id(1,0,0) > class(1,0) > element(1) > *通配符

css引入方式

方式一:在head里用link标签(推荐使用)
<link rel="stylesheet" href="xxx.css"> 方式二:在head里用style标签
<style> some css </style> 方式三:内联,在标签上用style
<div style=" some css "></div> 方式四:@import
@import url("xxx.css"); link和@import的区别:
1.兼容性:@import在IE5+支持,link全部支持
2.DOM样式操作:link(可被js改变),@import(不可被js改变)
3.加载顺序:@import必须放在最顶部,和link混用时破坏并行加载,link阻断@import,多个@import不同于预期加载顺序

Hacks

转自:梦想天空

IE选择器 Hack

/* IE 6 and below */
* html .selector {}
.suckyie6.selector {} /* .suckyie6 can be any unused class */ /* IE 7 and below */
.selector, {} /* IE 7 */
*:first-child+html .selector {}
.selector, x:-IE7 {}
*+html .selector {} /* Everything but IE 6 */
html > body .selector {} /* Everything but IE 6/7 */
html > /**/ body .selector {}
head ~ /* */ body .selector {} /* Everything but IE 6/7/8 */
:root *> .selector {}
body:last-child .selector {}
body:nth-of-type(1) .selector {}
body:first-of-type .selector {}

IE属性/值 Hack

/* IE 6 */
.selector { _color: blue; }
.selector { -color: blue; } /* IE 6/7 - acts as an !important */
.selector { color: blue !ie; }
/* string after ! can be anything */ /* IE 6/7 - any combination of these characters:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */
.selector { !color: blue; }
.selector { $color: blue; }
.selector { &color: blue; }
.selector { *color: blue; }
/* ... */ /* IE 8/9 */
.selector { color: blue\0/; }
/* must go at the END of all rules */ /* IE 8/9 */
.selector { color: blue\0/; }
/* must go at the END of all rules */ /* IE 9/10 */
.selector:nth-of-type(1n) { color: blue\9; } /* IE 6/7/8/9/10 */
.selector { color: blue\9; }
.selector { color/*\**/: blue\9; } /* Everything but IE 6 */
.selector { color/**/: blue; }

IE Media Query Hack

/* IE 6/7 */
@media screen\9 {} /* IE 8 */
@media \0screen {} /* IE 9/10, Firefox 3.5+, Opera */
@media screen and (min-resolution: +72dpi) {} /* IE 10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {} /* IE 6/7/8 */
@media \0screen\,screen\9 {} /* IE 8/9/10 & Opera */
@media screen\0 {} /* IE 9/10 */
@media screen and (min-width:0\0) {} /* Everything but IE 6/7/8 */
@media screen and (min-width: 400px) {}

IE Javascript Hack

/* IE 6 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 6]><i></i><![endif]-->";
var isIE = checkIE.getElementsByTagName("i").length == 1; /* IE 7 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 7]><i></i><![endif]-->";
var isIE = checkIE.getElementsByTagName("i").length == 1;
navigator.appVersion.indexOf("MSIE 7.")!=-1 /* IE <= 8 */
var isIE = '\v'=='v'; /* IE 8 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 8]><i></i><![endif]-->";
var isIE = checkIE.getElementsByTagName("i").length == 1; /* IE 9 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 9]><i></i><![endif]-->";
var isIE = checkIE.getElementsByTagName("i").length == 1; /* IE 10 */
var isIE = eval("/*@cc_on!@*/false") && document.documentMode === 10; /* IE 10 */
var isIE = document.body.style.msTouchAction != undefined;

Firefox 浏览器

选择器Hack

/* Firefox 1.5 */
body:empty .selector {} /* Firefox 2+ */
.selector, x:-moz-any-link {} /* Firefox 3+ */
.selector, x:-moz-any-link; x:default {} /* Firefox 3.5+ */
body:not(:-moz-handler-blocked) .selector {} 媒体查询 Hack /* Firefox 3.5+, IE 9/10, Opera */
@media screen and (min-resolution: +72dpi) {} /* Firefox 3.6+ */
@media screen and (-moz-images-in-menus:0) {} /* Firefox 4+ */
@media screen and (min--moz-device-pixel-ratio:0) {} Javascript Hack /* Firefox */
var isFF = !!navigator.userAgent.match(/firefox/i); /* Firefox 2 - 13 */
var isFF = Boolean(window.globalStorage); /* Firefox 2/3 */
var isFF = /a/[-1]=='a'; /* Firefox 3 */
var isFF = (function x(){})[-5]=='x';

Chrome浏览器

选择器 Hack

/* Chrome 24- and Safari 5- */
::made-up-pseudo-element, .selector {} 媒体查询 Hack /* Chrome, Safari 3+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {} Javascript Hack /* Chrome */
var isChrome = Boolean(window.chrome);

Safari浏览器

选择器Hack

/* Safari 2/3 */
html[xmlns*=""] body:last-child .selector {}
html[xmlns*=""]:root .selector {} /* Safari 2/3.1, Opera 9.25 */
*|html[xmlns*=""] .selector {} /* Safari 5- and Chrome 24- */
::made-up-pseudo-element, .selector {} 媒体查询Hack /* Safari 3+, Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0) {} Javascript Hack /* Safari */
var isSafari = /a/.__proto__=='//';

Opera浏览器

选择器Hack

/* Opera 9.25, Safari 2/3.1 */
*|html[xmlns*=""] .selector {} /* Opera 9.27 and below, Safari 2 */
html:first-child .selector {} /* Opera 9.5+ */
noindex:-o-prefocus, .selector {} 媒体查询Hack /* Opera 7 */
@media all and (min-width: 0px){} /* Opera 12- */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {} /* Opera, Firefox 3.5+, IE 9/10 */
@media screen and (min-resolution: +72dpi) {} /* Opera, IE 8/9/10 */
@media screen {} Javascript Hack /* Opera 9.64- */
var isOpera = /^function \(/.test([].sort); /* Opera 12- */
var isOpera = Boolean(window.opera);    

CSS优先级、引入方式、Hack的更多相关文章

  1. python 全栈开发,Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)

    一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...

  2. 前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器

    前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器 一丶CSS简介    叠样式表(英文全称:Cascading Style Sheets)是一种用来表现 ...

  3. Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)

    一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...

  4. 前端(二)—— CSS的引入方式、长度与颜色单位、常用样式、选择器

    CSS的引入方式.长度与颜色单位.常用样式.选择器 一.CSS的三种引入方式 1.行间式 <!doctype html> <html> <head> <met ...

  5. CSS的引入方式

    再用HTML编写的文本中,有是没能达到我们想要的效果,此时此刻我们可以用过引用CSS来控制!这不仅使得效果好而且代码层次清晰.CSS的引入方式可以分为四类: 1.链入外部样式表,就是把样式表保存为一个 ...

  6. CSS的引入方式和样式

    CSS的引入方式和样式 一.样式 行内样式 内接样式 外接样式(1.链接式 2.导入式) <!--行内样式--> <div> <p style="color: ...

  7. CSS的引入方式和复合选择器

    CSS的引入方式 样式表 优点 缺点 范围 行内样式表 书写方便 结构样式混写 控制一个标签 内部样式表 部分结构和样式相分离 没有彻底 控制一个页面 外部样式表 完全实现结构和样式分离 需要引入 控 ...

  8. css样式引入方式,及常用设置标签样式

    一. 三种样式引入方式   1. 内联式-直接写在div标签中,不推荐用 <div style="color:red;font-size:20px;font-family:'Micro ...

  9. CSS 从入门到放弃系列:CSS的引入方式

    css的四种引入方式 内联方式(行间样式) <div style="width:100px;height: 100px; background-color: red"> ...

  10. 5.CSS的引入方式

    CSS的三种样式表 按照CSS样式书写的位置(或者引入的方式),CSS的样式表可以分为三大类: 1.行内样式表(行内式) <div style="color:red: font-siz ...

随机推荐

  1. centos上安装rabbitmq并且python测试

    把我的阿里云重置了一下,重新安装rabbitmq,看看会出现什么问题. 首先,把erlang环境安装一下,直接 yum list | grep erlang erlang.x86_64 R16B-03 ...

  2. 使用laravel的任务调度(定时执行任务)

    laravel中有一个很强大上的功能,只需要在服务器上添加一个cron条目,就可以定时执行所有的laravel任务. 现在有如下数据表: 我想让cron表中的cron字段的值每分钟增加1,那么我需要如 ...

  3. 如何在项目中使用gtest1.6

    问题 gtest1.6版本的README里说该版本不支持make install,其意思就是说你没法通过make命令把gtest安装到/usr/local/lib之类的目录,所以你也没办法通过下面的命 ...

  4. 扩展Log4j支持JNDI数据源

    log4j.properties配置文件: log4j.rootLogger=INFO,db #使用log4j扩展支持JNDI数据源 log4j.appender.db=com.qdgswx.log4 ...

  5. SmartBusinessDevFramework架构设计-2:结构图示

    架构设计一览图 下图表示了本架构的设计草稿. 接下来  ,我们将逐步细述,各个模块之间的松散耦合关系. 核心的实现原理.敬请关注.

  6. vim 中Ctags的安装和使用

    Ctags是一个用来为源文件中的标识符(如变量.函数.类成员.宏定义等)创建索引文件的程序.这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名 ...

  7. 通过代理访问nginx和直接访问nginx区别

    80.82.78.38 [23/Sep/2016:05:36:18 +0800] "GET http://www.baidu.com/cache/global/img/gs.gif HTTP ...

  8. MVC4.0 Controller和View重复加载

    项目完成以后总是感觉有一些页面跑起来特别的慢,就仔细的调试了下,发现有很多也买年都是走了两遍,页面加载的时候Controller和View会连续走了两次,没有一点缘由 查了很久也不知道什么原因,这个问 ...

  9. 处理通过<input type="file">的Post 请求

    [HttpPost] public ActionResult Cal() { string ExcelName = System.DateTime.Now.ToString("yyyyMMd ...

  10. chrome加载本地js

    通过chrome的扩展功能,可以执行一些本地脚本. 1.如何添加扩展程序 具体做法是:chrome -> 设置 -> 扩展程序 -> 加载正在开发的扩展程序 图(1.1) 图(1.2 ...