1、ie兼容css3 border-radius、box-shadow、text-shadow的方法

2、ie兼容性问题及解决方法

3、css Hack

一、ie兼容border-radius、box-shadow、text-shadow

1、下载ie-css3.htc

2、css

box {
-moz-border-radius: 15px; /* Firefox */
-webkit-border-radius: 15px; /* Safari 和 Chrome */
border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ -moz-box-shadow: 10px 10px 20px #000; /* Firefox */
-webkit-box-shadow: 10px 10px 20px #000; /* Safari 和 Chrome */
box-shadow: 10px 10px 20px #000; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ behavior: url(ie-css3.htc); /* 通知IE浏览器调用脚本作用于'box'类 */
}

二、问题

  1、只能同时4角圆角,不能单独设置;

  2、div上可以正常使用,测试text文本框,会出现异常;

  3、CSS文件要和页面在同一目录下,否则无效

  4、当前元素一定要有定位属性,像是position:relative或是position:absolute属性。

  5、z-index值一定要比周围元素的要高,否则……只能说抱歉了~~

三、支持的样式及说明

参见表:

        样式                          生效                                         无效
border-radius 为元素四个角设置圆角属性元素边框 只设置一个圆角
box-shadow 模糊大小参数   偏移值 不支持除了黑色(#fff)以外的其它颜色
text-shadow 模糊大小参数   偏移值   颜色值 IE下的表现与Firefox/Safari/Chrome有一点点的差异

二 、ie兼容性问题及解决方法

1、在IE6下,块元素有浮动和横向margin值,横向的margin会变成两倍。和margin方向有关系。

     解决办法:将块元素转成内嵌元素。display:inline; 
     2、IE6的子元素可以撑开父元素:
     解决办法:进行精确的计算父子级关系。当然可以通过overflow:hidden将超出的子元素隐藏掉。
     3、若元素浮动,则一行全浮动。否则会出现边距问题(主要是IE6)甚至奇葩问题,其他浏览器好像也有
     4、如果给input加背景,那么在输入内容超过输入框长度时,背景会移动:
     解决办法:把input放在div里面,让input的背景透明,并且把背景头给div。
     5、IE6、7下几px的间隙问题:

     li本身没有浮动,但是内容的浮动让li多出来几px的间隙。
     解决办法:
     1、给li加浮动,
     2、给li加vertical-align:top/middle/bottom  也可以用来清除图片下的间隙
     图片也可以display:block;解决,但是多图片同行就不行了
     6、IE6最小高度问题:

     元素高度小于19px的会被当做19px处理。
     解决办法:
     1、加font-size:0;解决办法有局限
     2、overflow:hidden;

7、IE6下父级元素包不住子级的相对定位

     解决办法:给父级元素定位
     8、IE6下定位元素的父级宽高都为奇数那么在 IE6 下定位元素的 right 和 bottom 都有1px的偏差。

     没法解决。
     9、在IE6下,解决margin传递,触发haslayout,zoom:1;

     其他浏览器可以用overflow:hidden;
     这其实不算IE的bug,浏览器都有这个问题,也可以通过添加上下padding或者border来解决。
     10、IE6下,父元素有边框的时候,子元素的margin消失了:
     解决办法同上。
     11、IE6:当一行子元素宽度之和与父级相差大于3像素或者有不满行状态的时候,最后一行的margin-bottom就会消失。

     目前没办法解决。
     12、IE6:当li间隙问题和IE6最小间隙同时存在时(li本身没浮动,但是其中内容有浮动导致其下面有间隙:给li加vertical-align属性)

     解决办法:overflow:hidden,float:xx;
     13、IE6文字溢出bug:

     子元素宽度和父元素宽度相差小于3px的时候,两个浮动元素中间有注释或者内嵌元素。
     解决办法:把内嵌去掉或者调整父级大小。
     14、IE6 当绝对定位和浮动元素并列的时候,绝对定位元素会消失。

     解决办法:自然是去掉并列关系。给定位包个div
     15、IE6下,当thead、tbody、tfoot和下面的tr同时加样式,tr的样式会代替父元素的样式。

     没有解决办法。
     16、IE6、7下输入类型的表单控件,默认上下有1px的边距。

     解决办法:让控件脱离文档流。
     17、输入类型表单控件border:none;无效
     解决办法:border:0,或者给input重置背景。
三 、css Hack
    hack是一种解决兼容性很好的办法,但是现在开发不怎么赞成使用,注意尽量少使用吧!
    1、条件注释法(一般使用在IE6-IE9):

   只在IE下生效:

<!--[if IE]>
这段文字只在IE浏览器显示
<![endif]-->
   只在IE6下生效:

<!--[if IE 6]>
这段文字只在IE6浏览器显示
<![endif]-->
   只在IE8以下生效:

<!--[if lt IE 8]
这段文字只在IE8浏览器以下显示
<![endif]-->
   只在IE6以上版本生效:

<!--[if gte IE 6]>
这段文字只在IE6以上(包括)版本IE浏览器显示
<![endif]-->
   只在IE8上不生效:

<!--[if ! IE 8]>
这段文字在非IE8浏览器显示
<![endif]-->
   非IE浏览器生效:

<!--[if !IE]>
这段文字只在非IE浏览器显示
<![endif]-->

2、属性前缀法:

标准模式下:

#selector{
  -color: red;    /* 减号和下划线是IE6专有的hack */
  color:blue\9;   /* \9 IE6-IE10都生效 */
  color: pink\0;    /* \0 IE8-IE11生效 */
  color: green\9\0;  /* \9\0 IE9和IE10生效 */
  *color: yellow;   /* [.*+<>] IE6-IE7生效 */
}

