浅谈浏览器兼容性问题--工具及调试

本文通过实例解决了一个在IE浏览器中滚动条与表格内容重叠的问题,并探讨了width:100%与width:auto在不同IE版本下的表现差异。

前言

浏览器兼容性的问题,即使积累得更多,也会有新的问题出现。此时我们就需要会(利用工具)调试及解决问题。下面以一个滚动条宽度位置的问题为例说明此点。

问题

这个网址下的表格,在IE7模式下,会有一部分的内容被滚动条覆盖了 滚动条问题

解决

我们要利用开发人员工具一层层循序寻找看是哪个元素导致的问题,是里面的太大,还是外面的太小?其实图中我已经找好了,是里面的表格元素大了一点,而且是IE7下面才有的问题,所以,迅速地在css中加上+table_list{width:98%;},问题解决了。 http://gh.p2227.com/demo/applyLayout/playout.html

思考

width:100%的意义是什么呢,跟width:auto又有什么区别?我找到了这篇博客,里面讨论到了margin的问题,但我的代码中并没有margin,所以我自己做了测试。针对width:100%和width:auto的区别 width:100%的测试代码    width:auto的测试代码

效果图:

IE6宽度100%IE7宽度100%IE8宽度100%IE6宽度autoIE7宽度autoIE8宽度auto

小结一下,IE6宽度100%,滚动条不见了,但中键能滚动,目测是滚动条生成在table的外面;IE7宽度100%,滚动条与table重叠,table的部分内容看不见;IE8宽度auto,宽度是以内容去适应的,并不是parent对象的宽度

用表格来整理如下
| |宽度100%|宽度auto|
|--|--|--|
|IE6|滚动条附加在scroll元素以外|宽度适合,内容显示完整|
|IE7|滚动条叠加在scroll元素内,内部元素宽度没有把滚动条排除|宽度适合,内容显示完整|
|IE8|宽度适合,内容显示完整|宽度以内容为准,并不会适应parent元素|

注:IE9以上在一点上的表现与IE8基本相同

##更好的解决方案
综上,我们针对IE67用`宽度auto`,其他情况用`宽度100%`是更好的解决方案
[代码](http://gh.p2227.com/demo/BrowserCompatibility/debug/scrollBar-hack.html)

我们面对兼容性问题,一方面可以根据一些基本的原理及以往经验去修改,另外一方面是分析调试、罗列测试与新积累。如此**发现-解决-思考-整理**从而得出更好的解决方法。

##参考
http://blog.youkuaiyun.com/wgw335363240/article/details/7043861

http://www.cnblogs.com/aaronjs/p/3565253.html

小结一下,IE6宽度100%,滚动条不见了,但中键能滚动,目测是滚动条生成在table的外面;IE7宽度100%,滚动条与table重叠,table的部分内容看不见;IE8宽度auto,宽度是以内容去适应的,并不是parent对象的宽度

用表格来整理如下

 宽度100%宽度auto
IE6滚动条附加在scroll元素以外宽度适合,内容显示完整
IE7滚动条叠加在scroll元素内,内部元素宽度没有把滚动条排除宽度适合,内容显示完整
IE8宽度适合,内容显示完整宽度以内容为准,并不会适应parent元素

注:IE9以上在一点上的表现与IE8基本相同

更好的解决方案

综上,我们针对IE67用宽度auto,其他情况用宽度100%是更好的解决方案 代码

我们面对兼容性问题,一方面可以根据一些基本的原理及以往经验去修改,另外一方面是分析调试、罗列测试与新积累。如此发现-解决-思考-整理从而得出更好的解决方法。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值