任務(wù)十三-瀏覽器兼容

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

答:

  • 高版本的IE(7以上)存在開發(fā)者工具,可以直接使用調(diào)試。
  • 可以安裝虛擬機(jī)再安裝不同版本的IE去調(diào)試
  • 在CSS中使用border: 1px solid red;outline:1px solid red;顯示盒模型調(diào)試
  • 用IETest調(diào)試,模擬不同版本的IE瀏覽器

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

答:

CSS hack是通過(guò)在CSS樣式中加入一些特殊的符號(hào),讓不同的瀏覽器識(shí)別不同的符號(hào)(什么樣的瀏覽器識(shí)別什么樣的符號(hào)是有標(biāo)準(zhǔn)的,CSS hack就是讓你記住這個(gè)標(biāo)準(zhǔn)),以達(dá)到應(yīng)用不同的CSS樣式的目的。

  • 條件注釋法:在HTML中做更改。
    在IE中生效;在IE6生效;
    ``````在IE7生效;
  • 屬性前綴法(即類內(nèi)部Hack): IE6能識(shí)別下劃線""和星號(hào)" * ",IE7能識(shí)別星號(hào)" * ",但不能識(shí)別下劃線"",IE6~IE10都認(rèn)識(shí)"\9",但firefox前述三個(gè)都不能認(rèn)識(shí)。
    IE6:
.box{
_background:yellow;}```
IE7:

.box{
*background:yellow;}```

  • 選擇器前綴法(即選擇器Hack):例如 IE6能識(shí)別html .class{},IE7能識(shí)別+html .class{}或者*:first-child+html .class{}。
*html .box {
 background: yellow;
}```

####3.列舉幾種 瀏覽器兼容問(wèn)題
答:
* ```display:inline-block;``` 對(duì)塊級(jí)元素設(shè)置這個(gè)屬性的時(shí)候,IE67是不支持的,需要如下語(yǔ)句:

*display:inline;
*zoom:1;```

  • opacity:0.8;常用CSS3屬性調(diào)節(jié)透明度,這個(gè)不被IE8以下支持。所以需要:
