DIV+css兼容性 FF IE6 IE7 IE8 IE9.docx
- 文档编号:7862980
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:11
- 大小:26.50KB
DIV+css兼容性 FF IE6 IE7 IE8 IE9.docx
《DIV+css兼容性 FF IE6 IE7 IE8 IE9.docx》由会员分享,可在线阅读,更多相关《DIV+css兼容性 FF IE6 IE7 IE8 IE9.docx(11页珍藏版)》请在冰豆网上搜索。
DIV+css兼容性FFIE6IE7IE8IE9
CSS浏览器兼容手册,CSS技巧大全
#example{color:
#333;}/*Moz*/
*html#example{color:
#666;}/*IE6*/
*+html#example{color:
#999;}/*IE7*/
那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999,他们都互不干扰。
我真希望那个IE6快点退休......
CSShack:
区分IE6,IE7,firefox
区别不同浏览器,CSShack写法:
区别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能识别*,但不能识别!
important,
IE7能识别*,也能识别!
important;
FF不能识别*,但能识别!
important;
复制内容到剪贴板
代码:
IE6IE7FF
*√√×
!
important×√√
因为浏览器以为链接到同一页,可它又找不到定义的书签(anchor),于是停留在页面的顶端。
用“javascript:
void(null)”替换空链接的“#”,解决这个问题
CSS技巧
CSS方法解决IE6最小高度,IE6最小宽度,IE6最大高度,IE6最大宽度,兼容IE6/IE7/IE8/火狐。
====================
IE6最小高度
.min_height{
min-height:
200px;
_height:
expression(this.scrollHeight<200?
"200px":
"auto");
}
--------------------------------
IE6最大高度
.max_height{
max-height:
400px;
_height:
expression(this.scrollHeight>400?
"400px":
"auto");
}
--------------------------------
IE6最小宽度
max-width:
600px;
_width:
expression(document.body.clientWidth>600?
"600px":
"auto");
/*_width:
expression(document.body.clientWidth<300?
"300px":
"auto");这是min-width*/
--------------------------------
IE6最大最小宽度
.min_and_max_width{
min-width:
300px;
max-width:
600px;
_width:
expression(
document.body.clientWidth<300?
"300px":
(document.body.clientWidth>600?
"600px":
"auto")
);
}
--------------------------------
IE6最大最小高度
.min_and_max_height{
min-height:
200px;
max-height:
400px;
_height:
expression(
this.scrollHeight<200?
"200px":
(this.scrollHeight>400?
"400px":
"auto")
);
}
====================
1.div的垂直居中问题
vertical-align:
middle;将行距增加到和整个DIV一样高line-height:
200px;然后插入文字,就垂直居中了。
缺点是要控制内容不要换行
2.margin加倍的问题
设置为float的div在ie下设置的margin会加倍。
这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:
inline;
例如:
<#divid=”imfloat”> 相应的css为
#IamFloat{
float:
left;
margin:
5px;
display:
inline;
}
3.浮动ie产生的双倍距离
#box{float:
left;
width:
100px;
margin:
000100px;
//这种情况之下IE会产生200px的距离
display:
inline;
//使浮动忽略
}
这里细说一下block与inline两个元素:
block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素); #box{display:
block;//可以为内嵌元素模拟为块元素display:
inline;//实现同一行排列的效果diplay:
table;
4IE与宽度和高度的问题
IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。
这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。
比如要设置背景图片,这个宽度是比较重要的。
要解决这个问题,可以这样:
#box{
width:
80px;
height:
35px;
}
html>body#box{
width:
auto;
height:
auto;
min-width:
80px;
min-height:
35px;}
5.页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。
但IE不认得这个,而它实际上把width当做最小宽度来使。
为了让这一命令在IE上也能用,可以把一个
#container{
min-width:
600px;
width:
expression_r(body.clientWidth<600?
"600px":
"auto");}
第一个min-width是正常的;但第2行的width使用了Java,这只有IE才认得,这也会让你的HTML文档不太正规。
它实际上通过Java的判断来实现最小宽度。
6.DIV浮动IE文本产生3象素的bug
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#box{
float:
left;
width:
800px;}
#left{
float:
left;
width:
50%;}
#right{
width:
50%;}
*html#left{
margin-right:
-3px;
//这句是关键}
7.IE捉迷藏的问题
当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。
有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。
解决办法:
对#layout使用line-height属性或者给#layout使用固定高和宽。
页面结构尽量简单。
8.float的div闭合;清除浮动;自适应高度;
①例如:
<#divid=”floatA”><#divid=”floatB”><#divid=”NOTfloatC”>这里的NOTfloatC并不希望继续平移,而是希望往下排。
(其中floatA、floatB的属性已经设置为float:
left;) 这段代码在IE中毫无问题,问题出在FF。
原因是NOTfloatC并非float标签,必须将float标签闭合。
在<#divclass=”floatB”><#divclass=”NOTfloatC”>之间加上<#divclass=”clear”>这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear这种样式定义为为如下即可:
.clear{clear:
both;}
②作为外部wrapper的div不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:
hidden;当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!
)用zoom:
1;可以做到,这样就达到了兼容。
例如某一个wrapper如下定义:
.colwrapper{overflow:
hidden;zoom:
1;margin:
5pxauto;}
③对于排版,我们用得最多的css描述可能就是float:
left.有的时候我们需要在n栏的floatdiv后面做一个统一的背景,譬如: