【必备】史上最全的浏览器 CSS & JS Hack 手册
浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异。因此,浏览器兼容成为前端开发人员的必备技能。如果有一份浏览器 Hack 手册,那查询起来就方便多了。这篇文章就向大家分享 Browserhacks 帮我们从网络上收集的各个浏览器特定的 CSS & JavaScript Hack,记得推荐和分享啊!
IE 选择器 Hack
1 2 3 | /* IE 6 and below */ * html .selector {} .suckyie 6 .selector {} /* .suckyie6 can be any unused class */ |
1 2 | /* IE 7 and below */ .selector, {} |
1 2 3 4 | /* IE 7 */ *:first-child+html .selector {} .selector, x:-IE 7 {} *+html .selector {} |
/* Everything but IE 6 */ html > body .selector {} |
1 2 3 | /* Everything but IE 6/7 */ html > /**/ body .selector {} head ~ /* */ body .selector {} |
1 2 3 4 5 | /* Everything but IE 6/7/8 */ :root *> .selector {} body:last-child .selector {} body:nth-of-type( 1 ) .selector {} body:first-of-type .selector {} |
IE 属性/值 Hack
1 2 3 | /* IE 6 */ .selector { _color : blue ; } .selector { - color : blue ; } |
1 2 3 | /* IE 6/7 - acts as an !important */ .selector { color : blue !ie; } /* string after ! can be anything */ |
1 2 3 4 5 6 7 | /* IE 6/7 - any combination of these characters: ! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */ .selector { ! color : blue ; } .selector { $ color : blue ; } .selector { & color : blue ; } .selector { * color : blue ; } /* ... */ |
1 2 3 | /* IE 8/9 */ .selector { color : blue \ 0 /; } /* must go at the END of all rules */ |
1 2 | /* IE 9/10 */ .selector:nth-of-type( 1 n) { color : blue \ 9 ; } |
1 2 3 | /* IE 6/7/8/9/10 */ .selector { color : blue \ 9 ; } .selector { color /*\**/ : blue \ 9 ; } |
1 2 | /* Everything but IE 6 */ .selector { color /**/ : blue ; } |
IE Media Query Hack
1 2 | /* IE 6/7 */ @media screen \ 9 {} |
1 2 | /* IE 8 */ @media \ 0 screen {} |
1 2 | /* IE 9/10, Firefox 3.5+, Opera */ @media screen and (min-resolution: + 72 dpi) {} |
1 2 | /* IE 10+ */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none ) {} |
1 2 | /* IE 6/7/8 */ @media \ 0 screen\, screen \ 9 {} |
1 2 | /* IE 8/9/10 & Opera */ @media screen \ 0 {} |
1 2 | /* IE 9/10 */ @media screen and ( min-width : 0 \ 0 ) {} |
1 2 | /* Everything but IE 6/7/8 */ @media screen and ( min-width : 400px ) {} |
IE JavaScript Hack
1 2 3 | /* IE 6 */ (checkIE = document.createElement( "b" )).innerHTML = "<!--[if IE 6]><i></i><![endif]-->" ; var isIE = checkIE.getElementsByTagName( "i" ).length == 1; |
1 2 3 4 | /* IE 7 */ (checkIE = document.createElement( "b" )).innerHTML = "<!--[if IE 7]><i></i><![endif]-->" ; var isIE = checkIE.getElementsByTagName( "i" ).length == 1; navigator.appVersion.indexOf( "MSIE 7." )!=-1 |
1 2 | /* IE <= 8 */ var isIE = '\v' == 'v' ; |
1 2 3 | /* IE 8 */ (checkIE = document.createElement( "b" )).innerHTML = "<!--[if IE 8]><i></i><![endif]-->" ; var isIE = checkIE.getElementsByTagName( "i" ).length == 1; |
1 2 3 | /* IE 9 */ (checkIE = document.createElement( "b" )).innerHTML = "<!--[if IE 9]><i></i><![endif]-->" ; var isIE = checkIE.getElementsByTagName( "i" ).length == 1; |
1 2 | /* IE 10 */ var isIE = eval( "/*@cc_on!@*/false" ) && document.documentMode === 10; |
1 2 | /* IE 10 */ var isIE = document.body.style.msTouchAction != undefined; |
Firefox 浏览器
选择器 Hack
1 2 | /* Firefox 1.5 */ body:empty .selector {} |
1 2 | /* Firefox 2+ */ .selector, x:-moz-any-link {} |
1 2 | /* Firefox 3+ */ .selector, x:-moz-any-link; x: default {} |
1 2 | /* Firefox 3.5+ */ body:not(:-moz-handler-blocked) .selector {} |
媒体查询 Hack
1 2 | /* Firefox 3.5+, IE 9/10, Opera */ @media screen and (min-resolution: + 72 dpi) {} |
1 2 | /* Firefox 3.6+ */ @media screen and (-moz-images-in-menus: 0 ) {} |
1 2 | /* Firefox 4+ */ @media screen and (min--moz-device-pixel-ratio: 0 ) {} |
JavaScript Hack
1 2 | /* Firefox */ var isFF = !!navigator.userAgent.match(/firefox/i); |
1 2 | /* Firefox 2 - 13 */ var isFF = Boolean(window.globalStorage); |
1 2 | /* Firefox 2/3 */ var isFF = /a/[-1]== 'a' ; |
1 2 | /* Firefox 3 */ var isFF = ( function x(){})[-5]== 'x' ; |
Chrome 浏览器
选择器 Hack
1 2 | /* Chrome 24- and Safari 5- */ ::made-up-pseudo-element, .selector {} |
媒体查询 Hack
1 2 | /* Chrome, Safari 3+ */ @media screen and (-webkit-min-device-pixel-ratio: 0 ) {} |
JavaScript Hack
1 2 | /* Chrome */ var isChrome = Boolean(window.chrome); |
Safari 浏览器
选择器 Hack
1 2 3 | /* Safari 2/3 */ html[xmlns*= "" ] body:last-child .selector {} html[xmlns*= "" ]:root .selector {} |
1 2 | /* Safari 2/3.1, Opera 9.25 */ *|html[xmlns*= "" ] .selector {} |
1 2 | /* Safari 5- and Chrome 24- */ ::made-up-pseudo-element, .selector {} |
媒体查询 Hack
1 2 | /* Safari 3+, Chrome */ @media screen and (-webkit-min-device-pixel-ratio: 0 ) {} |
JavaScript Hack
1 2 | /* Safari */ var isSafari = /a/.__proto__== '//' ; |
Opera 浏览器
选择器 Hack
1 2 | /* Opera 9.25, Safari 2/3.1 */ *|html[xmlns*= "" ] .selector {} |
1 2 | /* Opera 9.27 and below, Safari 2 */ html:first-child .selector {} |
1 2 | /* Opera 9.5+ */ noindex:-o-prefocus, .selector {} |
媒体查询 Hack
1 2 | /* Opera 7 */ @media all and ( min-width : 0px ){} |
1 2 | /* Opera 12- */ @media all and (-webkit-min-device-pixel-ratio: 10000 ), not all and (-webkit-min-device-pixel-ratio: 0 ) {} |
1 2 | /* Opera, Firefox 3.5+, IE 9/10 */ @media screen and (min-resolution: + 72 dpi) {} |
1 2 | /* Opera, IE 8/9/10 */ @media screen {} |
JavaScript Hack
1 2 | /* Opera 9.64- */ var isOpera = /^ function \(/.test([].sort); |
1 2 | /* Opera 12- */ var isOpera = Boolean(window.opera); |
如果您觉得这些文章对您有用,记得轻轻点击一下右下角的【推荐】哦:)
您可能感兴趣的相关文章
作者:山边小溪
主站:yyyweb.com 记住啦:)
欢迎任何形式的转载,但请务必注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2011-03-11 分享45个海量免费电子书下载网站
2009-03-11 padding+div 在ie7、ie6以及firefox中的兼容问题