1. 如何调试 IE 浏览器
-
对于IE8 以上版本可使用自带功能进行调试
-
也可以下载ietaster进行调试
(但以上方法调试结果不完全准确,会和实际环境有偏差)
可通过对元素添加border进行调试
可通过对元素添加outline进行调试
可通过添加javascript来进行调试
-
可以安装模拟器进行调试(此方法的调试结果更准确)
2. 什么是CSS hack?在 CSS 和 HTML里如何写 hack?在 CSS 中 ie6、ie7的 hack 方式?
- CSS hack
简单的说,CSS hack的目的就是使你的CSS代码兼容不同的浏览器。也可以反过来利用CSS hack为不同版本的浏览器定制编写不同的CSS效果。
因为不同厂商的浏览器、以及相同浏览器的不同版本,对于css的解析都有所不同,导致页面的解析渲染效果也会出现差别。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
正常的样式放前面,针对hack的样式写在后面
CSS hack方式一:条件注释法
<!--[if ie6]>
<p>这是IE 6 浏览器</p>
<![end if]-->
/* 语义为在IE6时显示上述文字 */
CSS hack方式二:类内属性前缀法
CSS hack方式三:选择器前缀法
CSS3选择器结合JavaScript的Hack
IE 7 可用星号 “ * ” *background:black; /*IE7 背景變黑色*/
IE 6 可用下滑线“ _ ” _background:orange; /*IE6 背景變橘色*/
3. 列举几种 浏览器兼容问题
- inline-block IE 8以下不支持
需要添加
*zoom:1;
display:inline;
兼容问题出现的情况有很多,我们平时是可通过查询 Can I Use 网站查询兼容情况,然后在去找处理的相关代码以及方法。例如CC或者是browser去解决
查阅网站:
IE浏览器
4. 针对兼容、多浏览器覆盖有什么看法?渐进增强和优雅降级是什么意思?
- 根据实际的情况去做浏览器的兼容与覆盖。例如相关浏览器的占比,目标用户使用浏览器的情况等等去做权衡。将开发成本和实际效果做大最大化。
-
优雅降级:
是指先在最新版本的浏览器中进行开发,然后再针对低版本浏览器进行兼容,不追求与高版本一致,减少用户体验的供给,只保证最基本的功能。由复杂到基础的化简。
-
渐进增强:
针对低版本浏览器进行构建页面,保证最基本的功能,然后在针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。由基础到复杂的过程。
5. reset.css和normalize.css分别是做什么的?为什么推荐使用 nomalize.css?
- reset.css 是对于标签元素样式的重置,消除他们自带的标准样式,避免给整个页面带来影响
- normalize.css 则是传统reset的替换方案,他优化了原来的清楚默认样式的方式。
- 保护有用的浏览器默认样式而不是完全去掉它们
- 修复了浏览器的bug并保证各浏览器的一致性
- 有目的地对目标元素设置样式,不会让你的调试工具变的杂乱。而Reset在浏览器调试工具中存在着大量的继承链。
- Normalize.css 是模块化的,可以选择性的移除属性
- 拥有详细的文档
6. IE盒模型和标准盒模型有什么区别? 怎样使 IE678使用标准盒模型?box-sizing:border-box有什么作用
盒模型由content,padding,border,margin四个部分组成;
- IE盒模型: width值为content+padding+border
- 标准盒模型: width值为content
对于IE6、7、8,如需使用标准盒模型可以通过在HTML中设置声明Doctype即可
box-sizing:border-box;是css3新增属标签
box-sizing:有三个属性
- border-box;设定的元素宽高包括border,padding,content(IE盒模型)
- content-box;设定的元素宽高即是内容的宽高;(标准盒模型)
- inherit 规定应从父元素继承 box-sizing 属性的值;
虚拟机的安装
本文版权归作者及饥人谷所有!