關(guān)于兼容那點事

1、如何調(diào)試 IE 瀏覽器?

  • 使用高版本IE控制臺,使用開發(fā)者工具,選擇低版本IE瀏覽器。(IE7以上)
  • 安裝虛擬機,在虛擬機中安裝IE 瀏覽器進行調(diào)試。
  • IE6可以使用tester進行調(diào)試。
    2、什么是CSS hack?在 CSS 和 HTML里如何寫 hack?在 CSS 中 ie6、ie7的 hack 方式?
  • 由于不同廠商的流覽器或某瀏覽器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),對CSS的支持、解析不一樣,導(dǎo)致在不同瀏覽器的環(huán)境中呈現(xiàn)出不一致的頁面展現(xiàn)效果。
  • 對CSS的支持及解析結(jié)果不一樣,以及CSS優(yōu)先級對瀏覽器展現(xiàn)效果的影響,我們可以據(jù)此針對不同的瀏覽器情景來應(yīng)用不同的CSS。
  • 1、CSS hack方式一:IE條件注釋法
只在IE下生效
<!--[if IE]>
這段文字只在IE瀏覽器顯示
<![endif]-->

只在IE6下生效
<!--[if IE 6]>
這段文字只在IE6瀏覽器顯示
<![endif]-->

只在IE6以上版本生效
<!--[if gte IE 6]>
這段文字只在IE6以上(包括)版本IE瀏覽器顯示
<![endif]-->

只在IE8上不生效
<!--[if ! IE 8]>
這段文字在非IE8瀏覽器顯示
<![endif]-->

非IE瀏覽器生效
<!--[if !IE]>
這段文字只在非IE瀏覽器顯示
<![endif]-->

2、CSS hack方式二:CSS屬性前綴法

-“-″減號是IE6專有的hack
-“\9″ IE6/IE7/IE8/IE9/IE10都生效
-“\0″ IE8/IE9/IE10都生效,是IE8/9/10的hack
-“\9\0″ 只對IE9/IE10生效,是IE9/10的hack

3、CSS hack方式三:選擇器前綴法

*html *前綴只對IE6生效
*+html *+前綴只對IE7生效
@media screen\9{...}只對IE6/7生效
@media \0screen {body { background: red; }}只對IE8有效
@media \0screen\,screen\9{body { background: blue; }}只對IE6/7/8有效
@media screen\0 {body { background: green; }} 只對IE8/9/10有效
@media screen and (min-width:0\0) {body { background: gray; }} 只對IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只對IE10有效

參考
3、列舉幾種 瀏覽器兼容問題?

  • 不同瀏覽器的標簽?zāi)J的margin和padding不同。解決方法:*{margin:0;padding:0;}
  • 圖片默認有間距。解決辦法:使用float屬性為img布局
  • display:inline-block;IE6 7 不兼容。解決方法:在float的標簽樣式控制中加入 display:inline;將其轉(zhuǎn)化為行內(nèi)屬性。
    4、針對兼容、多瀏覽器覆蓋有什么看法?漸進增強和優(yōu)雅降級是什么意思?
  • 兼容、多瀏覽器覆蓋,針對一個項目來說,如果考慮太多瀏覽器的兼容,是需要花費時間和精力來更新的,如果只有5%的人在用一種瀏覽器,就不需要兼容,例如淘寶已經(jīng)不兼容IE6,因為沒有很多人在用。所以想達到多瀏覽器覆蓋是不可能的。
  • 漸進增強 progressive enhancement:針對低版本瀏覽器進行構(gòu)建頁面,保證最基本的功能,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。
  • 優(yōu)雅降級 graceful degradation:一開始就構(gòu)建完整的功能,然后再針對低版本瀏覽器進行兼容。
  • 優(yōu)雅降級是從復(fù)雜的現(xiàn)狀開始,并試圖減少用戶體驗的供給,而漸進增強則是從一個非?;A(chǔ)的,能夠起作用的版本開始,并不斷擴充,以適應(yīng)未來環(huán)境的需要。降級(功能衰減)意味著往回看;而漸進增強則意味著朝前看,同時保證其根基處于安全地帶。
    參考
    5、reset.css和normalize.css分別是做什么的?為什么推薦使用 nomalize.css?
  • reset css的目的,是將所有的瀏覽器的自帶樣式重置掉,這樣更易于保持各瀏覽器渲染的一致性;
  • normalize.css的理念則是盡量保留瀏覽器的默認樣式,不進行太多的重置。
  • 1保護有用的瀏覽器默認樣式而不是完全去掉它們
    2一般化的樣式:為大部分HTML元素提供
    3修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性
    4優(yōu)化CSS可用性:用一些小技巧
    5解釋代碼:用注釋和詳細的文檔來
    參考
    6、在 ie 6, 7, 8中展示 盒模型、inline-block、max-width的區(qū)別?
<head>
  <meta charset="utf-8">
  <title>測試</title>
  <style>
  .box1{
  border: 10px solid ;
  background:red;
  height:100px;
  width:100px;
  margin:50px;
  padding:50px;
}
.box2>li{
    display:inline-block;  
}
.box4,.box3{
    display:inline-block;
}
.box5{
  max-width:300px;
  height:100px;
  background:pink;
  margin:0 auto;
}</style>
</head>
<body>
  <div class="box1">盒模型</div>
  <div class="box2">
    <ul>
      <li>box1</li>
      <li>box2</li>
      <li>box3</li>
    </ul>
  </div>
  <div class="box3">你好</div>
  <div class="box4">前端</div>
  <div class="box5">max-width</div>
</body>

IE8


0_1458445817178_8.png

IE7


0_1458445834174_7.png

IE5
0_1458445844470_5.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 14,108評論 1 92
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,365評論 0 8
  • 一、如何調(diào)試 IE 瀏覽器 IE7以上版本自帶的開發(fā)者工具,IE6可以用border的方法;例:IE11的開發(fā)者工...
    __Qiao閱讀 1,177評論 2 17
  • 三伏天身體最怕6件事! 一、頸椎最怕吹天氣熱自然很多家庭都長時間開著空調(diào),頸椎對著空調(diào)吹,周圍的軟組織會產(chǎn)生病變,...
    體立方閱讀 246評論 0 0
  • 這一天的風(fēng)是金黃的,被太陽曬暖了,挾帶點清新山泉的味道,從遙遠神秘的大森林吹來,在一片桔林里環(huán)繞。桔子黃的發(fā)紅,...
    透明葉片閱讀 203評論 0 0

友情鏈接更多精彩內(nèi)容