• 代码兼容、技巧


    代码兼容、技巧

    前端开发中,一个头疼的事,就是代码的不兼容,这里贴出自己在前端开发中的一些解决经验。除了其浏览器本身的BUG外,不建议使用CSS hack来解决兼容性问题的。

    IE和FF下对”li“的的高度解析不同

    可以不定义高度,直接定义行高。再让li浮动 消除IE的BUG。

    IE3像素问题

    出现3培训BUG 时, 可以采用右边层margin-right: -3px; 解决。

    需要图片在层中是垂直居中

    当需要图片在层中是垂直居中,可以图片定义vertical-align: middle;,再在图片左侧加入<span></span>,定义样式display: inline-block; height: 100%; vertical-align: middle; 就是兼容的了。

    子元素浮动,父元素不能自动适应高度

    FF IE7下可以在父元素定义overflow: auto; IE6加入 zoom: 1; 这个触发IE的.layout。或在浮动元素后加入在浮动层后面加入<br clear="all" style="line-height: 0" />。

    IE6双边距

    浮动元素的外边距会加倍,但与第一个浮动元素相邻的其他浮动元素外边距不会加倍。解决方法:在此浮动元素增加样式 display:inline;

    IE下图片产生的间隙

    父元素直接包含<img>,这个图片下方会和父元素边缘产生间隙。 解绝方法:1.在源代码中让</div> 和<img>在同一行,因为那个间隙是由换行符产生的。2.给<img>添加样式 display:block;

    IE下高度低于14像素时问题

    块元素最小高度为10px,当高度定义小于14px时,仍为12px 左右; 解决方法:为此块元素添加样式 overflow:hidden; 或font-size: 0;

    IE,FF下列表的li为浮动,则列表后面的元素不能换行的问题

    解决方法:为这个ul定义合适的高或给包含这个ul 的父div定义合适的高。或加上<br clear="all" style="line-height: 0" />

    IE,FF下子元素的上下外边界问题

    IE6:子元素的上边距和父元素的上内边距叠加。FF:子元素的上边距和父元素的上内边距相加。解决方法:1、给父元素定义内边距。2、父元素设置边框,子元素定义上外边距。3、父元素定义overflow: hidden;,子元素定义上外边距。

    IE,FF高度自适应问题(最小高度)

    在IE6下子元素的高度能够撑开父元素,但FF,IE7下不可以。解决办法:父元素定义min-height:高度值; height:auto !important; height:高度值; (要注意先后顺序不能错)

    IE,FF高度自适应问题(最大高度,最小宽度,最大宽度)

    最大高度,max-height: 180px; _height: expression( this.scrollHeight > 180 ? "180px" : "auto" ); 后面两条是解决IE6问题。

    最小宽度,min- 900px; _expression((document.documentElement.clientWidth||document.body.clientWidth)<900?"900px":"");

    最大宽度,max- 300px; _expression((document.documentElement.clientWidth||document.body.clientWidth)>300?"300px":"");

    子元素负边距问题

    IE6:超出父元素的部分会被父元素覆盖。FF:分两种情况当父元素有边框或内边距时,超出父元素的部分会覆盖父元素;没有时父元素拥有负边距。解决方法:子元素定义相对定位。

    IE6诡异的奇数BUG

    当父元素相对定位,子元素绝对定位时,倘若父元素的高或宽的数值是奇数,那么IE6下绝对位置会出错。解决方法: 数值改成偶数,IE6是大侠,只要服从它。

    IE6和IE7下,相对定位元素不能滚动的Bug

    这个BUG以前没遇到过,近期配合自动滚屏时遇到了,开始以为是JS问题,在哪找啊找,后来无果,尝试看看是不是CSS的问题,果不其然,万 恶的IE6,7,当设置了position: relative后,其元素就不能滚动了,要想解决其BUG,需要使其包裹他们的父元素也相对定位,这个时候IE7可以完美解决,IE6嘛,里面的定位坐 标可能需要实时修正下。

    li元素中有右浮动,同时此元素还是英文数字

    此种情况,正常下由于li不清除浮动,也不会有影响,但是对与Opear,哈哈,杯具来了,两种方法,清除每个li的浮动,再就是定义字体为 宋体。究其原因,清浮动好理解,但是为什么宋体也能解决。不过了这个BUG是Opear的.同时当li浮动后,其内部若有inline-block元素, 其父元素的行高和高对其不会产生效果,这一现象出现在此种情况,正常下由于li不清除浮动,也不会有影响,但是对与Opear

    input、button在IE下随文字增加内补丁也增加

    不管你怎么写margin:0;padding:0;都去不掉,唯一的解决办法是overflow:visible。

    ul浮动引起的li双倍间距,IE6下

    大伙听到可能会说,这不是IE6的浮动双间距BUG,其实不然,是的话也就不在这里说了。很困惑,让其LI也浮动,无果。其他浏览器正常,那 该是什么呢,退回到原始状态,我们已经定义list-style: none; 应该不会有默认的什么产生。查看ul,li的基本属性,发现有个list-style-position,列表项目标记放置在文本以内是否对齐,两个值, 默认的outside,不对其。还有inside,对其。那么会不会是他影响。不死心,强制定义下list-style-position: outside;哈哈,一切变的和谐了,既然是默认的,IE6啊,真实整死人不偿命啊,此后,我对li的重置里直接加了这条。

    IE8下两个inline标签的问题

    当我们让两个inline标签在一行,且中间没有空格,这一般是很正常的写法如label后面跟个span。这个时候倘若只定义行高,那问题来了,其他解析正常。IE8会多出两个像素。一般解决的话,就是两个inline标签换行写.或者给它定义高度。

    来自:http://www.webfeike.net/d2/content/op_code.htm

  • 相关阅读:
    一篇笔记整理JVM工作原理
    深入理解java异常处理机制
    Javaee----重新回顾servlet
    dubbo框架----探索-大型系统架构设计(图解)
    Java 中浮点数---------BigDecimal和double(初探)
    dubbo框架----初探索-配置
    ConcurrentHashMap-----不安全线程hashmap-安全线程-hashtable
    Maven Eclipse (m2e) SCM connector for subclipse 1.10 (svn 1.8) 无法检测
    从svn检出项目---------不是web项目
    Java当中的内存分配以及值传递问题内存解析
  • 原文地址:https://www.cnblogs.com/wpbars/p/3401009.html
Copyright © 2020-2023  润新知