瀏覽器兼容

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

  • 1.IE7.0及以上IE版本可使用IE自帶的控制臺工具調(diào)試。
  • 2.可以安裝虛擬機再安裝不同版本的IE去調(diào)試
  • 3.在CSS中使用邊框調(diào)試,border: 1px solid red;和outline:1px solid red;顯示盒模型調(diào)試,適用IE6及以下版本
  • 4.用IETest調(diào)試,模擬不同版本的IE瀏覽器,但模擬效果不能完全還原真實IE環(huán)境。chrome開發(fā)者調(diào)試工具:
Paste_Image.png
Paste_Image.png

什么是CSS hack?在CSS和HTML里如何寫hack?在CSS中ie6ie7的hack方式?

由于不同廠商的瀏覽器chrome、safari、firefox、IE對CSS文件解析渲染結果不一致,甚至同一瀏覽器的不同版本的產(chǎn)品對CSS文件解析渲染結果不一致,得不到我們需要的結果。CSS hack的目的是使CSS代碼兼容不同的瀏覽器,或使用CSS hack為不同瀏覽器設置不同css效果。IEbug無窮無盡,因為渲染的標準不同,IE先出現(xiàn)的,在此之后后才有w3c渲染標準
CSShack參考網(wǎng)站:browserhacks.com,caniuser.com

CSS和HTML里寫hack有以下幾種方法:

  • 1.css屬性前綴法 Property/Value Hacks 只針對某個瀏覽器才可見的屬性,一般是屬性前加特殊符號IE6、IE7(*)
.box{*background:yellow;}```
- 2.選擇器前綴法:例如 IE6能識別html .class{},IE7能識別+html .class{ }
```html
*html .box{      /*IE6.0*/
    background:yellow;
}
*+html .box{     /*IE7.0*/
    background:yellow;
}
  • 3.cc(ie conditional comments)IE條件注釋(win10起不支持條件注釋,將與其他瀏覽器一樣解析成注釋)
    [if !IE]不等于IE、[if lt IE 6]小于IE6、[if lte IE 6]小于等于IE6
<!--[if IE 6]><body class="ie6"><![endif]-->
<!--[if IE 7]><body class="ie7"><![endif]-->
<!--[if IE 8]><body class="ie8"><![endif]-->
<!--[if IE 9]><body class="ie9"><![endif]-->
<!--[if !IE]>-->
body
<!--<![endif]-->
</body>
Paste_Image.png

列舉幾種瀏覽器兼容問題

1.display:inline-block IE6、IE7不支持該屬性,需要添加以下語句

*display:inline;
*zoom:1;

2.opacity IE8及以下版本不支持

filter: "alpha(opacity=60)"; /* IE 8 */
filter: alpha(opacity=60);   /* IE 4-7 */
zoom: 1;

針對兼容、多瀏覽器覆蓋有什么看法?漸進增強和優(yōu)雅降級是什么意思?

IEbug無窮無盡,因為渲染的標準不同,瀏覽器的兼容是個費時費力的專題工程。所以在項目啟動之初需要對項目的使用場景做調(diào)研,了解用戶各瀏覽器的使用份額。比如銀行或政府機構網(wǎng)站IE瀏覽器的使用率高。由調(diào)研情況來確定技術選型。

漸進增強:開發(fā)過程側重適配低版本瀏覽器,先保證最基本功能和易用性,然后再針對高級瀏覽器進行效果、交互等功能的改進。保證低版本瀏覽器用戶的基本功能和易用性基礎上,再完善高版本瀏覽器用戶的更好體驗。

優(yōu)雅降級:側重適配高版本瀏覽器,使網(wǎng)頁在好看又好用的基礎上,再考慮對低版本瀏覽器的兼容。比如在低版本瀏覽器上僅保證功能可用,允許與高版本瀏覽器實際渲染效果出現(xiàn)細微差異,或放棄某些特效。對于復雜度太高的兼容可考慮放棄。

瀏覽器兼容程度分級
A級 好看而且好用 適配chrome/firefox/safari
B級 好用,視覺效果允許細微偏差 適配IE8/IE9
C級 可以用,視覺效果不考慮 適配IE8以下瀏覽器


reset.css和normalize.css分別是做什么的?為什么推薦使用 nomalize.css?

HTML標簽在瀏覽器中都有默認的樣式,不同的瀏覽器的默認樣式之間是存在區(qū)別的,例如ul默認帶有縮進樣式,在IE下,它的縮進是由margin來實現(xiàn)的,而在Firefox下卻是由padding來實現(xiàn)的。所以開發(fā)時瀏覽器的默認樣式可能會給我們帶來多瀏覽器的兼容問題,影響開發(fā)效率。reset.css和normaliz.css都是用來將瀏覽器的默認樣式覆蓋掉,達到多個瀏覽器的一致性。

resset.css是將瀏覽器所有默認樣式全部重置,作用范圍很大。reset會在瀏覽器調(diào)試工具中有大段的繼承鏈,而 normalize.css不會。

normalize.css保護了有價值的默認值,保持了許多默認的瀏覽器樣式。修復了常見的桌面端和移動端瀏覽器的bug,這超出了reset所能做到的范疇。

IE盒模型和標準盒模型有什么區(qū)別?怎樣使IE678使用標準盒模型?box-sizing:border-box有什么作用

IE盒模型 box-sizing:border-box;寬度、高度=盒模型邊框+padding+(內(nèi)容寬度或高度)

標準盒模型 box-sizing:content-box; 寬度、高度=width、height
在IE678中添加DOCTYPE聲明即可遵循標準盒模型,不加doctype聲明則使用怪異模式即IE盒模型。


在ie6,7,8中展示盒模型、inline-block、max-width的區(qū)別

IE6

Paste_Image.png

IE7

Paste_Image.png

IE8

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

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

  • 一、如何調(diào)試 IE 瀏覽器? 在IE7以上的版本中可以通過按快捷鍵F12調(diào)出開發(fā)人員調(diào)試框,如下圖IE7以上調(diào)試工...
    dengpan閱讀 666評論 0 2
  • 一、問答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺,可以按F12啟動。Paste_Image.p...
    _hello__world_閱讀 576評論 0 1
  • 一、如何調(diào)試 IE 瀏覽器 IE7以上版本自帶的開發(fā)者工具,IE6可以用border的方法;例:IE11的開發(fā)者工...
    __Qiao閱讀 1,182評論 2 17
  • 一、問答部分: 1. 如何調(diào)試 IE 瀏覽器? 如果是IE7版本以上可以使用自帶的開發(fā)者工具,按F12,即可打開:...
    小木子2016閱讀 634評論 0 0
  • 最近在做一期微信活動,新加入的股東對于整個營銷方向進行了把控,所以這期微信活動也在其中。系列活動的第一期也比較重視...
    點墨在進化閱讀 339評論 0 0

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