filter: "alpha(opacity=60)"; /* IE 8 */
filter: alpha(opacity=60);   /* IE 4-7 */
zoom: 1;  ```

####4.針對(duì)兼容、多瀏覽器覆蓋有什么看法?**漸進(jìn)增強(qiáng)**和**優(yōu)雅降級(jí)**是什么意思?
答:一般來(lái)講,如果有超過(guò)一定百分比的人數(shù)使用某個(gè)瀏覽器,我們?cè)谠O(shè)計(jì)頁(yè)面時(shí)候就要考慮到此瀏覽器的兼容問(wèn)題。主要就是IE678,火狐和谷歌瀏覽器。先盡量寫代碼,如果月到一些問(wèn)題可以用審查工具去看具體哪有問(wèn)題,配合CANIUSE的網(wǎng)站查詢兼容情況,再酌情進(jìn)行修改。
* 漸進(jìn)增強(qiáng):是指在渲染的時(shí)候先以低版本的基礎(chǔ)頁(yè)面為主,保證基本功能,之后再針對(duì)高版本瀏覽器中的功能屬性渲染,改進(jìn)等。
* 優(yōu)雅降級(jí):與上者剛好相反,是指直接渲染網(wǎng)站所有功能,再對(duì)低版本的瀏覽器進(jìn)行兼容。


####5.reset.css和normalize.css分別是做什么的?為什么推薦使用 nomalize.css?
答:
>在HTML標(biāo)簽在瀏覽器里有默認(rèn)的樣式,在切換頁(yè)面的時(shí)候默認(rèn)樣式往往會(huì)給我們帶來(lái)麻煩,影響開發(fā)效率。所以解決的方法就是一開始就將瀏覽器的默認(rèn)樣式全部去掉,更準(zhǔn)確說(shuō)就是通過(guò)重新定義標(biāo)簽樣式?!案采w”瀏覽器的CSS默認(rèn)屬性。最簡(jiǎn)單的說(shuō)法就是把瀏覽器提供的默認(rèn)樣式覆蓋掉,這就是CSS reset。

而相對(duì)于resset.css來(lái)說(shuō),normalize.css更加柔和保留一些比較通用的瀏覽器默認(rèn)樣式而不是生硬的全部去掉它們,比較講究通用和可維護(hù)性,并且修復(fù)了常見(jiàn)的瀏覽器Bug。所以reset用起來(lái)的時(shí)候影響的范圍很大,后者在Reset 的基礎(chǔ)上給一些有特殊意義的標(biāo)簽加上默認(rèn)樣式,所以較為推薦后者。

>1. Normalize.css 保護(hù)了有價(jià)值的默認(rèn)值
Reset通過(guò)為幾乎所有的元素施加默認(rèn)樣式,強(qiáng)行使得元素有相同的視覺(jué)效果。相比之下,Normalize.css保持了許多默認(rèn)的瀏覽器樣式。這就意味著你不用再為所有公共的排版元素重新設(shè)置樣式。當(dāng)一個(gè)元素在不同的瀏覽器中有不同的默認(rèn)值時(shí),Normalize.css會(huì)力求讓這些樣式保持一致并盡可能與現(xiàn)代標(biāo)準(zhǔn)相符合。
2. Normalize.css 修復(fù)了瀏覽器的bug
它修復(fù)了常見(jiàn)的桌面端和移動(dòng)端瀏覽器的bug。這往往超出了Reset所能做到的范疇。關(guān)于這一點(diǎn),Normalize.css修復(fù)的問(wèn)題包含了HTML5元素的顯示設(shè)置、預(yù)格式化文字的font-size問(wèn)題、在IE9中SVG的溢出、許多出現(xiàn)在各瀏覽器和操作系統(tǒng)中的與表單相關(guān)的bug。
3. Normalize.css 不會(huì)讓你的調(diào)試工具變的雜亂
使用Reset最讓人困擾的地方莫過(guò)于在瀏覽器調(diào)試工具中大段大段的繼承鏈,如下圖所示。在Normalize.css中就不會(huì)有這樣的問(wèn)題,因?yàn)樵谖覀兊臏?zhǔn)則中對(duì)多選擇器的使用時(shí)非常謹(jǐn)慎的,我們僅會(huì)有目的地對(duì)目標(biāo)元素設(shè)置樣式。
4. Normalize.css 是模塊化的
這個(gè)項(xiàng)目已經(jīng)被拆分為多個(gè)相關(guān)卻又獨(dú)立的部分,這使得你能夠很容易也很清楚地知道哪些元素被設(shè)置了特定的值。因此這能讓你自己選擇性地移除掉某些永遠(yuǎn)不會(huì)用到部分(比如表單的一般化)。
5. Normalize.css 擁有詳細(xì)的文檔
Normalize.css的代碼基于詳細(xì)而全面的跨瀏覽器研究與測(cè)試。


####6.IE盒模型和標(biāo)準(zhǔn)盒模型有什么區(qū)別? 怎樣使 IE678使用標(biāo)準(zhǔn)盒模型?box-sizing:border-box有什么作用?
答:
* IE盒模型寫出來(lái)的寬高是包括內(nèi)容content和margin兩者的。而這里的content也含有border和padding。
* W3C標(biāo)準(zhǔn)盒模型是寫出來(lái)的寬高就是內(nèi)容本身,我們可以在樣式里在對(duì)Margin,padding,border進(jìn)行定義。
在IE678中添加DOCTYPE聲明即可遵循標(biāo)準(zhǔn)盒模型,添加box-sizing:border-box這個(gè)屬性即可以按IE盒模型來(lái)設(shè)定盒子寬高(把邊框和內(nèi)邊距放在同一個(gè)外邊框里)。

####7.在 ie 6, 7, 8中展示 **盒模型**、**inline-block**、**max-width**的區(qū)別?
答:
* 盒模型

<style>
.block{
width:100px;
height:100px;
border:5px solid blue;
}
</style>
</head>
<body>
<div class="block"></div>
</body>```
經(jīng)測(cè)試,IE678在盒模型無(wú)差異均為下圖所示。


IE6,7,8
  • inline-block
    在IE67中不支持inline-block,IE8可以。


    IE6,7
IE8
  • max-width:
  <style>
    .block1{
      max-width:200px;
      height:100px;
      border:5px solid blue;
    }
  </style> 
</head>
<body>
  <div class="block1"></div>  
</body>```
![IE7,8](http://upload-images.jianshu.io/upload_images/2349092-58ad8a38d85bf716.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![IE6](http://upload-images.jianshu.io/upload_images/2349092-1988082fa2ea1b60.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

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

  • 一、如何調(diào)試 IE 瀏覽器? 在IE7以上的版本中可以通過(guò)按快捷鍵F12調(diào)出開發(fā)人員調(diào)試框,如下圖IE7以上調(diào)試工...
    dengpan閱讀 666評(píng)論 0 2
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,194評(píng)論 1 92
  • 一、問(wèn)答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺(tái),可以按F12啟動(dòng)。Paste_Image.p...
    _hello__world_閱讀 576評(píng)論 0 1
  • 一、問(wèn)答部分: 1. 如何調(diào)試 IE 瀏覽器? 如果是IE7版本以上可以使用自帶的開發(fā)者工具,按F12,即可打開:...
    小木子2016閱讀 634評(píng)論 0 0
  • 1.如何調(diào)試IE瀏覽器? 對(duì)于高版本的IE瀏覽器(IE7以上)可以使用IE自帶的開發(fā)者工具,如下圖: 使用一些集成...
    饑人谷_任磊閱讀 454評(píng)論 0 1

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