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

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

  • IE8以上有開(kāi)發(fā)者工具(高版本的IE開(kāi)發(fā)者工具兼容模式可以往下選擇兼容不同版本),F(xiàn)12打開(kāi)贝咙,如下圖:
Paste_Image.png
  • 也可以使用border: 1px solid red; outline: 1px solid red來(lái)快速幫組定位問(wèn)題所在。
  • IETester瀏覽器測(cè)試工具拂募,可以模擬IE6.7.8.9渲染網(wǎng)頁(yè)庭猩。注:搜索了一下都是2、3年前的文章了陈症“可能不是很實(shí)用。
  • 安裝虛擬機(jī)(比較靠譜但是比較麻煩的方法录肯。)

2.什么是CSS hack徙缴?在 CSS 和 HTML里如何寫(xiě) hack?在 CSS 中 ie6嘁信、ie7的 hack 方式?

注:搜索這個(gè)也是2疏叨、3年前的文章

  • 因?yàn)樵缙跒g覽器渲染代碼方式不同潘靖,瀏覽器廠商也不知一家,所以就出現(xiàn)了兼容問(wèn)題蚤蔓。每個(gè)瀏覽器廠商都給自己設(shè)定了一個(gè)特別的符號(hào)卦溢,讓它們的瀏覽器能認(rèn)識(shí)這個(gè)符號(hào)后面的代碼,而其他瀏覽器對(duì)這個(gè)符號(hào)無(wú)視秀又,對(duì)它后面的代碼也會(huì)忽略单寂。CSS hack就是用來(lái)解決一些兼容問(wèn)題的方式。

  • IE6吐辙、IE7 中寫(xiě)CSS和HTML的hack:
    HTML中:
    1.注釋法:
    IE條件注釋是微軟從IE5開(kāi)始就提供的一種非標(biāo)準(zhǔn)邏輯語(yǔ)句宣决。比如針對(duì)所有IE:<!–[if IE]><!–您的代碼–><![endif]–>,針對(duì)IE7以下版本:<!–[if lt IE 7]><!–您的代碼–><![endif]–>昏苏,這類(lèi)Hack不僅對(duì)CSS生效尊沸,對(duì)寫(xiě)在判斷語(yǔ)句里面的所有代碼都 會(huì)生效。

CSS中:前綴法:
比如IE6能識(shí)別_和*贤惯,IE7能識(shí)別*洼专,但不能識(shí)別_
比如IE6能識(shí)別*html .class{}孵构,IE7能識(shí)別*+html .class{}或者*:first-child+html .class{}屁商。


/* CSS屬性級(jí)Hack */ color:red; /* 所有瀏覽器可識(shí)別*/ _color:red; /* 僅IE6 識(shí)別 */ *color:red; /* IE6、IE7 識(shí)別 */ +color:red; /* IE6颈墅、IE7 識(shí)別 */ *+color:red; /* IE6蜡镶、IE7 識(shí)別 */ [color:red; /* IE6雾袱、IE7 識(shí)別 */ color:red\9; /* IE6、IE7帽哑、IE8谜酒、IE9 識(shí)別 */ color:red\0; /* IE8、IE9 識(shí)別*/ color:red\9\0; /* 僅IE9識(shí)別 */ color:red \0; /* 僅IE9識(shí)別 */ color:red!important; /* IE6 不識(shí)別!important*/


/* CSS選擇符級(jí)Hack */ *html #demo { color:red;} /* 僅IE6 識(shí)別 */ *+html #demo { color:red;} /* 僅IE7 識(shí)別 */ body:nth-of-type(1) #demo { color:red;} /* IE9+妻枕、FF3.5+僻族、Chrome、Safari屡谐、Opera 可以識(shí)別 */ head:first-child+body #demo { color:red; } /* IE7+述么、FF、Chrome愕掏、Safari度秘、Opera 可以識(shí)別 */ :root #demo { color:red\9; } : /* 僅IE9識(shí)別 */


/* IE條件注釋Hack */


3.列舉幾種 瀏覽器兼容問(wèn)題?

1. <!DOCTYPE HTML>聲明饵撑。

在IE6下如果沒(méi)有寫(xiě)DOCTYPE聲明剑梳,瀏覽器將使用怪異模式渲染網(wǎng)頁(yè)。

2.各廠商的默認(rèn)margin和padding值不同滑潘。

ie:


Paste_Image.png

chrome:


Paste_Image.png

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

3.inline-block垢乙;

在IE下只能讓它變成inline元素,然后觸發(fā)塊元素的 layout语卤,使它看起來(lái)像inline-block;
display: inline-block;*display: inline;zoom: 1;

4.橫向雙倍外間距:
  • 當(dāng)在IE6下浮動(dòng)元素后追逮,會(huì)出現(xiàn)橫向雙倍margin。
    解決辦法: 在float標(biāo)簽的樣式控制中加入display:inline

IE6兼容問(wèn)題匯總


4.針對(duì)兼容粹舵、多瀏覽器覆蓋有什么看法钮孵?漸進(jìn)增強(qiáng)優(yōu)雅降級(jí)是什么意思?

  • 兼容眼滤、多瀏覽器覆蓋只是瀏覽器發(fā)展的一個(gè)過(guò)程巴席,我們處在這個(gè)過(guò)程中,從瀏覽器的發(fā)展歷史柠偶,早期的各廠商渲染方式不一到現(xiàn)在的w3c規(guī)范情妖,瀏覽器的發(fā)展始終要規(guī)范化,這是趨勢(shì)诱担,也更有利于開(kāi)發(fā)環(huán)境和用戶體驗(yàn)毡证。目前針對(duì)兼容,多瀏覽器覆蓋是不可避免的蔫仙,畢竟各廠商瀏覽器都有自己的用戶群體料睛,而網(wǎng)頁(yè)是要給所有人看的。
  • 漸進(jìn)增強(qiáng):
    針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,保證最基本的功能恤煞,然后在針對(duì)高級(jí)瀏覽器進(jìn)行效果屎勘、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)。
  • 優(yōu)雅降級(jí):
    一開(kāi)始就針對(duì)高版本瀏覽器進(jìn)行頁(yè)面構(gòu)建居扒,然后再針對(duì)低版本瀏覽器進(jìn)行兼容概漱。

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

  • reset.css:是將所有的瀏覽器的自帶樣式重置掉喜喂,這樣更易于保持各瀏覽器渲染的一致性瓤摧。
  • normalize.css:它正是針對(duì)只需要統(tǒng)一的元素樣式。該項(xiàng)目依賴(lài)于研究瀏覽器默認(rèn)元素風(fēng)格之間的差異玉吁,精確定位需要重置的樣式照弥。
  • normalize.css優(yōu)勢(shì):

