cssHack
cssHack
不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,
得不到我们所需要的页面效果。这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。
如:
CSS hack用来解决有些css属性在不同浏览器中显示的效果不一样的问题,如margin属性在ie6中显示的距离会比其他浏览器中显示的距离宽2倍
也就是说margin-left:20px;在ie6中距左侧对象的实际显示距离是40px,而在非ie6中显示的距左侧对象的距离是设置的值20px;
所以要想设置一个对象距离左侧对象的距离在所有浏览器中都显示是20px的宽度的样式应为:
.className{margin-left:20px;_margin-left:20px;}
1.\9:所有IE浏览器都支持;
2._和-:仅ie6支持;
3.*:IE6 IE7 支持;
4.\0: IE8 IE9 ,Opera部分支持;
5.\9\0: IE8部分支持,IE9支持;
6.\0\9: IE8,IE9支持;
实例一:区分IE和非IE浏览器
#tip{
width:100px;
height:100px;
background:blue;/*非ie浏览器显示为蓝色*/
background:red\9;/*IE6 7 8 9 中显示为红色*/
}
实例二:区分IE6,IE7,IE8,FF
#tip1{
background:blue;/*firefox背景为蓝色,所有浏览器都支持*/
background:red\9;/*IE[6,9]可以覆盖上面的样式*/
*background:black;/*IE[6,7]可以覆盖上面的样式*/
_background:orange;/*仅仅IE6可以覆盖上面的样式*/
/*
总结:
IE 系列的浏览器都可读取 \9
IE6 IE7中可读取*
IE6 中仅仅可以识别 _(-)
*/
}
实例三:区分IE6 IE7 firefox(方法一)
#tip2{
background:blue;/*firefox 背景为蓝色*/
*background:black;/*仅仅ie7中*/
background:orange;/*仅仅ie6*/
}
实例四:区分IE6 IE7 firefox(方法二)
#tip3{
background:blue;
*background:green!important; /*ie7中的颜色*/
*background:orange;/*仅仅ie6*/
}
实例五:区别IE6和firefox
#tip4{
background:black;/*火狐*/
_background:red;/*ie6*/
}
IE浏览器下的hack总结:
#tip5{
background:blue\9;/*ie8 9*/
*background:blue;/*ie7*/
_background:blue;/*ie6*/
}
从上面看出无法区分ie 8 和 9;不过解决方法是有的;
:root div{
/*:root这个伪类,只有ie9能够支持,
但是部分其他浏览器可以使用
所以不建议使用
*/
background:pink;
}
其他浏览器的hack
@-moz-document url-prefix(){.element{color:red}};(firefox)
webkit和opera
/*当媒体查询时*/
@media all and (min-width:960px){
.ele{}
}
/*webkit中的写法
-webkit-min-device-pixel
指的是:设备像素密度测试
*/
@media screen and (-webkit-min-device-pixel-raio:2/3 ){
.ele{}
}
/*opera中的写法*/
@media all and (-webkit-min-device-pixel-ratio:2/3),not all and (-webkit-device-pixel-ratio:2/3)
{
.ele{}
}
接着大总结
.element{
color:#000; /*w3c标准*/
[;color:#f00;]; /*Webkit(chrome和safari)*/
color:#666\9; /*IE8*/
*color:#999; /*IE7*/
_color:#333; /*IE6*/
}
:root .element{color:#0f0\9;} /*IE9*/
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (
-webkit-min-device-pixel-ratio:0) { .element{color:#336699;}} /*opera*/
@-moz-document url-prefix(){ .element{color:#f1f1f1;}} /*Firefox*/
这里顺便在提一下其他的hack技巧;
cssHack的更多相关文章
- csshack技术
我最近想好好整理下csshack技术,但是结果很沮丧,下面我将我最初写的笔记和大家分享下. 我在单位整理的研究笔记: 不同的浏览器对某些CSS代码解析会存在一定的差异,因此就会导致不同浏览器下给用户展 ...
- 浏览器兼容之条件注释,cssHack
对于形形色色的浏览器,随之而来的就是一些兼容问题,大多应该都是IE下的兼容问题,因为任何浏览器下出现渲染不一致都极有可能是我们自己的结构或样式不符合W3C的某些要求,或者说违背了浏览器的某些规则而先造 ...
- 浏览器兼容处理(HTML条件注释、CSSHack和JS识别)
前面的话 本文中所有IEx+代表包含x及x以上:IEx-代表包含x及x以下,仅个人习惯.例:IE7+代表IE7.IE8…… 本文中所有例子全部经过测试,欢迎交流. HTML识别 条件注释法(IE10+ ...
- 针对主流浏览器的CSS-HACK写法及IE常用条件注释
一.通用区分方式: IE6.IE7能识别*,标准浏览器(如FF)不能识别*:IE6能识别*,但不能识别 !important:IE7能识别*,也能识别 !important:IE8能识别\0,不能识别 ...
- CSSHack 兼容性
史上最全的CSS hack方式一览 CSS hack技巧大全 Can i use CSS hack CSS hack 由于不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Fire ...
- IE11兼容性问题修改
最近测试给了我一大堆BUG,一瞅发现全是IE11的.吐槽一下这个浏览器真的比较特立独行.很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍.但是当需 ...
- 遭遇input与button按钮背景图失效不显示的解决办法
笔者从事网页前端代码页面工程师已有多年,作为一个网页重构人员常常会遇到一些莫名其妙的DIV+CSS(正确的说法是XHTML+CSS)在 IE.FireFox火狐. 谷歌浏览器CHROME.苹果浏览器S ...
- IE9下css hack写法
ie9一出css hack也该更新,以前一直没关注,今天在内部参考群mxclion分享了IE9的css hack,拿出来也分享一下: select { background-color:red\0; ...
- HTML兼容问题——HACK技术
有话先说:本文的目的主要是向大家描述一下我们在遇见IE8版本一下以及Firefox兼容的问题. 针对不同的浏览器写不同的CSS的过程,这就叫CSS hack,也叫写CSS hack,相信您会对一些比较 ...
随机推荐
- POJ 1724 ROADS(二维SPFA)
题目链接 用STL实现超时了,用普通队列500+,看到spfa,反应太迟钝了. #include <cstring> #include <cstdio> #include &l ...
- BZOJ4009: [HNOI2015]接水果
4009: [HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black, 她 ...
- jQuery加载外部文件的方式get、post、ajax、load的区别及异步加载的实现
一.$.post(url, [data], [callback], [type]) url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以 ...
- 【转载】Erlang 中 link 和 monitor 的区别
Link and Monitor differences 原文地址 Introduction link/1 and monitor/2 are 2 different ways of notifyin ...
- mysql主从配置脚本
PASSWD=123456USER=rootREP_HOST=10.10.10.70REP_PORT=3306REP_USER=slaveREP_PASSWD=123456@REP_FILE=mysq ...
- 移动Web—CSS为Retina屏幕替换更高质量的图片
来源:互联网 作者:佚名 时间:12-24 10:37:45 [大 中 小] 点评:Retian似乎是屏幕显示的一种趋势,这也是Web设计师面对的一个新挑战;移动应用程序的设计师们已经学会了如何为Re ...
- opengl绘制正弦曲线
利用opengl绘制正弦曲线 ,见代码: #include <windows.h> //#include <GLUT/glut.h> #include <GL/glut. ...
- TinyMCE在线编辑器使用方法初探
首先,下载TinyMCE包,地址:http://www.tinymce.com/ 然后将下载后的包解压,放置到一个文件夹下,创建一个html文件,并在其中书写如下代码: <!DOCTYPE ht ...
- Scrum会议10(Beta版本) 补交
组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...
- Apache Spark源码走读之3 -- Task运行期之函数调用关系分析
欢迎转载,转载请注明出处,徽沪一郎. 概要 本篇主要阐述在TaskRunner中执行的task其业务逻辑是如何被调用到的,另外试图讲清楚运行着的task其输入的数据从哪获取,处理的结果返回到哪里,如何 ...