【必备】史上最全的浏览器 CSS & JS Hack 手册

简介:   浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异。因此,浏览器兼容成为前端开发人员的必备技能。如果有一份浏览器 Hack 手册,那查询起来就方便多了。这篇文章就向大家分享 Browserhacks 帮我们从网络上收集的各个浏览器特定的 CSS & JavaS...

  浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异。因此,浏览器兼容成为前端开发人员的必备技能。如果有一份浏览器 Hack 手册,那查询起来就方便多了。这篇文章就向大家分享 Browserhacks 帮我们从网络上收集的各个浏览器特定的 CSS & JavaScript Hack,记得推荐和分享啊!

IE 选择器 Hack

/* IE 6 and below */
* html .selector  {} 
.suckyie6.selector {} /* .suckyie6 can be any unused class */
/* IE 7 and below */
.selector, {}
/* IE 7 */
*:first-child+html .selector {} 
.selector, x:-IE7 {} 
*+html .selector {} 
/* Everything but IE 6 */
html > body .selector {}
/* Everything but IE 6/7 */
html > /**/ body .selector {}
head ~ /* */ body .selector {}
/* 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

/* IE 6 */
.selector { _color: blue; } 
.selector { -color: blue; }
/* IE 6/7 - acts as an !important */
.selector { color: blue !ie; } 
/* string after ! can be anything */
/* IE 6/7 - any combination of these characters: 
 ! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */
.selector { !color: blue; } 
.selector { $color: blue; } 
.selector { &color: blue; } 
.selector { *color: blue; } 
/* ... */
/* IE 8/9 */
.selector { color: blue\0/; } 
/* must go at the END of all rules */
/* IE 9/10 */
.selector:nth-of-type(1n) { color: blue\9; }
/* IE 6/7/8/9/10 */
.selector { color: blue\9; } 
.selector { color/*\**/: blue\9; }
/* Everything but IE 6 */
.selector { color/**/: blue; }

IE Media Query Hack

/* IE 6/7 */
@media screen\9 {}
/* IE 8 */
@media \0screen {}
/* IE 9/10, Firefox 3.5+, Opera */
@media screen and (min-resolution: +72dpi) {}
/* IE 10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {}
/* IE 6/7/8 */
@media \0screen\,screen\9 {}
/* IE 8/9/10 & Opera */
@media screen\0 {}
/* IE 9/10 */
@media screen and (min-width:0\0) {}
/* Everything but IE 6/7/8 */
@media screen and (min-width: 400px) {}

IE JavaScript Hack

/* IE 6 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 6]><i></i><![endif]-->"; 
var isIE = checkIE.getElementsByTagName("i").length == 1;
/* 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
/* IE <= 8 */
var isIE = '\v'=='v';
/* IE 8 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 8]><i></i><![endif]-->"; 
var isIE = checkIE.getElementsByTagName("i").length == 1;
/* IE 9 */
(checkIE = document.createElement("b")).innerHTML = "<!--[if IE 9]><i></i><![endif]-->"; 
var isIE = checkIE.getElementsByTagName("i").length == 1;
/* IE 10 */
var isIE = eval("/*@cc_on!@*/false") && document.documentMode === 10;
/* IE 10 */
var isIE = document.body.style.msTouchAction != undefined;

Firefox 浏览器

  选择器 Hack

/* Firefox 1.5 */
body:empty .selector {}
/* Firefox 2+ */
.selector, x:-moz-any-link {}
/* Firefox 3+ */
.selector, x:-moz-any-link; x:default {}
/* Firefox 3.5+ */
body:not(:-moz-handler-blocked) .selector {}

 

  媒体查询 Hack

/* Firefox 3.5+, IE 9/10, Opera */
@media screen and (min-resolution: +72dpi) {}
/* Firefox 3.6+ */
@media screen and (-moz-images-in-menus:0) {}
/* Firefox 4+ */
@media screen and (min--moz-device-pixel-ratio:0) {}

 

  JavaScript Hack

/* Firefox */
var isFF = !!navigator.userAgent.match(/firefox/i);
/* Firefox 2 - 13 */
var isFF = Boolean(window.globalStorage);
/* Firefox 2/3 */
var isFF = /a/[-1]=='a';
/* Firefox 3 */
var isFF = (function x(){})[-5]=='x';

Chrome 浏览器

  选择器 Hack

/* Chrome 24- and Safari 5- */
::made-up-pseudo-element, .selector {}

  

  媒体查询 Hack

/* Chrome, Safari 3+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {}

  

  JavaScript Hack

/* Chrome */
var isChrome = Boolean(window.chrome);

  

Safari 浏览器

  选择器 Hack

/* Safari 2/3 */
html[xmlns*=""] body:last-child .selector {} 
html[xmlns*=""]:root .selector  {}
/* Safari 2/3.1, Opera 9.25 */
*|html[xmlns*=""] .selector {}
/* Safari 5- and Chrome 24- */
::made-up-pseudo-element, .selector {}

  

  媒体查询 Hack

/* Safari 3+, Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0) {}

  

  JavaScript Hack

/* Safari */
var isSafari = /a/.__proto__=='//';

  

Opera 浏览器

  选择器 Hack

/* Opera 9.25, Safari 2/3.1 */
*|html[xmlns*=""] .selector {}
/* Opera 9.27 and below, Safari 2 */
html:first-child .selector {}
/* Opera 9.5+ */
noindex:-o-prefocus, .selector {}

  

  媒体查询 Hack

/* Opera 7 */
@media all and (min-width: 0px){}
/* Opera 12- */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {}
/* Opera, Firefox 3.5+, IE 9/10 */
@media screen and (min-resolution: +72dpi) {}
/* Opera, IE 8/9/10 */
@media screen {}

  

  JavaScript Hack

/* Opera 9.64- */
var isOpera = /^function \(/.test([].sort);
/* Opera 12- */
var isOpera = Boolean(window.opera);

  

 

在线查询          在线测试

 

如果您觉得这些文章对您有用,记得轻轻点击一下右下角的推荐哦:)

 

您可能感兴趣的相关文章

 

本文链接:Browserhacks – 史上最全 CSS & JS Hack 手册

编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

作者:山边小溪
主站:yyyweb.com 记住啦:)
欢迎任何形式的转载,但请务必注明出处。

相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
23天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
13天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
59 1
|
18天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
33 3
|
20天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
29天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
80 6
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
488 1
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
126 0
|
3月前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
3月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
50 0
JS配合CSS3实现动画和拖动小星星小Demo
下一篇
无影云桌面