CSS hank
CSS hank
CSS hank是为了让CSS代码兼容不同浏览器,也可以通过CSS hank为不同的浏览器设置不同的CSS样式。
CSS hank的3种表现形式:
类内部hank
IE6能识别下划线_和星号*,但不能识别!important;
IE7能识别星号*和!important,但不能识别下划线_;
IE8只能识别\0和!important;
FF能识别!important,但不能识别*;
-减号是IE6专有的hack;
\9IE6/IE7/IE8/IE9/IE10都生效;
\0IE8/IE9/IE10都生效,是IE8/9/10的hack;
\9\0只对IE9/IE10生效,是IE9/10的hack;选择器hank
选择器hank是针对一些页面表现不一致或者需要特殊对待的浏览器,在CSS选择器前加上一些只有某些特定浏览器才能识别的前缀进行hack。
*html" * "前缀只对IE6生效
*+html" * +"前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
@media \0screen{body { background: red; } 只对IE8有效
@media \0screen\,screen\9{body { background: blue; } 只对IE6/7/8有效
@media screen\0{body { background: green; } 只对IE8/9/10有效
@media screen and (min-width:0\0){body { background: gray; } 只对IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){body { background: orange; } 只对IE10有效IE注释hank
IE注释hank是IE浏览器专有的Hack方式.
只在IE下生效<!--[if IE]>
这段文字只在IE浏览器显示
<![endif]-->
只在IE6下生效
<!--[if IE 6]>
这段文字只在IE6浏览器显示
<![endif]-->
只在IE6以上版本生效
<!--[if gte IE 6]>
这段文字只在IE6以上(包括)版本IE浏览器显示
<![endif]-->
只在IE8上不生效
<!--[if ! IE 8]>
这段文字在非IE8浏览器显示
<![endif]-->
非IE浏览器生效
<!--[if !IE]>
这段文字只在非IE浏览器显示
<![endif]-->
区分各种浏览器
1.区分IE和非IE浏览器
.class{
background:blue;/*IE、非IE都生效*/
background:red \9;/*IE6.7.8.9.10都生效*/
}
2.区分IE6,7,8,FF
.class{
background:blue;/*FF*/
background:red; \9;/*IE8*/
*background:green;/*IE7*/
_background:black;/*IE6*/
}
3.区分IE6,7,FF
.class1{
background:blue;/*FF*/
*background:green;/*IE7*/
_background:black;/*IE6*/
}
.class2{
background:blue;/*FF*/
*background:green !important;/*IE7*/
*background:black;/* IE6可以识别*和_ */
}
4.区分IE7,FF
.class{
background:blue;/* FF可以识别!important,但无法识别* */
*background:green !important;/*IE7*/
}
5.区分IE6,7
.class1{
*background:green;/*IE7*/
_background:black;/*IE6*/
}
.class2{
background:green !important;/*IE7*/
background:black;/* IE6不能识别!important */
}
6.区分IE6,FF
.class{
background:blue;/* FF */
_background:green;/*IE6*/
}
CSS hank的更多相关文章
- CSS Hank兼容浏览器的
color:red; /* 所有浏览器都支持 */ color:red !important; /* 除IE6外 */ _color:red; /* IE6支持 */ *color:red; /* I ...
- CSS HACK 如何书写
什么是css hank 由于不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持.解析不一样,导致在不同浏览器的环境中 ...
- Matplotlib数据可视化(3):文本与轴
在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...
- 总结CSS面试题目的考察点及常见布局问题整理
整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...
- CSS实现的几款不错的菜单栏
前言 自从做了智慧城市这个项目之后,我一个做后端的开发者,瞬间转为前端开发,不过我还是很喜欢前端的.前端那些事,其实蛮有意思的,HTML实现的是静态的,使用ajax之后就可以和数据库交互了,加上js和 ...
- 前端面试题 ----css篇
转载自https://www.cnblogs.com/zhangshuda/p/8465043.html,感谢原博主 1.css盒模型有哪些及区别content-box border-box padd ...
- CSS的未来
仅供参考 前言 完成<CSS核心技术与实战>这本书,已有一个多月了,而这篇文章原本是打算写在那本书里面的,但本章讲解的内容,毕竟属于CSS未来的范畴,而这一切都还不能够确定下来,所以这一章 ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- 前端css兼容性与易混淆的点
一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...
随机推荐
- 限制div高度当内容多了溢出时显示滚动条
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type"content= ...
- WKWebView与sessionID的因果
问题描述:在webView中点击下载按钮后,下载成功文件,然后再去点击上传文件,这时候服务器会报用户未登录错误. 暂时分析的原因是WKWebView在下载后cookie会保存服务器产生的session ...
- SPOJ QTREE4 lct
题目链接 这个题已经处于花式tle了,改版后的spoj更慢了.. tle的话就多交几把... #include <iostream> #include <fstream> #i ...
- Android getReadableDatabase() 和 getWritableDatabase()
Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例.(getReadableDa ...
- web前端学习之路
test 随着自己对于web前端知识了解的越多,越来越发现自己真的好菜 一脸茫然阶段 两年前大学接触网页设计,那时对于网页设计一窍不通,只是看了一本自己大学编的一本入门教材,我甚至不知道那些网页设计的 ...
- .Net 数组去除重复项
string str = "1/1/12/13/15/16/15//"; ] { '/' }, StringSplitOptions.RemoveEmptyEntries); Li ...
- Android开源资料大集合_架构&UI
1. Anroid开源框架架 https://github.com/kymjs/KJFrameForAndroidhttp://www.oschina.net/p/thinkandroid http: ...
- Sql Sever 字符串截取汉字
最近需要在SQL的字符串中截取汉字,利用unicode函数判断字符的unicode编码,根据编码范围过滤掉非汉字字符. 写成了一个function /*@str 需要获取汉字的字符串*/ create ...
- SQL中存储过程和自定义函数的区别(转载)
存储过程: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...
- openwrt看IP流量
可以利用iptable来实现的,看附件的脚本. 把他放到路由器里面,然后运行. #!/bin/sh echo "Collecting data..." echo "&qu ...