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


2016/6/6

可以裝個虛擬機,用于調(diào)試IE的兼容


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

  • IE瀏覽器7以上+自帶的開發(fā)者工具,ie6可以用加border的方法
  • 采用模擬器的方式去模不同版本下的IE瀏覽器,如ietester
  • 通過安裝虛擬機的方式,安裝不同版本的IE的運行環(huán)境去達到調(diào)試IE瀏覽器的目的

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

  • CSS hack由于不同廠商的瀏覽器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一廠商的瀏覽器的不同版本,如IE6和IE7,對CSS的解析認(rèn)識不完全一樣,因此會導(dǎo)致生成的頁面效果不一樣,得不到我們所需要的頁面效果。這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。 簡單的說,CSS hack的目的就是使你的CSS代碼兼容不同的瀏覽器。當(dāng)然,我們也可以反過來利用CSS hack為不同版本的瀏覽器定制編寫不同的CSS效果。

  • CSS Hack大致有3種表現(xiàn)形式,CSS屬性前綴法、選擇器前綴法以及IE條件注釋法(即HTML頭部引用if IE)Hack,實際項目中CSS Hack大部分是針對IE瀏覽器不同版本之間的表現(xiàn)差異而引入的。
    1.屬性前綴法(即類內(nèi)部Hack):例如 IE6能識別下劃線""和星號" ",IE7能識別星號" ",但不能識別下劃線"",IE6~IE10都認(rèn)識"\9",但firefox前述三個都不能認(rèn)識
    2.選擇器前綴法(即選擇器Hack):例如 IE6能識別html .class{},IE7能識別+html .class{}或者*:first-child+html .class{}
    3.IE條件注釋法(即HTML條件注釋Hack):針對所有IE(注:IE10+已經(jīng)不再支持條件注釋): ,針對IE6及以下版本: 。這類Hack不僅對CSS生效,對寫在判斷語句里面的所有代碼都會生效
    <!-[if IE]>這段文字只是在IE瀏覽器下顯示<![endif]->
    <!-[if IE6]>這段文字只是在IE6顯示器生效<![endif]->
    <!-[if get IE6]>這段文字只是在IE6以上(包括)版本IE瀏覽器顯示<![endif]->
    <!-[if !IE8]>這段文字在非IE瀏覽器下顯示<![endif]>
    <!-[if ! IE]>這段文字只是在非IE瀏覽器下顯示<![endif]>
    參考資料

3.列舉幾種 瀏覽器兼容問題

  • hover IE6不支持,以上的IE只支持a標(biāo)簽的hover
  • display:inline-block ie67不支持。
  • max-height,max-width等一系列,IE6不支持
  • padding,margin在不同瀏覽器默認(rèn)樣式有差異
  • 在ie6下塊元素有浮動和橫向margin值,橫向的margin值會被放大成2倍,解決方法:display:inline
  • 在ie6下父級有邊框的時候,子元素的margin值消失,解決方法:觸發(fā)haslayout

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

看法:對于兼容有有的放矢,分清主次,針對主流瀏覽器去開發(fā),同時要兼顧用戶需求,遇到一個問題解決一個,先完成基本功能和樣式的實現(xiàn),再完善細節(jié)。
優(yōu)雅降級:在前面的開發(fā)中,先不用考慮一些低的版本的瀏覽器,等開發(fā)完成之后慢慢地去做一個適應(yīng),只要頁面還正常,不亂,看著還可以就OK了,沒必要去追求特別高的還原度。
漸進增強:先針對ie6去做開發(fā),再對一些好的瀏覽器增加一些額外的一些效果,讓它看起來更好看一些。

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

  • reset.css:是用于去除瀏覽器預(yù)先給標(biāo)簽設(shè)置的默認(rèn)樣式。
  • normalize.css:normalize.css是reset.css的改良版,他是在reset的基礎(chǔ)上進行改良避免誤傷,保留了一些有價值的默認(rèn)樣式,還增加了其他功能,也沒有reset.css 的一些缺點。
  • 為什么使用nomalize.css?
  1. Normalize.css 保護了有價值的默認(rèn)值,這就意味著你不用再為所有公共的排版元素重新設(shè)置樣式。當(dāng)一個元素在不同的瀏覽器中有不同的默認(rèn)值時,Normalize.css會力求讓這些樣式保持一致并盡可能與現(xiàn)代標(biāo)準(zhǔn)相符合。
  2. Normalize.css 修復(fù)了瀏覽器的bug
  3. Normalize.css 不會讓你的調(diào)試工具變的雜亂
  4. Normalize.css 是模塊化的
  5. Normalize.css 擁有詳細的文檔
    參考資料

6.IE盒模型和標(biāo)準(zhǔn)盒模型有什么區(qū)別? 怎樣使 IE678使用標(biāo)準(zhǔn)盒模型?box-sizing:border-box有什么作用

  • IE盒模型:寬度=內(nèi)容寬度+padding+邊框。
  • 標(biāo)準(zhǔn)盒模型:寬度=內(nèi)容寬度。
    *要使ie6 7 8 使用標(biāo)準(zhǔn)盒模型:
    (1)可以在開頭添加<!doctype html>來使用標(biāo)準(zhǔn)盒模型。
    (2)box-sizing:border-box 使元素按照ie盒模型計算,寬度=border+padding+內(nèi)容寬度。

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

  • IE6 inline-block、max-width完全失效
  • IE7 inline-block完全失效 max-width 僅起一定作用
  • IE8 兩者都能正常使用
    老師,還沒有裝虛擬機~
最后編輯于
?著作權(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)容

  • 一、問答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺,可以按F12啟動。Paste_Image.p...
    _hello__world_閱讀 565評論 0 1
  • 一、問答部分: 1. 如何調(diào)試 IE 瀏覽器? 如果是IE7版本以上可以使用自帶的開發(fā)者工具,按F12,即可打開:...
    小木子2016閱讀 617評論 0 0
  • 1.如何調(diào)試IE瀏覽器? 對于高版本的IE瀏覽器(IE7以上)可以使用IE自帶的開發(fā)者工具,如下圖: 使用一些集成...
    饑人谷_任磊閱讀 441評論 0 1
  • 1.如何調(diào)試 IE 瀏覽器 IE8以上有開發(fā)者工具(高版本的IE開發(fā)者工具兼容模式可以往下選擇兼容不同版本),F(xiàn)1...
    饑人谷_kule閱讀 472評論 0 0
  • 1 . 如何調(diào)試 IE 瀏覽器 使用高版本的IE瀏覽器控制臺。 如果某個元素不見了,可以使用如下方法:a.給該元素...
    osborne閱讀 449評論 0 1

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