Heim  >  Artikel  >  Web-Frontend  >  div+css的常见错误,兼容办法等_html/css_WEB-ITnose

div+css的常见错误,兼容办法等_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:29:37906Durchsuche

常见错误  

1. 检查HTML元素是否有拼写错误、是否忘记结束标记

  即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一下有无错误。

  2. 检查CSS是否正确

  检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用CleanCSS来检查 CSS的拼写错误。CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误。

  3. 确定错误发生的位置

  如果错误影响了整体布局,则可以逐个删除div块,直到删除某个div块后显示恢复正常,即可确定错误发生的位置。

  4. 利用border属性确定出错元素的布局特性

  使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。

  5. float元素的父元素不能指定clear属性

  MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的著名的bug,倘若不知道就会走弯路。

  6. float元素务必指定width属性

  很多浏览器在显示未指定width的float元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。

  另外指定元素时尽量使用em而不是px做单位。

  7. float元素不能指定margin和padding等属性

  IE在显示指定了margin和padding的float元素时有bug。因此不要对float元素指定margin和padding属性(可以在float元素内部嵌套一个div来设置margin和padding)。也可以使用hack方法为IE指定特别的值。

  8. float元素的宽度之和要小于100%

  如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%。

  9. 是否重设了默认的样式?

  某些属性如margin、padding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的margin、padding设置为0、列表样式设置为none等。

  10. 是否忘记了写DTD?

  如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下面这行DTD:

  /p> 常用工具

  1.Notepad.exe记事本,(程序小,随时手工编辑,垃圾代码少,不能可视化预览)

  2.Dreamweaver(老牌网页编辑工具,功能全,程序比较大)

  3..editplus(应该是升级版的记事本工具,代码编辑有颜色提示)

  4.Notepad++(一款非常有特色的编辑器,开源软件,支持多种开发语言)

  5.Ultraedit(一套功能强大的文本编辑器)

  6.Golive(将来替代Dreamweaver的产品)

  7.Topstyle(功能相当多,附有CSS码检查功能,减少写错的机会。尤其是它的HELP文件中详细的CSS指令介绍,很适于用作参考文件与初次接触CSS的人做为学习使用)

兼容办法

  区别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;

  IE7,IE8兼容:

  HEAD

  1. CSS中几种浏览器对不同关键字的支持,可进行浏览器兼容性重复定义 !important 可被FireFox和IE7识别 * 可被IE6、IE7识别 _ 可被IE6识别 *+ 可被IE7识别

  2. IE专用的条件注释

  3. 几个浏览器对实际像素的解释 IE/Opera:对象的实际宽度 = (margin-left) + width + (margin-right) Firefox/Mozilla:对象的实际宽度= (margin-left) + (border-left-width) + (padding- left) + width + (padding-right) + (border-right-width) + (margin-right)

  4. 鼠标手势问题:FireFox的cursor属性不支持hand,但是支持pointer,IE两个都支持;所以为了兼容都用pointer

  5. FireFox中设置HTML标签的Style属性时,所有位置、宽高和尺寸值必须后跟px,IE也支持此写法,因此统一加px单位。如 Obj.Style.Height = imgObj.Style.Height + ‘px';

  6. FireFox无法解析简写的padding属性设置,如padding 5px 4px 3px 1px;必须改为 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px0;

  7. 消除ul、ol等列表的缩进时,样式应写成:list-style:none;margin:0px;padding:0px;其中margin属性对IE有效,padding属性对FireFox有效

  8. CSS控制透明:IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60); FireFox:opacity:0.6;

  9. CSS控制圆角:IE:不支持圆角; FireFox: -moz-border-radius:4px;或 -moz-border-radius-topleft:4px; -moz-border-radius-topright:4px; -moz-border-radius-bottomleft:4px; -moz-border-radius- bottomright:4px;

  10. CSS双线凹凸边框:IE:border:2px outset; FireFox: -moz-border-top-colors: #d4d0c8 white; -moz-border-left-colors: #d4d0c8 white; -moz-border-right-colors:#404040 #808080; -moz-border-bottom-colors:#404040 #808080;

  11. IE支持CSS方法cursor:url()自定义光标样式文件和滚动条颜色风格;FireFox对以上两者均不支持

  12. IE有Select控件永远处于最上层的bug,且所有CSS对Select控件都不起作用

  13. IE支持Form中的Label标签,包括图片和文字内容;FireFox不支持包含图片的Label,点击图片不能让标记 label for 的Radio或CheckBox产生效果

  14. FireFox中的TextArea不支持onScroll事件

  15. FireFox不支持display的inline和block

  16. FireFox对Div设置margin-left, margin-right为auto时已经居中, IE中不行

  17. FireFox对Body设置text-align时, Div需要设置margin: auto(主要是margin-left margin-right) 方可居中

  18. 对超链接的CSS样式设置最好遵从这样的顺序:L-V-H-A。即 这样可以避免一些访问过后的超链接就不具备hover和active样式了

  19. IE中设置长段落自动换行在CSS中设置word-wrap:break-word;FireFox中使用JS插入 的方法来实现,具体代码如下:

  20. 在子容器加了浮动属性后,该容器将不能自动撑开 解决方法:在标签结束后下一个标签中加上一个清除浮动的CSS clear:both;

  21. 浮动后IE6解释外边距为实际边距的双倍 解决办法:加上display:inline

  22. IE6下图片下方会有空隙 解决办法:为img加上display:block或设置vertical-align 属性为vertical-align:top | bottom |middle |text-bottom

  23. IE6下两个层中间有空隙 解决办法:设置右侧div也同样浮动float:left或者相对IE6定义 margin-right:-3px;

  24. LI中内容超过长度后以省略号的显示方法 (只适用与IE)

  25. 将元素的高度和行高设为相同值,即可垂直居中文本

  26. 对齐文本与文本输入框,须在CSS中增加vertical-align:middle;属性设置

  27. 支持WEB标准的浏览器设置了固定高度值就不会像IE6那样被撑开,但是又想设置固定高度又想能够被撑开呢?解决办法是去掉height属性而设置min-height,为了兼容不支持min-height的IE6可以这样定义: { height:auto!important; height:200px; min-height:200px; }

  28. web标准中IE无法设置滚动条颜色 解决办法:在CSS中对body的设置改为对html的

  29. IE6由于默认行高问题无法定义1px左右高度的容器, 解决办法:在CSS中对容器设置如:overflow:hidden | zoom:0.08 | line-height:1px

  30. 给Flash设置透明属性可使层显示在Flash之上

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn