您现在的位置是:网站首页> 编程资料编程资料
CSS hacker使用小结(兼容IE6、7、8)史上最全的CSS hack方式一览(兼容多浏览器)
2021-09-04
867人已围观
简介 今天,结合自己的经验和理解,做了几个demo把IE6~IE8和其他标准浏览器的CSS hack做一个总结
什么是CSS hack
由于不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持、解析不一样,导致在不同浏览器的环境中呈现出不一致的页面展现效果。这时,我们为了获得统一的页面效果,就需要针对不同的浏览器或不同版本写特定的CSS样式,我们把这个针对不同的浏览器/不同版本写相应的CSS code的过程,叫做CSS hack!
CSS hack的原理
由于不同的浏览器和浏览器各版本对CSS的支持及解析结果不一样,以及CSS优先级对浏览器展现效果的影响,我们可以据此针对不同的浏览器情景来应用不同的CSS。
如果想系统的学习css hacker的相关资料,推荐查看这篇文章(https://www.jb51.net/css/493362.html)。
这行代码是永远以最新的IE版本模式来显示网页,使IE支持HTML5。
这行代码是360浏览器渲染页面需默认用极速内核
各浏览器CSS兼容问题汇总:https://www.jb51.net/css/9707.html
条件样式替代CSS Hacks方案:http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
建议:使用ietester软件测试IE6、7、8。
顾名思义,!important的优先级要高. 举例说明:
body
{
background-color:#FF0000 !important;
*background-color:#00FF00 !important;
*background-color:#0000FF;
background-color:#000000;
}
IE6选择最后一个,即: (因为IE6对important不感冒)
IE7选择第二个,即:background-color:#000000;(因为IE7开始对important感冒了,同时还死守着它对 * 感情的最后一版本,但important并未起到优先级的作用)
IE8和Firefox、Opera、Safari选择第一个,即:!important;(IE8完全感冒于important,同时丢弃了对*的感情)
另外再补充一个,下划线"_",
IE6支持下划线,IE7、IE8和Firefox、Opera、Safari均不支持下划线。
整理二:IE6,IE7,FireFox,Opera,Safari兼容CSS的解决方法及CSS差别
IE6,IE7,FireFox,Opera,Safari兼容CSS的解决方法及CSS差别
参考网址:http://shouce.jb51.net/csshack/
以下两种方法几乎能解决现今所有HACK:
1. !important
随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)
2. IE6/IE7对FireFox
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.
3.当网页在 IE 中有异常表现时,可以尝试激发 haslayout 来看看是不是问题所在。常用的方法是给某元素 css 设定 zoom:1。使用 zoom:1 是因为大多数情况下,它能在不影响现有环境的条件下激发元素的 haslayout。而一旦问题消失,那基本上就可以判断是haslayout 的原因。然后就可以通过设定相应的 css 属性来对这个问题进行修正了。建议首先要考虑的是设定元素的width/height 属性,其次再考虑其他属性。
对 IE6 及更早版本来说,常用的方法被称为霍莉破解(Holly hack),即设定这个元素的高度为 1%(height:1%;)。需要注意的是,当这个元素的 overflow 属性被设置为 visible 时,这个方法就失效了。或者使用 IE的条件注释。对 IE7 来说,最好的方法是设置元素的最小高度为 0 (min-height:0;)。
4.ie-css3.htc让IE6, 7, 8也支持CSS3圆角,阴影,文本阴影等效果。
附网址:https://www.jb51.net/css/63281.html
5.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;},注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:div{maring:30px;margin:28px;}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;
6.设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline。
7.min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个
放到 标签下,然后为 div指定一个类:
然后CSS这样设计:
selector{
min-width:600px;
_width:expressio n(document.body.clientWidth < 600?"600px":"auto");
}
或selector {
min-height:500px;
height:auto !important;
height:500px;
}
8.ie下元素消失,给该元素添加:position:relative;
9.IE7浏览器下,文字越多,按钮两侧padding留白就越大,解决办法是添加overflow:visible属性。
相关内容
- ie6 z-index不起作用的完美解决方法IE6 select z-index无效,遮挡div bug的解决方法div层调整z-index属性在IE中无效原因分析及解决方法z-index ie6下的解决方案 css设置z-index 失效的解决方法
- 元素绝对定位以后设置了高宽,a标签不能点击的原因及解决方法a标签下载链接的简单实现深入浅出meta标签 html meta标签的使用总结(推荐)HTML的meta标签常见用法集锦HTML的a标签href属性指定相对路径与绝对路径的用法讲解移动端html5 meta标签的神奇功效实例讲解HTML5的meta标签的一些应用 a标签有小手状和无小手状css的属性介绍
- 空心三角形的简单实现(必看篇)用CSS制作三角形和按钮的简单实例CSS仿网易首页的头部菜单栏按钮和三角形制作方法利用CSS伪元素创建带三角形的提示框的实现方法
- CSS水平居中总结(新手必看篇)浅谈css处理水平居中的问题Flexbox制作CSS布局实现水平垂直居中的简单实例关于css水平居中的小小探讨css水平居中的各种方法总结(推荐)浅析CSS实现水平垂直同时居中的5种思路CSS实现水平居中的4种思路简要概述css三种方法实现div在浏览器水平居中
- css关于position属性的用法详解(绝对定位和相对定位的混淆)CSS之定位布局(position,定位布局技巧)css定位position引发的层级关系问题详解详解css粘性定位position:sticky问题采坑CSS position属性和实例应用演示CSS的position定位和float浮动详解css position fixed 左右双定位的实现代码
- 老生常谈position定位——让人又爱又恨的属性css position 设置元素的定位方式详解CSS 定位之position全面了解总结CSS的position定位属性在使用的一些重点图解CSS中position属性的定位用法深究CSS定位position的常用技法理解CSS浮动float、定位position全面剖析CSS Position定位CSS实现模拟position的fixed页面定位效果
- 利用CSS3把图片变成灰色模式的实例代码CSS3常用的几种颜色渐变模式总结什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条CSS3 RGBA色彩模式使用实例讲解CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义使用CSS实现黑暗模式和高亮模式的切换功能
- 利用纯CSS实现头像旋转和发光的效果css3实例教程 一款纯css3实现的发光屏幕旋转特效CSS3实现圆形图片鼠标悬停图片旋转放大特效源码CSS3仿对啊网蓝色圆形大风车旋转特效源码关于css旋转动画效果的简单实现JS+CSS3实现鼠标可拖动的交互式立方体旋转特效源码纯css3实现的3D图片立方体旋转动画特效源码纯CSS3实现鼠标滑过圆形图片旋转翻盖动画特效源码纯CSS3实现的发光登录表单特效源码CSS3实现的按钮发光动画特效源码纯CSS3实现发光开关切换按钮效果源码
- 解决360双核浏览器兼容模式的页面显示问题浅谈原生页面兼容IE9问题的解决方案新版chrome浏览器设置允许跨域的实现css hack之\9和\0就可能对hack IE11\IE9\IE8无效css区分ie8/ie9/ie10/ie11 chrome firefox的代码解决CSS浏览器兼容性问题的4种方案常见的浏览器兼容性问题(小结)border-radius IE8兼容处理的方法浅谈遇到的几个浏览器兼容性问题base64图片在各种浏览器的兼容性处理 对常见的css属性进行浏览器兼容性总结(推荐)
- CSS3实现同时执行倾斜和旋转的动画效果纯CSS3实现的鼠标经过文字倾斜线性变换动画特效源码HTML5和CSS3炫酷图片运动模糊和倾斜特效源码jQuery+CSS3单页倾斜分割布局幻灯片特效源码HTML5+CSS3实现图片可倾斜摆放的动画相册效果源码基于CSS3实现的图片可倾斜四个角度倾斜特效源码css3实现超立体3D图片侧翻倾斜效果css3 给页面加个半圆形导航条主要利用旋转和倾斜样式css3教程之倾斜页面CSS3 倾斜的网页图片库实例教程纯CSS3制作图片倾斜45度封页角特效源码