区分IE8/IE7/IE6及其他浏览器
在 CSS中常用特殊字符识别表:
(1)*: IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的;
(2)!important: 除IE6不能识别 !important外, FF+IE8+IE7都能识别!important ;
(3)_ : 除IE6支持_ 外, FF+IE8+IE7都不支持_;
(4)\9:所有IE浏览器都识别(IE6、IE7、IE8、IE9)
示例:
(1)区别FF(IE8)与IE6 IE7
backgorund:orange; FF和IE8背景色将为橘黄色
*backgorund:red; IE6和IE7背景色将为红色
(2)区别FF(IE8)与IE6与IE7
background:orange; FF和IE8背景色将为橘黄色
*background:red !important; IE7背景色将为红色
*background:blue; IE6背景色将为蓝色
(3)区别FF(IE8)与IE6与IE7
background:orange; FF和IE8背景色将为橘黄色
*background:red; IE7背景色将为红色
_background:blue; IE6背景色将为蓝色
(4)区别FF与IE6 IE7 E8
color:gray; FF等非IE浏览器字体色将为灰色
color:red\9; IE8 IE9字体色将为红色
*color:green; IE7字体色将为绿色
_color:blue; IE6字体色将为蓝色
提示:CSS HACK书写顺序:先写FF等非IE浏览器所需样式,其次写IE8所需样式,接着是IE7的,再接着才是IE6的!
以下代码之间的空格是必要的,缺少空格导致失效
/*---------------------------------媒体查询hack [[---------------------------------*/
/* 只支持IE6、7 */ @media screen\9 {...} /* 只支持IE8 */ @media \0screen {...} /* 只支持IE6、7、8 */ @media \0screen\,screen\9 {...} /* 只支持IE8、9、10 */ @media screen\0 {...} /* 只支持IE9、10 */ @media screen and (min-width:0\0) {...} /* 只支持IE10 */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {...} /* 支持IE9、Chrome、Safari、Firefox、 Opera */ @media all and (min-width:0){...} /* 只支持wekit内核浏览器Chrome、Safari */ @media screen and (-webkit-min-device-pixel-ratio: 0) {...} /* 只支持Opera */ @media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) {...} /* 只支持Firefox */ @-moz-document url-prefix() {...}
例如:
<p class="class">@hack@hack@hack@hack@hack@hack</p> <style type="text/css"> @media all and (min-width:0){ /* 在IE9文本颜色为红色*/ .class{color:#F00;} } @media screen and (-webkit-min-device-pixel-ratio: 0) { /* 在Chrome、Safari中文本颜色为绿色 */ .class{color:#0F0;} } @media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) { /* 在Opera中文本颜色为蓝色 */ .class{color:#00F;} } @-moz-document url-prefix() { /* 在Firefox中文本颜色为品红色 */ .class{color:#F0F;} } </style>
/*---------------------------------媒体查询hack ]]---------------------------------*/
/*---------------------------------选择器hack [[---------------------------------*/
/* 只支持IE7 */ html* 选择器{} /* 仅支持IE7 使用该选择器需要HTML顶部有声明:<!DOCTYPE HTML ......>*/ *+html 选择器{} /* 只支持IE6 */ *html 选择器{}
如:
<p class="class">选择器hack选择器hack选择器hack选择器hack选择器hack选择器hack</p> html* .class{color:#F00;} /* 在IE7中文本颜色为红色 */ *+html .class{color:#0F0;} /* 在IE7中文本颜色为绿色 */ *html .class{color:#00F;} /* 在IE6中文本颜色为蓝色 */
/*---------------------------------选择器 hack ]]---------------------------------*/
/*---------------------------------属性hack [[---------------------------------*/
/* 只支持IE6、7、8、9、10 */
选择器{属性:属性值\9;}
/* 只支持IE8、9、10 */
选择器{属性:属性值\0;}
/* 支持IE8的部分属性值、完全支持IE9、10 */
选择器{属性:属性值\9\0;}
/* 仅支持IE7和IE6 */
选择器{*属性:属性值;}
/* 只支持IE6 */
选择器{_属性:属性值;}
/* 只不支持IE6 */
选择器{属性:属性值!important;}
/* 仅支持Safari和Chrome ,且只能放在选择器的最后一个属性,因为当浏览器解析[;;]后,不会再读取后面属性 */
选择器{[;属性:属性值;]}
如:
<p class="class">属性hack属性hack属性hack属性hack属性hack属性hack</p> <style type="text/css"> .class{ color:#F00\0;/* 在IE8和IE9中文本颜色为红色 */ *color:#0F0; /* 在IE7中文本颜色为绿色 */ _color:#00F; /* IE6中颜色为蓝色 */ [;color:#F0F;]/* 在Safari和Chrome中颜色为品红色 */ } </style>
建议是:尽量写出无hack的结构和样式,做到可以向后兼容,减少多余代码,更加可以体现自己专业化的态度。
如果 觉得文章不错,可以请博主喝一杯奶茶哦!!!
区分IE8/IE7/IE6及其他浏览器的更多相关文章
- 区分IE8/IE7/IE6及其他浏览器-CSS “\9″
区分IE8/IE7/IE6及其他浏览器-CSS “\9″ 原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] by zhangxinxu from h ...
- 区分IE9/IE8/IE7/IE6及其他浏览器-CSS hack
记录一下这些浏览器的hack如下: 一.IE9以及以下版本浏览器 对于IE8及其以下版本的浏览器,就是使用本文标题所提到的”\9″ hack.如下代码: .ie8_9{ color:blue; /*所 ...
- jquery 1.9 1.8 判断 浏览器(IE11,IE8,IE7,IE6)版本
1.9以后很我方法删除了,所有和之前版本判断浏览器版本有所差记录一下 1.9 ------------------------------------------------------------- ...
- 如何让ie8/ie7/ie6支持html5的<footer></footer><nav></nav>等标签
使用他们能让代码语义化更直观,而且更方便SEO优化.但是此HTML5新标签在IE6/IE7/IE8上并不能识别,需要进行JavaScript处理.以下就介绍几种方式. 方式一:Coding JavaS ...
- 针对IE6,IE7,IE8,IE9,FF等不同浏览器的CSS写法
首先我们介绍一下HACK原理,就是不同浏览器对字符的识别不同 在 CSS中常用特殊字符识别表: (1)*: IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的; (2)!importan ...
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1: ...
- bootstrap支持ie8 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
做一个在线系统,PC端也要做,但要兼容千恶的IE8[IE6 是万恶,打死我都不会管IE6],IE8 是我底线了md, 在IE8下 bottstrap 错乱,变形,不支持一些属性的问题,下面看了一篇 某 ...
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上 ...
- 【Bootstrap】一个兼容IE8、谷歌等主流浏览器的受众门户式风格页面
上一次写的<[Bootstrap]一个兼容IE8.谷歌等主流浏览器的受众巨幕式风格页面>(点击打开链接) 部分老一辈的需求可能对这样的后现代的风格并不惬意, 没关系,我们全然能够改变布局 ...
随机推荐
- C++实现算法常用的STL---整理
algorithm min(a,b)和max(a,b) #include<iostream> #include<algorithm> using namespace std; ...
- 【学习总结】GirlsInAI ML-diary day-3-数据类型
[学习总结]GirlsInAI ML-diary 总 原博github链接-day3 数据类型 熟悉一下计算时可能碰到的数据类型.(计算时...) 1-打开jupyter,new一个新python文件 ...
- Python3练习题 021:递归方法求阶乘
利用递归方法求5!. 方法一 f = 1 for i in range(1,6): f = f * i print(f) 方法二 import functools print(functo ...
- 面试题(校招java)
1:linux线程和进程的区别? 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程 ...
- STL中vector、set、list和map
- python之路--FTP 上传视频示例
# 服务端 import json import socket import struct server = socket.socket() server.bind(('127.0.0.1',8001 ...
- docker学习笔记一
知识点: 1)docker简介 2)docker安装,仓库配置 3)docker仓库镜像拉取,导出,导入,删除 4)docker容器操作,容器的创建,删除,运行,停止,日志查看等. 5) docke ...
- 莫烦theano学习自修第五天【定义神经层】
1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T ...
- vue開發環境搭建
npm(node package manager),nodejs的包管理器,用於nodejs插件的安裝.卸載和管理依賴. 安裝npm: 檢查npm是否安裝成功及版本:npm -v 卸載npm: 更新n ...
- cefSharp 开发随笔
最近用cefSharp开发一点简单的东西.记录一点随笔,不定时更新. 1.用nuget安装完之后,架构要选择x86或者x64,否则编译会报错(截止到Chrome 55版本) 2.向Chrome注册C# ...