网页兼容性解决方案的书.doc

上传人:F****n 文档编号:90907589 上传时间:2019-06-20 格式:DOCX 页数:19 大小:33.03KB
返回 下载 相关 举报
网页兼容性解决方案的书.doc_第1页
第1页 / 共19页
网页兼容性解决方案的书.doc_第2页
第2页 / 共19页
网页兼容性解决方案的书.doc_第3页
第3页 / 共19页
网页兼容性解决方案的书.doc_第4页
第4页 / 共19页
网页兼容性解决方案的书.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《网页兼容性解决方案的书.doc》由会员分享,可在线阅读,更多相关《网页兼容性解决方案的书.doc(19页珍藏版)》请在金锄头文库上搜索。

1、网页兼容性解决方案的书篇一:网页兼容性问题解决方案!important 优先级兼容IE6的垂直居中问题2. margin加倍的问题3.浮动ie产生的双倍距离4 .IE与宽度和高度的问题 IE 不认得min-这个定义5. 页面的最小宽度 min -width是个非常方便的CSS命令浮动IE文本产生3象素的bug 左边对象浮动捉迷藏的问题的div闭合;清除浮动;自适应高度;11.高度不适应的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行2. margin加倍的问题

2、 设置为float(浮动)的div在ie下设置的margin会加倍。这是一个ie6都存在的bug(臭虫)。解决方案是在这个div里面加上 display:inline;例如: 相应的css为 #ImFloat 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两个元

3、素block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制;Inline 元素的特点是,和其他元素在同一行上,不可控制; #box display:block; /可以为内嵌元素模拟为块元素 display:inline; /实现同一行排列的效果 diplay:table;4 IE与宽度和高度的问题 IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。 比如要设置背景图片,这个宽

4、度是比较重要的。要解决这个问题,可以这样: #box width: 80px; height: 35px;htmlbody #box width: auto; height: auto; min-width: 80px; min-height: 35px;5.页面的最小宽度 min -width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个 放到 标签下,然后为div指定一个类, 然后CSS这样设计: #container min-width: 600p

5、x; width:expression; 第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。浮动IE文本产生3象素的bug 左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距. #box float:left; width:800px; #left float:left; width:50%; #right width:50%; *html #left margin-right:-3px; /这句是关键捉迷藏的问题 当div应

6、用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。 有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性或者给#layout使用固定高和宽。页面结构尽量简单。的div闭合;清除浮动;自适应高度; 例如:这里的NOTfloatC并不希望继续平移,而是希望往下排。 这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。在 之间加上 这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。并且将clear

7、这种样式定义为为如下即可: .clear clear:both;作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的 box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性用zoom:1;可以做到,这样就达到了兼容。 例如某一个wrapper如下定义: .colwrapper overflow:hidden; zoom:1; margin:5px auto;对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一

8、个统一的背景,譬如: 比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而 page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决 再嵌入一个float left而宽度是100%的DIV解决之万能float 闭合 关于 clear float 的原理可参见 How To Clear Floats Without Structural Markup,将以下代码加入Global CSS 中,给需要闭合的div加上 clas

9、s=clearfix 即可,屡试不爽. /* Clear Fix */ .clearfix:after content:.; display:block; height:0; clear:both; visibility:hidden; .clearfix篇二:网页制作兼容解决方法浏览器兼容性问题怎么解决?如果想解决浏览器的兼容性问题,你首先要明白在一个浏览器显示正常的代码为什么会在其他浏览器出现浏览器不兼容的问题?这是因为各个浏览器对于HTML标签或者DIV盒子模型的解析不同造成的,经常会出现问题的浏览器非IE莫属,因为IE浏览器本身自有的layout,真的是让很多前端人员痛苦不堪。鉴于此我

10、列举一些常用的检测不兼容代码的方法!1.排除法,逐行删除标签检测出问题的代码。2.加边框法。给每个盒子加border。这样就可以看出哪个盒子显示不正常。3.删除CSS,把样式表逐行删除,检测哪段样式有问题。以下为常见的一些浏览器兼容问题及解决方法浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。碰到频率:100%解决方案:CSS里 *margin:0;padding:0;备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。

11、浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大问题症状:常见症状是IE6中后面的一块被顶到下一行碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,

12、IE7,遨游中高度超出自己设置高度问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度碰到频率:60%解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug问题症状:IE6里的间距比超过设置的间距碰到几率:2

13、0%解决方案:在display:block;后面加入display:inline;display:table;备注:行内属性标签,为了设置宽高,我们需要设置display:block;。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。浏览器兼容问题五:图片默认有间距问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配

14、符也不起作用。碰到几率:20%解决方案:使用float属性为img布局备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)浏览器兼容问题六:标签最低高度设置min-height不兼容问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容碰到几率:5%解决方案:如果我们要设置一个标签的最小高度200px

15、,需要进行的设置为:min-height:200px; height:auto !important; height:200px; overflow:visible;备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。浏览器兼容问题七:透明度的兼容CSS设置做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。/* CSS hack*/我很少使用hacker的,可能是个人习惯吧,我不喜欢写的代码IE不兼容,然后用hack来解决。不过hac

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号