最多见IE的Bug及其fix修补方式

日期:2021-03-13 类型:科技新闻 

关键词:小游戏源代码,互动小游戏微信,自制小游戏,html5游戏,制作游戏大概多少钱

1. 垂直居中合理布局

建立1个CSS界定把1个元素放到正中间的部位,将会是每个Web开发设计人员都会做的事儿。最简易的做法是为你的元素提升1个margin: auto; ,但是 IE 6.0 会出現许多怪异的个人行为。让大家看来1个事例。

#container{

border: solid 1px #000;
background: #777;
width: 400px;
height: 160px;
margin: 30px 0 0 30px;

}

#element{

background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 100px;
margin: 30px auto;
}

下面是大家所期待的輸出:

但IE却给大家这样的輸出:

这应当是IE 6对margin的 auto 并沒有正确的设定。但好运的是,这是很非常容易被调整的。

处理方式

最简易的方式是在父元件中应用 text-align: center 特性,而在元件中应用 text-align: left



#container{
border: solid 1px #000;
background: #777;
width: 400px;

height: 160px;
margin: 30px 0 0 30px;
text-align: center;
}

#element{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 100px;
margin: 30px 0;
text-align: left;
}

2. 楼梯式的实际效果

基本上全部的Web开发设计者都会应用list来建立导航栏条。下面是你将会会用到的编码:

<ul>

<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>

ul {

list-style: none;
}
ul li a {

display: block;
width: 130px;
height: 30px;
text-align: center;

color: #fff;
float: left;
background: #95CFEF;
border: solid 1px #36F;
margin: 30px 5px;
}

1个合乎规范的访问器会是下面这样:

但IE确是这样的:

下面是两个处理方式

处理方式1

设定li元件的float特性。

ul li {

float: left;
}

处理方式2

设定 display: inline 特性。

ul li {

display: inline
}

3. float元件的两倍空白

请看下面的编码:

#element{

background: #95CFEF;
width: 300px;
height: 100px;
float: left;

margin: 30px 0 0 30px;

border: solid 1px #36F;
}

期待的結果是:

IE的結果是:

处理计划方案

和上面那个BUG的处理计划方案1样,设定 display: inline 特性能够处理难题。

#element{

background: #95CFEF;
width: 300px;
height: 100px;
float: left;
margin: 30px 0 0 30px;
border: solid 1px #36F;

display: inline;
}

4. 没法设定微型高宽比

大家发如今IE中应用 height: XXpx 这样的特性没法设定较为小的高宽比。下面是个事例(留意高宽比是2px):

#element{

background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
}

期待結果: 2px的元件加1px的边框.

IE的結果:

处理计划方案1

这个BUG的造成缘故很简易,IE不容许元件的高宽比小于字体样式的高宽比,因此,下面的fix是设定上字体样式尺寸。

#element{

background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
font-size: 0;
}

处理计划方案2

可是最好的处理方式是应用 overflow: hidden

#element{

background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 2px;
margin: 30px 0;
overflow: hidden
}

5. 跨出界限

这个BUG是很不好看的。当父元件中应用了 overflowauto 特性,而且在其里放入有关元件。你会来看里边的元件会跨出来。下面是1个示例:

<div
id="element"><div id="anotherelement"></div></div>


#element{
background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 150px;
margin: 30px 0;
overflow: auto;
}

#anotherelement{

background: #555;
width: 150px;
height: 175px;
position: relative;
margin: 30px;
}

 

期待的結果:

IE的結果:

处理方式

设定 position: relative;特性

#element{

background: #95CFEF;
border: solid 1px #36F;
width: 300px;
height: 150px;
margin: 30px 0;
overflow: auto;
position: relative;
}

6. Fixing the Broken Box Model

Internet Explorer歪曲了“盒子模子”将会是最不能谅解的事儿了。IE 6 这个半规范的访问器逃避了这个事儿,但这个难题還是会由于IE运作在“奇异方式”下出現。

两个Div元件。1个是有fix的,1个是沒有的。而她们不一样的高和宽再加padding的总合确是不1样的。下图的上方是被调整的,正下方则沒有。

处理方式

我坚信这个事儿即不必须解释也不必须演试,这应当是大多数数人都搞清楚的。下面是1个很非常奇异的处理计划方案

#element{

width: 400px;
height: 150px;
padding: 50px;
}

上面的界定也便是说:

#element {

width: 400px;
height: 150px;
height: 250px;
width: 500px
}

是的,你要原先的长和宽上再加了padding。但这个fix只会功效于IE了的“奇异方式”,因此你不必须担忧在IE6的一切正常方式下会有难题。

7. 设定min-height和min-width

IE忽视了min-height。

处理方式1

这个fix由 Dustin Diaz出示。其运用了 !important 下面是编码片断:

#element {

min-height:150px;
height:auto !important;
height:150px;
}

处理方式2

#element {

min-height: 150px;
height: 150px;
}

html>body #element {

height: auto;
}

8. Float 合理布局不正确个人行为 Misbehaving

应用无table的合理布局最关键的便是应用CSS的float元件。在许多状况下,IE6解决起来仿佛在探求环节,一些情况下,你会发现许多怪异的个人行为。例如在这其中有1些文字的情况下。

看来1下下面这个示例:
<div id="container">
<div id="element">http://net.tutsplus.com/%3C/div>
<div id="anotherelement"></div>
</div>

#element, #anotherelement{

background: #95CFEF;
border: solid 1px #36F;
width: 100px;
height: 150px;
margin: 30px;
padding: 10px;
float: left;
}
#container{
background: #C2DFEF;
border: solid 1px #36F;
width: 365px;
margin: 30px;
padding: 5px;
overflow: auto;
}

期待結果:

IE的結果:

你能够看到在其中的不一样了

处理方式

要处理这个难题沒有甚么好的方式。仅有1个方式,那便是应用 overflow: hidden

#element{

background: #C2DFEF;
border: solid 1px #36F;
width: 365px;
margin: 30px;
padding: 5px;
overflow: hidden;
}

9. 在list新项目门的空行

先看下面的事例
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>

</ul>
ul {
margin:0;
padding:0;
list-style:none;
}

li a {

background: #95CFEF;
display: block;
}

期待結果:

IE的結果:

Fortunately, there are a plethora of fixes you could try.

处理方式1

界定height来处理

li a {

background: #95CFEF;
display: block;

height: 200px;
}

处理方式2
li a {
background: #95CFEF;
float: left;
clear: left;
}

处理方式3

li 再加display: inline
li {
display: inline;

}

结果

调页面是1件很难的事,调1个CSS的HTML页面是1件更难的事,在IE下调1个CSS的HTML页面是难上加难的事。

上一篇:IE7或IE8全屏处理计划方案 返回下一篇:没有了