CSS对赏识器的兼容性偶然让人很头疼,或者当你相识傍边的能力跟道理,就会认为也不是难事,从网上网络了IE7,6与Fireofx的兼容性处理赏罚要领并清算了一下.对付web2.0的太过,请只管用xhtml名目写代码,并且DOCTYPE 影响 CSS 处理赏罚,作为W3C的尺度,必然要加 DOCTYPE申明.
CSS能力
1.div的垂直居中题目 vertical-align:middle; 将行距增进到和整个DIV一样高 line-height:200px; 然后插入笔墨,就垂直居中了。弱点是要节制内容不要换行
2. margin更加的题目 配置为float的div在ie下配置的margin会更加。这是一个ie6都存在的bug。办理方案是在这个div内里加上display:inline; 譬喻: <#div id=”imfloat”> 响应的css为 #IamFloat{ float:left; margin:5px;/*IE下领略为10px*/ display:inline;/*IE下再领略为5px*/}
3.浮动ie发生的双倍间隔 #box{ float:left; width:100px; margin:0 0 0 100px; //这种环境之下IE会发生200px的间隔 display:inline; //使浮动忽略} 这里细说一下block与inline两个元素:block元素的特点是,老是在新行上开始,高度,宽度,行高,边距都可以节制(块元素);Inline元素的特点是,和其他元素在统一行上,不行节制(内嵌元素); #box{ display:block; //可觉得内嵌元素模仿为块元素 display:inline; //实现统一行分列的结果 diplay:table;
4 IE与宽度和高度的题目 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上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类, 然后CSS这样计划: #container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );} 第一个min-width是正常的;但第2行的width行使了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它现实上通过Javascript的判定来实现最小宽度。
6.DIV浮动IE文本发生3象素的bug 左边工具浮动,右边回收外补丁的左边距来定位,右边工具内的文本会离左边有3px的间距. #box{ float:left; width:800px;} #left{ float:left; width:50%;} #right{ width:50%;} *html #left{ margin-right:-3px; //这句是要害} <div> <div></div> <div></div> </div>
7.IE捉迷藏的题目 当div应用伟大的时辰每个栏中又有一些链接,DIV等这个时辰轻易产生捉迷藏的题目。 有些内容表现不出来,当鼠标选择这个地区是发明内容确其实页面。 办理步伐:对#layout行使line-height属性 可能给#layout行使牢靠高和宽。页面布局只管简朴。
8.float的div闭合;破除浮动;自顺应高度;
① 譬喻:<#div id=”floatA” ><#div id=”floatB” ><#div id=” NOTfloatC” >这里的NOTfloatC并不但愿继承平移,而是但愿往下排。(个中floatA、floatB的属性已经配置为 float:left;) 这段代码在IE中毫无题目,题目出在FF。缘故起因是NOTfloatC并非float标签,必需将float标签闭合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之间加上 < #div class=”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:5px auto;}
③对付排版,我们用得最多的css描写也许就是float:left.有的时辰我们必要在n栏的float div后头做一个同一的配景,譬如: <div id=”page”> <div id=”left”></div> <div id=”center”></div> <div id=”right”></div> </div> 好比我们要将page的配景配置成蓝色,以到达全部三栏的配景颜色是蓝色的目标,可是我们会发明跟着left center right的向下拉长,而 page居然生涯高度稳固,题目来了,缘故起因在于page不是float属性,而我们的page因为要居中,不能配置成float,以是我们应该这样办理 <div id=”page”> <div id=”bg” style=”float:left;width:100%”> <div id=”left”></div> <div id=”center”></div> <div id=”right”></div> </div> </div> 再嵌入一个float left而宽度是100%的DIV办理之
④全能float 闭合(很是重要!) 关于 clear float 的道理可拜见 [How To Clear Floats Without Structural Markup],将以下代码插手Global CSS 中,给必要闭合的div加上 即可,屡试不爽. /* 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; //将工具作为块元素级的表格表现}
11.高度不顺应 高度不顺应是当内层工具的高度产生变革时外层高度不能自动举办调理,出格是当内层工具行使margin 或paddign 时。 例: #box {background-color:#eee; } #box p {margin-top: 20px;margin-bottom: 20px; text-align:center; } <div> <p>p工具中的内容</p> </div> 办理要领:在P工具上下各加2个空的div工具CSS代码:.1{height:0px;overflow:hidden;}可能为DIV加上border属性。
12 .IE6下为什么图片下有旷地发生 办理这个BUG的要领也有许多,可所以改变html的排版,可能配置img 为display:block 可能配置vertical-align 属性为 vertical-align:top | bottom |middle |text-bottom 都可以办理.
13.怎样对齐文本与文本输入框 加上 vertical-align:middle; <style type="text/css"> <!-- input { width:200px; height:30px; border:1px solid red; vertical-align:middle; } --> </style>
14.web尺度中界说id与class有什么区别吗 一.web尺度中是不允许一再ID的,好比 div 不允许一再2次,而class 界说的是类,理论上可以无穷一再, 这样必要多次引用的界说便可以行使他. 二.属性的优先级题目 ID 的优先级要高于class,看上面的例子 三.利便JS等客户端剧本,假如在页面中要对某个工具举办剧本操纵,那么可以给他界说一个ID,不然只能操作遍历页面元素加上指定特定属性来找到它,这是相对挥霍时刻资源,远远不如一个ID来得简朴.
15. LI中内容高出长度后以省略号表现的要领 此要领合用与IE与OP赏识器 <style type="text/css"> <!-- li { width:200px; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; overflow: hidden; } --> </style>
16.为什么web尺度中IE无法配置转动条颜色了 办理步伐是将body换成html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />