整理低版本ie兼容问题的解决方案

CSS hack

  \9    所有的IE10及之前

  *     IE7以及IE7以下版本的

_     IE6以及IE6以下版本的

!important  提升样式优先级权重

1、ie6,7,8对H5标签兼容

页面中引入html5shiv.js,下载地址:https://github.com/aFarkas/html5shiv

2、IE6双边距

当元素浮动后,再设置同方向margin,会产生双边距

解决:增加

*display:inline;

  

3、IE6最小高度问题

  IE6下最小高度19px,想小于此高度,增加

*overflow:hidden;

  

4、li里元素都浮动 li 在IE6 7  下方会产生4px间隙问题

针对li添加

*vertical-align: top;

  

5、浮动元素之间注释,导致多复制一个文字问题

    两个浮动元素中间有注释或者内联元素并且和父级宽度相差不超过3px时,

      1)两个浮动元素中间避免出现内联元素或者注释
      2)与父级宽度相差3px或以上

6、IE6 7 父级元素的overflow:hidden 是包不住子级的relative

    针对ie6、7给父级元素添加相对定位

overflow: hidden;
*position: relative;

  

7、IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差

    避免父级宽高出现奇数

8、IE6下绝对定位元素和浮动元素并列绝对定位元素消失

    浮动元素和绝对定位元素是同级的话定位元素就会消失

      解决:不处于同级

9、IE6 下input的空隙

    给input元素添加float

10、display:inline-block

    IE6下使用

*display:inline;
*zoom:1;

  

11、margin兼容性问题   

    1)margin-top传递
    触发BFC、haslayout,父元素增加

overflow: hidden;
zoom:1;

    2)上下margin叠压

    尽量使用同一方向的margin,比如都设置top或者bottom

12、p 包含块元素嵌套规则

    不要嵌套

13、IE6下子元素超出父级宽高,会把父级的宽高撑开

    不要让子元素的宽高超过父级

14、第一块元素浮动,第二块元素加margin值等于第一块元素,在IE6下会有间隙问题; 

    1)不建议这么写
    2)用浮动解决

15、元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动

    浮动元素中存在块元素,给块元素增加float

16、IE6不支持png24 图片

    1)JS插件(问题:不能处理body之上png24)

下载地址:http://www.dillerdesign.com/experiment/DD_belatedPNG/#download

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/DD_belatedPNG_0.0.8a.js"></script>
		<script>
			DD_belatedPNG.fix("img, div");
		</script>
		<style>
			body{
				background-color: red;
			}
			div{
				width: 300px;
				height: 300px;
				background: url("img/png.png") no-repeat;
			}
		</style>
	</head>
	<body>
		<div></div>
		<img src="img/png.png"  />
	</body>
</html>

  

     2)原生滤镜

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/DD_belatedPNG_0.0.8a.js"></script>
		<script>
			DD_belatedPNG.fix("body");
		</script>
		<style>
			body{
				width: 500px;
				height: 500px;
				background:red url("img/png.png") no-repeat;
				_background-image:none;
				_filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="img/png.png", sizingMethod="crop");
			}
		</style>
	</head>
	<body>
	</body>
</html>

  

时间: 2024-10-12 21:47:37

整理低版本ie兼容问题的解决方案的相关文章

低版本系统兼容的ActionBar(二)ActionProvider+分离式ActionBar+分离式的ActionMode

       这篇文章主要讲的是在低版本兼容的ActionBar中实现自定义的ActionProvider,ShareActionProvider的使用方法,如何实现分离式ActionBar,外加在分离式ActionBar上的ActionMode的效果. 一.自定义ActionProvider 建立一个类,继承android.support.v4.view.ActionProvider,然后复写里面的方法即可.主要就是初始化视图和相应点击事件. 范例一: SettingsActionProvid

低版本系统兼容的ActionBar(三)自定义Item视图+进度条的实现+下拉导航+透明ActionBar

       一.自定义MenuItem的视图 custom_view.xml (就是一个单选按钮) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android

低版本系统兼容的ActionBar(四)添加Tab+添加自定义的Tab视图

在ActionBar中添加Tab是很有用的技巧.在support V7库的支持下,我们几乎可以用和之前一样的方式来添加Tab,对于Tab来说,我们可以和MenuItem一样,给他定义自己的视图.我这里定义了个进度条,主要是来说明这个问题.本系列的博文也将接近尾声了,后面就是个定义ActionBar样式和一个仿照微信的实例,顺便讲解下Fragment和ViewPager的用法. activity_main.xml(定义了一个Fragment) <RelativeLayout xmlns:andro

低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航

Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actionbar05; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import a

低版本系统兼容的ActionBar(五)设置ActionBar的全套样式,从未如此简单过

     设定ActionBar的样式,是我们必须掌握的技能,在之前我们可能都需要一行一行的写代码,然后在模拟器上测试效果,但是现在我们有个一个很棒的工具来设定样式.设定ActionBar样式的工作从未如此简单过! http://romannurik.github.io/AndroidAssetStudio/index.html 进入后我们就可以直接在可视化的界面中进行修改了,设定好后直接下载压缩包.复制到res目录下即可.最后要记得把Application或者Activity的主题修改为你做的

React+Webpack+ES6 兼容低版本浏览器(IE9)解决方案

虽然过了兼容IE6的噩梦时代,IE依旧阴魂不散,因为你可能还要兼容IE9.在ES6已经普及的今天,用ES6写react已经成了标配.但是babel编译的js语法,由于某些不规范的写法,可能在IE9下不能正确解释,很容易导致白屏.本文记录如下 起因 在准备提测的那天,顺便打开IE9看一眼(注意,这里是原生IE9 ,不是用IE11模拟的IE9),OMG! 排查后发现,原来是因为构造函数中使用了this.简写如下 class Child extends React.Component { ? cons

HTML data属性简介以及低版本浏览器兼容算法

实例 使用 data-* 属性来嵌入自定义数据: <ul> <li data-animal-type="bird">Owl</li> <li data-animal-type="fish">Salmon</li> <li data-animal-type="spider">Tarantula</li> </ul> 浏览器支持 IE Firefox Ch

对于 IE低版本不兼容问题的处理

坑爹的IE低版本浏览器总是需要我们去编写特殊的代码才可以,脑残的我之前总是编写一套CSS,让页面在Firefox.Chorme等牛逼闪闪的浏览器与IE这SB浏览器中的显示差不多,差不多,谁懂么,好好的网页改得真是让人心塞,不过现在我变得聪明了,那为何不写两套CSS,请不要鄙视小主好嘛 //<fieldset>标签里作为显示标题的<legend>标签在天杀的IE8以下版本中是不能完美显示的,我们可以给<legend>标签定义另外的ie.css以下面的方式嵌入 <!-

Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案

解决方式:安装 "babel-polyfill" 即可. 命令:npm install --save-dev babel-polyfill 在入口main.js文件引入:import 'babel-polyfill' 最后一步,在build文件夹下找到webpack.base.conf.js.修改入口方式: entry: {app: ["babel-polyfill", "./src/main.js"]} 最后,再依赖一个插件解决ES6/ES7高