网页制作常见的面试题(怎样兼容IE6/IE7/火狐浏览器)
1、IE6双边距问题?
在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG
例如:
<style type="text/css">
body {margin:0}
div { float:left; margin-left:10px; width:300px; height:300px; border:1px solid red; }
</style>
因为加上浮动后就会多出一倍的边距,浮动后本来外边距10px,但IE6会解析成20px,只需要在div的样式里加上display:inline;就可以解决以上问题。
2、为什么中火狐浏览器下文本无法撑开容器的高度?
标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉height设置min-height:200px; 这里为了照顾不认识min-height的 IE6 可以这样定义:
3、如何定义1px左右高度的容器?
IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line- height:1px
4、为什么web标准中无法设置IE浏览器滚动条颜色了?
原来样式设置:
body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee; scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; }
</style>
解决办法是将body换成html
5、怎样使一个div层居中于浏览器中?
div {
position:absolute;
top:50%;
left:50%;
margin:-100px 0 0 -100px;
width:200px;
height:200px;
border:1px solid red;
}
</style>
这里使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二
假定有如下情况:
<div id="b"> </div>
</div>
如果要实现b在a中居中放置,一般只需用CSS设置a的text-align属性为center。这样的方法在IE里看起来一切正常;但是在Firefox中b却会是居左的。
解决办法就是设置b的横向margin为auto。例如设置b的CSS样式为:margin: 0 auto;。
被点击访问过的超链接样式不再具有hover和active样式了,解决方法是改变CSS属性的排列顺序: L-V-H-A
<div>
<img src=”" mce_src=”" />
</div>
把div的border打开,你发现图片底部不是紧贴着容器底部的,是img后面的空白字符造成,要消除必须这样写
<div>
<img src=”" mce_src=”" /></div>
后面两个标签要紧挨着。ie7下这个bug 依然存在。解决方案:给img设定 display:block。
9、怎么样才能让flash透明显示在层上面之上呢?
<div class="banner" style="background:url(../images/ad.jpg);width:1108px;height:72px;
overflow:hidden; ">
<EMBED align=right src="../images/3.swf" width="1108" height="72" type=application/octet-stream
wmode="transparent"quality="high" ></EMBED>
<EMBED align=left src="../images/95.swf" width=1108 height=72 type=application/octet-stream
wmode="transparent"quality="high" ></EMBED>
</div>
宽和高一定要和层的一样
10、为什么FF下文本无法撑开容器的高度?
标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉he ight设置min-height:200px; 这里为了照顾不认识min-height的IE6 可以这样定义:
div { height:auto!important; height:200px; min-height:200px; }
11、IE6断头台问题
<div id="layout">
<div id="left">
<p>从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了从打火机发动机是分开了</p>
</div>
<a href="#">链接1</a>
<a href="#">链接2</a>
<a href="#">链接3</a>
<a href="#">链接4</a>
#layout{width:400px; border:5px solid #d4ca25;}
#left{width:200px; float:left;border:5px solid #35bb0c;}
当网页打开的时候页面显示正常,但鼠标指向右面对象“链接3”以及“链接4”的时候,主对象#layout下面被切掉,剩下的高度刚好是4个链接的高度。当鼠标再回到“链接1”,左侧的高度又恢复,
解决方法:把四个链接用<div id=right></div>包起来,给#right{floatleft;}