3、选择器前缀法:

*+html selector{color:blue;}    /* *+html前缀只支持IE7 */

IE兼容性的更多相关文章

  1. 前端css兼容性与易混淆的点

    一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...

  2. SQL Server2008R2 在windows8上安装,出现“兼容性”和 “执行未经授权的操作”的错误!

    本人是windows8.1的操作系统,亲测安装成功 解决方法如下: 1.卸载干净sql Server2008r2,包括注册表内容,删除c盘下的安装路径! 2.关闭防火墙(这步很重要) 3.断开网络连接 ...

  3. [转载]强制不使用“兼容性视图”的HTML代码

    在IE8浏览器以后版本,都有一个"兼容性视图",让不少新技术无法使用.那么如何禁止浏览器自动选择"兼容性视图",强制IE以最高级别的可用模式显示内容呢?下面就介 ...

  4. 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  5. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  6. position:sticky的兼容性尝试

    开篇 笔者刚刚结束淘宝的工作,现在加入了一家有青春活力的垂直电商公司,正对着阿里巴巴的西溪园区,最近一直在熟悉新的工作环境和规范,因此博客有好些时间没有更新了,在此抱歉! 在忙碌完公司的发布系统之后, ...

  7. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  8. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

  9. Atitit.兼具兼容性和扩展性的配置方案attilax总结

    Atitit.兼具兼容性和扩展性的配置方案attilax总结 文件配置法1 Jdbc多数据源文件配置发1 Bat文件配置法1 改进的文件配置法(采用类似i18n技术) 推荐1 使用自动化pc_id的方 ...

  10. Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结

    Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结 1. 什么是可扩展的应用程序?1 2. 松耦合(ioc)2 3. 接口的思考 2 4. 单一用途&模块化,小粒度化2 ...

随机推荐

  1. MySQL增加列,修改列名、列属性,删除列

    mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修改表名 alter table test add  column name v ...

  2. Java 6.15习题

    1.定义一个ClassName接口,接口中只有一个抽象方法getClassName();设计一个类Company,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类 ...

  3. eclipse里怎么用命令行输入args

    eclipse中给java应用传args参数的方法如下:1.先写好Java代码,比如文件名为IntArrqy.java:2.在工具栏或菜单上点run as下边有个Run Configuration:3 ...

  4. 3. 量化交易策略 - https://github.com/3123958139/blog-3123958139/README.md

    3. 量化交易策略 * 输入数据 - 只取最原始可靠的,如 * date * open * high * low * close * volume * 输出数据 - 根据数理统计取权重,把 o, h, ...

  5. SSAO相关资料

    http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/a-simple-and-pract ...

  6. clipboard复制剪贴板功能,以及用requirejs时报错---Uncaught ReferenceError: Clipboard is not defined

    zeroclipboard是走的flash插件,手机浏览器是不支持的,所以不得不舍弃之,用clipboard,clipboard不需要flash就可以完成复制剪切等功能,而且可以兼容pc,移动端,下面 ...

  7. PasswordHasher

    namespace Microsoft.AspNet.Identity { public class PasswordHasher : IPasswordHasher { public virtual ...

  8. 登录验证码编写(jsp+servlet+dao)

    一.什么是验证码及它的作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答. 可以防止恶意破解密码.刷 ...

  9. zabbix进程构成

    了解完zabbix特性之后,本该进入zabbix安装教程,但是我觉得在安装之前我们很有必要了解一下zabbix进程组成结构,默认情况下zabbix包含5个程序:zabbix_agentd.zabbix ...

  10. (转载)ecshop制作成手机网站的方法

    ecshop用手机访问的时候,会自动跳转到  /mobile 目录下,ecshop自带的wap模板是用wml制作的,如果按这种情况,又需要制作一套模板,太麻烦,现在都是智能手机时代,wml模板已经不能 ...