任务13-浏览器兼容

2016-08-19  本文已影响0人  饥人谷_kule

1.如何调试 IE 浏览器

Paste_Image.png

2.什么是CSS hack?在 CSS 和 HTML里如何写 hack?在 CSS 中 ie6、ie7的 hack 方式?

注:搜索这个也是2、3年前的文章

CSS中:前缀法:
比如IE6能识别_和*,IE7能识别*,但不能识别_
比如IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。


/* CSS属性级Hack */ color:red; /* 所有浏览器可识别*/ _color:red; /* 仅IE6 识别 */ *color:red; /* IE6、IE7 识别 */ +color:red; /* IE6、IE7 识别 */ *+color:red; /* IE6、IE7 识别 */ [color:red; /* IE6、IE7 识别 */ color:red\9; /* IE6、IE7、IE8、IE9 识别 */ color:red\0; /* IE8、IE9 识别*/ color:red\9\0; /* 仅IE9识别 */ color:red \0; /* 仅IE9识别 */ color:red!important; /* IE6 不识别!important*/


/* CSS选择符级Hack */ *html #demo { color:red;} /* 仅IE6 识别 */ *+html #demo { color:red;} /* 仅IE7 识别 */ body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以识别 */ head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以识别 */ :root #demo { color:red\9; } : /* 仅IE9识别 */


/* IE条件注释Hack */


3.列举几种 浏览器兼容问题?

1. <!DOCTYPE HTML>声明。

在IE6下如果没有写DOCTYPE声明,浏览器将使用怪异模式渲染网页。

2.各厂商的默认margin和padding值不同。

ie:


Paste_Image.png

chrome:


Paste_Image.png

解决方法:*{margin:0;padding:0;}

3.inline-block;

在IE下只能让它变成inline元素,然后触发块元素的 layout,使它看起来像inline-block;
display: inline-block;*display: inline;zoom: 1;

4.横向双倍外间距:

IE6兼容问题汇总


4.针对兼容、多浏览器覆盖有什么看法?渐进增强优雅降级是什么意思?


5.reset.css和normalize.css分别是做什么的?为什么推荐使用 nomalize.css?

• 1. Normalize.css 保护了有价值的默认值
Reset通过为几乎所有的元素施加默认样式,强行使得元素有相同的视觉效果。 相比之下,Normalize.css保持了许多默认的浏览器样式。 这就意味着你不用再为所有公共的排版元素重新设置样式。 当一个元素在不同的浏览器中有不同的默认值时,Normalize.css会力求让这些样式保持一致并尽可能与现代标准相符合。
• 2. Normalize.css 修复了浏览器的bug
它修复了常见的桌面端和移动端浏览器的bug。这往往超出了Reset所能做到的范畴。 关于这一点,Normalize.css修复的问题包含了HTML5元素的显示设置、预格式化文字的font-size问题、在IE9中SVG的溢出、许多出现在各浏览器和操作系统中的与表单相关的bug。
• 3. Normalize.css 不会让你的调试工具变的杂乱
使用Reset最让人困扰的地方莫过于在浏览器调试工具中大段大段的继承链,如下图所示。在Normalize.css中就不会有这样的问题,因为在我们的准则中对多选择器的使用时非常谨慎的,我们仅会有目的地对目标元素设置样式。
• 4. Normalize.css 是模块化的
这个项目已经被拆分为多个相关却又独立的部分,这使得你能够很容易也很清楚地知道哪些元素被设置了特定的值。因此这能让你自己选择性地移除掉某些永远不会用到部分(比如表单的一般化)。
• 5. Normalize.css 拥有详细的文档

Normalize.css的代码基于详细而全面的跨浏览器研究与测试。这个文件中拥有详细的代码说明并在Github Wiki中有进一步的说明。这意味着你可以找到每一行代码具体完成了什么工作、为什么要写这句代码、浏览器之间的差异,并且你可以更容易地进行自己的测试。 这个项目的目标是帮助人们了解浏览器默认是如何渲染元素的,同时也让人们很容易地明白如何改进浏览器渲染。


6.IE盒模型和标准盒模型有什么区别? 怎样使 IE678使用标准盒模型?box-sizing:border-box有什么作用?

1. 回到之前的盒模型,如下图:
Paste_Image.png
可以看出:
2.IE678使用标准盒模型:
3.sizing:border-box作用:
Paste_Image.png

1.实操安装虚拟机

Paste_Image.png

2.在 ie 6, 7, 8中展示 盒模型inline-blockmax-width的区别。

  <!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style media="screen">
 *{margin:0;padding:0;}
 .box-mode{
 border:1px solid pink;
 height: 100px;
 width: 100px;
 background: #eee;
 padding:20px;
 margin:20px;
 }
 .inline-block{
 border:1px solid pink;
 height: 100px;
 width: 100px;
 background: #333;
 display: inline-block;
 }
 .max-width{
 border:1px solid;
 max-width:100px;
 height: 50px;
 background: yellow;
 }
 </style>
 </head>
 <body>
   <div class="box-mode"></div>
   <div class="inline-block"></div>
   <div class="inline-block"></div>
   <div class="max-width"></div>
 </body>
 </html>
chrome V52:
Paste_Image.png
IE6:
Paste_Image.png
IE7:
Paste_Image.png
IE8:
Paste_Image.png
总结:

本文版权归多彩和饥人谷所有,转载请注明来源!!!

上一篇 下一篇

猜你喜欢

热点阅读