? 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è)試娇豫。這個(gè)文件中擁有詳細(xì)的代碼說(shuō)明并在Github Wiki中有進(jìn)一步的說(shuō)明。這意味著你可以找到每一行代碼具體完成了什么工作畅厢、為什么要寫(xiě)這句代碼冯痢、瀏覽器之間的差異,并且你可以更容易地進(jìn)行自己的測(cè)試。 這個(gè)項(xiàng)目的目標(biāo)是幫助人們了解瀏覽器默認(rèn)是如何渲染元素的浦楣,同時(shí)也讓人們很容易地明白如何改進(jìn)瀏覽器渲染袖肥。


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

1. 回到之前的盒模型,如下圖:
Paste_Image.png
可以看出:
  • IE盒模型:width=border+padding+content。
  • W3C盒模型:width=content.
2.IE678使用標(biāo)準(zhǔn)盒模型:
  • 在html最前面添加<!DOCTYPE html>聲明振劳。
3.sizing:border-box作用:
  • 使盒模型設(shè)定成IE盒模型的方式來(lái)計(jì)算寬度椎组。
Paste_Image.png

1.實(shí)操安裝虛擬機(jī)

Paste_Image.png

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

  • 展示代碼:
  <!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
總結(jié):
  • 盒模型因?yàn)?lt;!DOCTYPE html>聲明的緣故所以W3C標(biāo)準(zhǔn)盒模型渲染,三張圖無(wú)差異夹供。
  • inline-block:從上圖看出IE6\7不支持灵份,IE8正常顯示。
  • max-width:從上圖看出IE6不支持哮洽,IE7/8支持填渠。

本文版權(quán)歸多彩和饑人谷所有,轉(zhuǎn)載請(qǐng)注明來(lái)源D窀ā7帐病!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匪凉,一起剝皮案震驚了整個(gè)濱河市枪眉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌再层,老刑警劉巖贸铜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異聂受,居然都是意外死亡蒿秦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)蛋济,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)棍鳖,“玉大人,你說(shuō)我怎么就攤上這事碗旅《纱Γ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵祟辟,是天一觀的道長(zhǎng)医瘫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)旧困,這世上最難降的妖魔是什么登下? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任茫孔,我火速辦了婚禮,結(jié)果婚禮上被芳,老公的妹妹穿的比我還像新娘缰贝。我一直安慰自己,他們只是感情好畔濒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布剩晴。 她就那樣靜靜地躺著,像睡著了一般侵状。 火紅的嫁衣襯著肌膚如雪赞弥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天趣兄,我揣著相機(jī)與錄音绽左,去河邊找鬼。 笑死艇潭,一個(gè)胖子當(dāng)著我的面吹牛拼窥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蹋凝,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鲁纠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鳍寂?” 一聲冷哼從身側(cè)響起改含,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迄汛,沒(méi)想到半個(gè)月后捍壤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鞍爱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年白群,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硬霍。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖笼裳,靈堂內(nèi)的尸體忽然破棺而出唯卖,到底是詐尸還是另有隱情,我是刑警寧澤躬柬,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布拜轨,位于F島的核電站,受9級(jí)特大地震影響允青,放射性物質(zhì)發(fā)生泄漏橄碾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望法牲。 院中可真熱鬧史汗,春花似錦、人聲如沸拒垃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悼瓮。三九已至戈毒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間横堡,已是汗流浹背埋市。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留命贴,地道東北人道宅。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像套么,于是被迫代替她去往敵國(guó)和親培己。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一胚泌、問(wèn)答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺(tái)省咨,可以按F12啟動(dòng)。Paste_Image.p...
    _hello__world_閱讀 457評(píng)論 0 1
  • 1.如何調(diào)試IE瀏覽器? 對(duì)于高版本的IE瀏覽器(IE7以上)可以使用IE自帶的開(kāi)發(fā)者工具玷室,如下圖: 使用一些集成...
    饑人谷_任磊閱讀 359評(píng)論 0 1
  • 一零蓉、問(wèn)答部分: 1. 如何調(diào)試 IE 瀏覽器? 如果是IE7版本以上可以使用自帶的開(kāi)發(fā)者工具,按F12穷缤,即可打開(kāi):...
    小木子2016閱讀 520評(píng)論 0 0
  • 1 . 如何調(diào)試 IE 瀏覽器 使用高版本的IE瀏覽器控制臺(tái)敌蜂。 如果某個(gè)元素不見(jiàn)了,可以使用如下方法:a.給該元素...
    osborne閱讀 375評(píng)論 0 1
  • 1.如何調(diào)試 IE 瀏覽器津肛? IE瀏覽器7+自帶的開(kāi)發(fā)者工具章喉,IE6可以采用border的方法或是下載virtur...
    mint9602閱讀 254評(píng)論 0 0