兼容ie6常见问题:10条有效的html和css代码

2016-02-20 00:26 10 1 收藏

下面图老师小编跟大家分享兼容ie6常见问题:10条有效的html和css代码,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)ie6目前依然是国内用户的主要浏览器,因此作为网页前端开发来说,无可避免必须兼容IE6浏览器,这里有十条使用有效的html和css代码修复可以兼容ie6常见的问题。

我们知道ie会在一段时间内仍然流行,但是我们仍然可以支持浏览器并且避免hacks和条件css吗?这里有十条使用有效的html和css代码修复可以兼容ie6常见的问题。

1、使用一个声明
你必须经常在html网页头部放置一个声明,推荐使用严格的标准。例如

或者xhtml使用

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

最后你需要是ie6进入兼容模式,这已经足够兼容的了。

2、使用position: relative
设置一个标签position: relative可以解决很多问题,特别是曾经有过看不见的经历或者奇怪布局的框架。明显的,你需要小心,绝对位置放置的子元素是否都参照找到新位置。

3、为浮动元素使用display:inline
浮动元素会有一个著名的ie6双边距margin bug。假如你设置了左边距5px但实际上得到了10px左边距。display:inline可以解决这个问题,尽管它不是必需的,但是css仍然有效。

4、设置元素启动hasLayout
大部分ie6(ie7)的渲染问题都可以通过起来元素的hasLayout属性来兼容。这是ie内置的设定,确定一个内容块相对其它内容块是有界限和位置的。当你需要设置一个行内元素例如一个连接变成块状元素或者是透明效果,设置hasLayout也是必须的。

5、修复重复字符的bug
复杂的布局会触发一个bug:浮动对象的最后字符会出现在已经清除浮动的元素后面。这里有几种解决的办法,部分是理想的,并且一些测试和出错是必须的。
a、确保浮动元素都使用:display:inline;
b、最后一个浮动元素使用margin-right:-3px;
c、在浮动对象最后一个元素后使用一个条件注释。例如这里输入注释![endif]
d、在容器内的最后使用一个div空标签(它也必须设置90%宽度甚至更小)

6、使用a标签完成可点击和hover原理
Ie6只支持a标签的css定义hover效果
你可以使用它去控制javascript启动的widgets,使得他们仍然保持键盘操作。这里有个二择一的问题,但是a标签是所有解决方案中最可靠的。

7、使用!important,或是高级选择符替代ie特定代码
在外置的css文件里,放弃凭借传统的hacks和条件判断,使用有效的css代码去针对ie6仍然是有可能的。例如:最小高度可以使用一下定义。
#element {
min-height: 20em;
height: auto !important; /* understood by all browsers */
height: 20em; /* IE6 incorrectly uses this value /*
}
Ie6不支持min-height并且错误的将20em重写为auto。不过,当内容大于设置的空间时,它会增加它的尺寸。
另外一个选择是使用高级选择符。例如
#element {
min-height: 20em;
height: 20em;
}
/* ignored by IE6 */
#element[id] {
height: auto;
}

8、避免百分比定义
百分比在ie下比较混乱。除非你非常小心每个父元素的尺寸,这样就大概可以最后避免了。你仍然可以对其他浏览器使用!important来使用百分值。例如:
body {
margin: 2% 0 !important;
margin: 20px 0; /* IE6 only */
}

9、早点和经常测试
在你的网站和应用程序完成之前,不要放弃ie6的测试。问题将会更加严重并且需要很长时间去修复。如果你的网站可以运行于firefox和ie6,它将差不多肯定可以在其它浏览器下运行。

10、重构你的代码
经常的,修复会比重新考虑布局问题更加花费时间。Html细微的修改和更加简单的css经常是最有效的。这意味着你要放弃完美的合法的代码,但是将会更少的问题出现,并且你知道怎样处理将要出现的情况。

来源:https://www.tulaoshi.com/n/20160220/1631834.html

延伸阅读
标签: Web开发
区别IE6与FF: background:orange;*background:blue; 区别IE6与IE7: background:green !important;background:blue; 区别IE7与FF: background:orange; *background:green; 区别FF,IE7,IE6: background:orange;*background:green !important;*background:blue; 注:IE都能识别*;标准浏览器(如FF)不能识别*; IE6能识别*,但不能识别 ...
标签: Web开发
IE6下默认的字体尺寸大致在 12 – 14px 之间,当你试图定义一个高度小于这个默认值的 div 的时候, IE 会固执的认为这个层的高度不应该小于字体的行高。所以即使你用 height:4px; 来定义了一个 div 的高度,实际在 IE 下显示的仍然是一个 12 px 左右高度的层。添加overflow: hidden解决问题。 div style=height: 4px; overflow: hidde...
标签: Web开发
在处理css的机制上,IE总是有很多让人吐血的举动,但对于他们现在的改进力度还是值得高兴的。 就拿对伪类:hover的支持来说,IE7+终于添加了对a以外其它标签的支持。对于这样的改进,当然是要拍手称快的,但在IE6下,:hover就连对a的支持都不是那么的尽如人意。下面就是我想简单说的一个关于:hover在IE6及更早浏览器下的问题。 很多...
标签: Web开发
微软在IE8提供三种解析页面的模式 IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定 IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在head中加入 meta http-equiv="X-UA-Compatible" content="IE=7" Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明 注意:不同模式间的...
标签: Web开发
本人专业是做UI的,写CSS已经有好几年了,目前刚刚在博客发布关于CSS的文章,欢迎有问题的朋友在有问必答论坛提问,我一定尽力解答。 1 针对firefox ie6 ie7的css样式 现在大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!找到一个针对IE7不错的hack方式就是使...

经验教程

653

收藏

9
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部