刚更新的css hack技巧_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 11:44:23
原创
1320人浏览过

1概念:

不同的浏览器对CSS的解析效果不同,为了达到相同的效果,就得根据不同浏览器写不同的css

2规则:

 CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对IE浏览器。

 类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等  

立即学习前端免费学习笔记(深入)”;

   选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等  

   HTML头部引用(if IE)Hack:针对所有IE:,针对IE6及以下版本:这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

   书写顺序,一般是将识别能力强的浏览器的CSS写在后面。

举个栗子:

 background: #f00;   各浏览器都认识,主要给高级浏览器用background: blue\0; 网上说是给IE8的,不过经过测试,IE10、9、8都认识他。background:#F60\0\9;  这个东西是给IE8 玩background: red\9;  这个东西好玩了,所有的ie都认识他。+background: yellow;   *或+ 留给了IE7、6 这一点还是不错的_background:black; _专门留给ie6 :root .test{background: blue\9;} :root是给ie9的,网上流传了个版本是 :root #test { background:blue\0;},新版opera也认识,所以经过反复验证最终ie9特有的为:root 选择符 {属性\9;} 
登录后复制

 

燕雀Logo
燕雀Logo

为用户提供LOGO免费设计在线生成服务

燕雀Logo 101
查看详情 燕雀Logo
浏览器内核 Trident Trident Trident Trident Trident Trident Gecko Presto WebKit
  IE6 IE7 IE8 IE9 IE10 IE11 FF Opera Sarari
* T T F F F F  F F F
_ T F F F F F F F F
!important  见下面详解  T  T  T  T  T  T T T
@cc_on(特性检测)激活条件编译  见下面详解  见下面详解  见下面详解  见下面详解

 

if(/*@cc_on!@*/false){

      document.documentElement.className+='ie10';

}

 

 if (/*@cc_on!@*/true) {

            document.documentElement.className += ' ie' + document.documentMode;

        }

同IE11

 同IE11

 同IE11

 \9  T  T  T  T  T  T  F F F
\0 F F T T T T  F T F
\9\0       T,其余F          

3标准盒模型:元素宽度=width+padding+border+margin

     IE: 元素宽度=width+margin(padding和border都包含在width中了)

4

我们可以通过这种方法在里面加上只想让IE解析的东西,比如css,js,HTML。,其他浏览器会把他们当成注释。

5多类选择符的写法:

#my.c1.c2 { color:red;}.c1.c2 { color:red;}
登录后复制

以上代码在IE6中会被理解为

#my.c2 { color:red;}.c2 { color:red;}
登录后复制

在开发中最好不用多类选择器这样组合,因为IE6会只会读最后一个。
6!important在ie6中

识别:

<style type="text/css"> .demo{ color:red !important; } .demo { color:green; } </style> <div class="demo">www.jb51.net</div> 
登录后复制

不识别:

<style type="text/css">.demo{color:red !important;color:green;}</style><div class="demo">www.jb51.net</div>
登录后复制


也就是说在在一个选择器中利用!important改变样式的优先级是没有用的,在不同选择器中又是可以的。

7关于ie8-9:请注意一些细小的差别:

background-color:red\0;IE8和IE9都支持;background-color:blue\9\0; 仅IE9支持;
登录后复制

background: red\9; /*所有的 ie*/:root .test{background: red\9;} /*ie9*/
登录后复制


8@cc_on 语句的用法

/*@cc_on @*//*@document.write("JScript version: " + @_jscript_version + ".");document.write("");@if (@_win32)document.write("Running on the 32-bit version of Windows.");@elif (@_win16)document.write("Running on the 16-bit version of Windows.");@elsedocument.write("Running on a different operating system.");@end@*/
登录后复制

 

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号