css兼容性写法大全
常见的浏览器内核引擎以及具体应用:
- *和_ , ie6可以识别;
- * , ie6,ie7可以识别;
- !important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;
- -webkit- ,针对safari,chrome浏览器的内核CSS写法
- -moz-,针对firefox浏览器的内核CSS写法
- -ms-,针对ie内核的CSS写法
- -o-,针对Opera内核的CSS写法
如果只让ie6看见用 *html .head{color:#000;}
如果只让ie7看见用 *+html .head{color:#000;}
如果只让ff看见用: root body .head{color:#000;}
如果只让ff、IE8看见用 html>/**/body .head{color:#000;}
如果只是不让ie6看见用 html>body .head{color:#000;} 即对IE 6无效
如果只是不让ff、IE8看见用 *body .head{color:#000;} 即对ff、IE8无效
.div1{
*position:relative;
-moz-background-size:50%;
-ms-content-zoom-limit-max:50%;
-o-box-shadow:5px10px20px#f0f;
}
.div2{
position:absoulte!important;
}
IE不认得min-,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类,然后CSS这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
FF:opacity:0.6。
[注] 最好两个都写,并将opacity属性放在下面。
FF: -moz-border-radius:4px
IE的双边距bug
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。
解决方案:在这个div里面加上display:inline;
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#left{ float:left; width:50%;}
#right{ width:50%;}
*html #left{ margin-right:-3px; //这句是关键}
<div id="box">
<div id="left"></div>
<div id="right"></div>
</div>
当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。
有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。
<div id=”left”></div>
<div id=”center”></div>
<div id=”right”></div>
</div>
高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时。
例:
#box { }
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
<div id="box">
<p>p对象中的内容</p>
</div>
解决技巧:在P对象上下各加2个空的div对象CSS代码:.1{height:0px;overflow:hidden;}或者为DIV加上border属性。
解决这个BUG的技巧也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为vertical-align:top bottom middle text-bottom 都可以解决.
一个高30px的div,默认显示左上角,如果想垂直居中对其可以加个line-height:30px;样式。如果你想让他居下方则修改line-height
数值越大越下,为了防止撑破,还需要再给一个样式overflow:hidden;
块级对象设置三个样式解决浏览器默认值:宽高overfl
LI中内容超过长度后以省略号显示的技巧
此技巧适用与IE与OP浏览器
li {width:200px;
white-space:nowrap;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
overflow: hidden;
}
为什么web标准中IE无法设置滚动条颜色了
解决办法是将body换成html
html {
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;
}
为什么无法定义1px左右高度的容器
IE6下这个问题是因为默认的行高造成的,解决的技巧也有很多,例如:overflow:hidden zoom:0.08 line-height:1px
- body,div,dl,dt,dd,ol,h1,h2,h3,h4,h5,h6,form,input,p,th,td{margin:0;padding:0;}
- img{border:0px;}
- ul {margin:0px;padding:0px;}/
- ul li {list-style:none;}
/* Clear Fix */
.clearfix:after {
content:”.”;
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix {
display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
或者这样设置:.hackbox{ display:table; //将对象作为块元素级的表格显示}
太多了 参考:http://www.jb51.net/css/43686.html