【it修真院小课堂第114期】常用的hack技巧

1.背景介绍

由于各浏览器对页面的解析不同,会导致页面在不同浏览器中显示的样式不一致,

为了保持页面的统一,经常需要对浏览器进行兼容性问题的调试。

2.知识剖析

CSS Hack的概念

面对浏览器诸多的兼容性问题,经常需要通过修改CSS样式来调试,其中用的最多的就是CSS Hack。所谓CSS Hack就是针对不同的浏览器书写不同的CSS样式,通过使用某个浏览器单独识别的样式代码,控制该浏览器的显示效果

3.常见问题

3.1 浏览器默认边距不同

由于不同浏览器的很多标签的默认间距是有差别的,所以样式重置就显得尤为重要,否则网页很容易在不同浏览器上出现较大差异甚至是不能使用快速解决方法: 直接使用通配符来将自带的margin和padding初始值设为

0 ,*{margin:0;padding:0;}

3.2 cursor

cursor:hand   VS   cursor:pointer

firefox不支持hand,但ie支持

快速解决方法:   统一使用pointer

3.3 opacity

一般主流浏览器用 opacity:0.6,但是IE不识别这个属性

快速解决方法: ie的透明性需要用filter:Alpha(Opacity=60),

而且,还需要设置一个宽度或者给子元素定义position:relative才会生效

3.4 width和padding

在IE7和FF中width宽度不包括padding,在IE6中包括padding.

解决方法: 在此基础上进行针对性设置

3.5 margin加倍问题

设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug

快速解决方法: 在这个div里面加上display:inline

3.6 图片间隙

IE6下图片下有空隙产生

快速解决方法: 解决这个BUG的技巧有很多,可以是改变html的排版, 或者设置img为display:block或者设置vertical-align属性为vertical-align:top/bottom/middle/text-bottom都可以解决.

上面问题中给出的快速解决方法不具备普遍性,使用了可能会导致其他问题,有没有更加普遍性的方法呢?

4.解决方案

4.1 使用CSS选择器Hack

CSS选择器Hack是指通过在CSS选择器的前面,加上一些只有特定浏览器才能识别的Hack前缀,来控制不同的CSS样式

IE6及IE6以下版本识别的选择器Hack

书写CSS样式时,如果希望此样式只对IE6及IE6以下版本的浏览器生效,可以使用IE6及以下版本的选择器Hack,其基本语法如下:

* html 选择器{样式代码}

IE7版本识别的选择器Hack

书写CSS样式时,如果希望此样式只对IE7版本的浏览器生效,可以使用IE7版本的选择器Hack,其基本语法如下:

*+html 选择器{样式代码}

4.2 使用CSS属性Hack

其他浏览器的识别符

Firefox: -moz-

Safari: -webkit-

Opera: -o-

IE: -ms-

5.方法比较

除了上面列举的例子,浏览器兼容问题还有很多很多,不同的情况适合使用不同的方法,对于一些具体问题的快速解决办法,适合于代码量较小的情况。而对于代码量比较大,那么如果依旧使用改变某个属性值来解决兼容性问题,则很容易牵一发而动全身,影响周边元素的属性设置,或者改好了这个浏览器的问题,又引起其他浏览器的问题,这种情况下就比较适合使用Hack方法

6.拓展思考

Hack技巧有它的局限性,那么除了Hack技巧还有哪些方法来解决浏览器兼容问题?

遇到js兼容问题该如何解决?

引用js兼容文件,强制浏览器按照某种模式来解析!

使IE5,IE6兼容到IE7模式

使IE5,IE6,IE7兼容到IE8模式

7.参考文献

前端网

脚本之家

C博客

8.更多讨论


PPT链接:https://ptteng.github.io/PPT/PPT/css-15-hack.html#/

视频链接:https://v.qq.com/x/page/f0505rprabs.html


【it修真院-武汉第175期】常见的Hack技巧_腾讯视频


技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !

www.jnshu.com/login/1/95798135

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,722评论 1 92
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,219评论 0 8
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,136评论 0 1
  • 一、如何调试 IE 浏览器? 在IE7以上的版本中可以通过按快捷键F12调出开发人员调试框,如下图IE7以上调试工...
    dengpan阅读 541评论 0 2
  • 1、什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号...
    才気莮孒阅读 342评论 0 1