瀏覽器兼容

一伊磺、問答

如何調(diào)試 IE 瀏覽器
  • IE7以上使用控制臺調(diào)試
  • IE6用border或者outline來識別元素邊界調(diào)試
  • 通過IE窗口執(zhí)行js調(diào)試
  • 通過IEtester或其他測試軟件調(diào)試
  • 通過安裝虛擬機智绸,直接在對應(yīng)IE版本來查看效果進行調(diào)試。
什么是CSS hack础废?在 CSS 和 HTML里如何寫 hack姑尺?在 CSS 中 IE 7厂抖、IE 8的 hack 方式灸眼?
  1. 由于不同的瀏覽器卧檐,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認(rèn)識不一樣焰宣,因此會導(dǎo)致生成的頁面效果不一樣霉囚,得不到我們所需要的頁面效果。
    這個時候我們就需要針對不同的瀏覽器去寫不同的CSS匕积,讓它能夠同時兼容不同的瀏覽器盈罐,能在不同的瀏覽器中也能得到我們想要的頁面效果榜跌。
    這個針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack盅粪。

  2. CSS Hack有三種表現(xiàn)方式钓葫。

    • 屬性前綴法(即類內(nèi)部hack):例如IE6能識別下劃線“”和星號“”。IE7能識別星號“”但不能識別下劃線“”湾揽,IE6~IE10都認(rèn)識“\9”瓤逼,但firefox前述三個都不能認(rèn)識笼吟。

    • 選擇器前綴法(即選擇器hack):例如IE6能識別html .class{}库物,IE7能識別+html .class{}或者*:first-child+html .class{}

    • IE條件注釋法(即HTML條件注釋hack):IE專有的hack方式(注:IE10+已經(jīng)不再支持條件注釋)。這類Hack不僅對CSS生效贷帮,對寫在判斷語句里面的所有代碼都會生效戚揭。
      <pre><code>針對所有IE:

      針對IE6及以下版本:

      非IE瀏覽器:

      針對IE6以及IE6以上版本:

      </pre></code>
      史上最全CSS hack
      browserhacks

列舉幾種瀏覽器兼容問題
  • inline-block不兼容ie6/7。
    • 方法一:直接讓塊元素設(shè)置為內(nèi)聯(lián)對象呈遞(設(shè)置屬性 display:inline)撵枢,然后觸發(fā)塊元素的 layout(如:zoom:1 等)民晒。兼容各瀏覽器的代碼如下:* div {display:inline-block;**display:inline; *zoom:1;...}
    • 方法二:先使用 display:inline-block 屬性觸發(fā)塊元素,然后再定義 display:inline锄禽,讓塊元素呈遞為內(nèi)聯(lián)對象(兩個display 要先后放在兩個 CSS 樣式聲明中才有效果潜必,這是 IE 的一個經(jīng)典 bug ,如果先定義了 display:inline-block沃但,然后再將 display 設(shè)回 inline 或 block磁滚,layout 不會消失)。代碼如下:div {display:inline-block;...}div {*display:inline;}
針對兼容宵晚、多瀏覽器覆蓋有什么看法垂攘?漸進增強優(yōu)雅降級是什么意思?
  1. 根據(jù)項目需求淤刃,當(dāng)客戶需要兼容低版本瀏覽器時晒他,那我們就需要針對這個需求去做兼容處理,一般低版本瀏覽器不可能兼容到顯示達到完美逸贾,我們只需要保證不影響正常功能使用和基本布局不亂就行了陨仅。在可以溝通的情況下可以盡量說服客戶放棄IE6/7

  2. 漸進增強:一開始只構(gòu)建站點的最少特性,然后不斷針對各瀏覽器追加功能铝侵。
    優(yōu)雅降級:一開始就構(gòu)建站點的完整功能灼伤,然后針對瀏覽器測試和修復(fù)

reset.css和normalize.css分別是做什么的?為什么推薦使用 nomalize.css?
  1. reset.css和normalize.css分別是做什么的哟沫?
  • reset.css:在HTML標(biāo)簽在瀏覽器里有默認(rèn)的樣式饺蔑,例如 p 標(biāo)簽有上下邊距,strong標(biāo)簽有字體加粗樣式嗜诀,em標(biāo)簽有字體傾斜樣式猾警。不同瀏覽器的默認(rèn)樣式之間也會有差別孔祸,例如ul默認(rèn)帶有縮進的樣式,在IE下发皿,它的縮進是通過margin實現(xiàn)的崔慧,而Firefox下,它的縮進是由padding實現(xiàn)的穴墅。在切換頁面的時候惶室,瀏覽器的默認(rèn)樣式往往會給我們帶來麻煩,影響開發(fā)效率玄货。所以解決的方法就是一開始就將瀏覽器的默認(rèn)樣式全部去掉皇钞,更準(zhǔn)確說就是通過重新定義標(biāo)簽樣式∷勺剑“覆蓋”瀏覽器的CSS默認(rèn)屬性夹界。最最簡單的說法就是把瀏覽器提供的默認(rèn)樣式覆蓋掉!這就是CSS reset隘世。

  • normalize.css:Normalize.css是一種CSS reset的替代方案可柿。
    有下面這幾個目的:

    • 保護有用的瀏覽器默認(rèn)樣式而不是完全去掉它們
    • 一般化的樣式:為大部分HTML元素提供
    • 修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性
    • 優(yōu)化CSS可用性:用一些小技巧
    • 解釋代碼:用注釋和詳細的文檔來
      支持包括手機瀏覽器在內(nèi)的超多瀏覽器,同時對HTML5元素丙者、排版复斥、列表、嵌入的內(nèi)容械媒、表單和表格都進行了一般化目锭。盡管這個項目基于一般化的原則,但我們還是在合適的地方使用了更實用的默認(rèn)值滥沫。
  1. 為什么推薦使用 nomalize.css?
  • Normalize.css 保護了有價值的默認(rèn)值
  • Normalize.css 修復(fù)了瀏覽器的bug
  • Normalize.css 不會讓你的調(diào)試工具變的雜亂
  • Normalize.css 是模塊化的
  • Normalize.css 擁有詳細的文檔

參考

IE盒模型和標(biāo)準(zhǔn)盒模型有什么區(qū)別? 怎樣使 IE7侣集、8使用標(biāo)準(zhǔn)盒模型?box-sizing:border-box有什么作用
  1. 從下圖可以看到標(biāo)準(zhǔn) W3C 盒子模型的范圍包括 margin、border兰绣、padding世分、content,并且 content 部分不包含其他部分缀辩。

    1.jpg

    從下圖可以看到** IE 盒子模型**的范圍也包括 margin臭埋、border、padding臀玄、content瓢阴,和標(biāo)準(zhǔn) W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。
    2.jpg

    參考

  2. IE6健无、7荣恐、8添加文檔聲明(doctype)即可使用標(biāo)準(zhǔn)盒模型。

  3. box-sizing:border-box;是CSS3新增屬性,了解這個屬性叠穆,我們先從塊級元素的盒子大小說起少漆。
    通常一個標(biāo)準(zhǔn)盒模型下的塊級元素實際所占寬高度=外邊距(margin)+ 邊界寬度(border-width) + 內(nèi)邊距(padding)+ 高度(height) / 寬度(width);
    如果設(shè)置了border-box硼被,實際所占寬高度 = 設(shè)置的高度(height)/ 設(shè)置的寬度(width)+ 外邊距(margin)示损。
    這個屬性多用于排版問題,很多情況下很實用嚷硫,簡化了計算位置的問題检访。

二、 操作

因電腦配置問題仔掸,暫時沒有安裝虛擬機脆贵。

本教程版權(quán)歸作者和饑人谷所有,轉(zhuǎn)載須說明來源嘉汰!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丹禀,一起剝皮案震驚了整個濱河市状勤,隨后出現(xiàn)的幾起案子鞋怀,更是在濱河造成了極大的恐慌,老刑警劉巖持搜,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件密似,死亡現(xiàn)場離奇詭異,居然都是意外死亡葫盼,警方通過查閱死者的電腦和手機残腌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贫导,“玉大人抛猫,你說我怎么就攤上這事『⒌疲” “怎么了闺金?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長峰档。 經(jīng)常有香客問我败匹,道長,這世上最難降的妖魔是什么讥巡? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任掀亩,我火速辦了婚禮,結(jié)果婚禮上欢顷,老公的妹妹穿的比我還像新娘槽棍。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布炼七。 她就那樣靜靜地躺著外里,像睡著了一般。 火紅的嫁衣襯著肌膚如雪特石。 梳的紋絲不亂的頭發(fā)上盅蝗,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音姆蘸,去河邊找鬼墩莫。 笑死,一個胖子當(dāng)著我的面吹牛逞敷,可吹牛的內(nèi)容都是我干的狂秦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼推捐,長吁一口氣:“原來是場噩夢啊……” “哼裂问!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牛柒,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤堪簿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后皮壁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椭更,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年蛾魄,在試婚紗的時候發(fā)現(xiàn)自己被綠了虑瀑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡滴须,死狀恐怖舌狗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扔水,我是刑警寧澤痛侍,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站铭污,受9級特大地震影響恋日,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘹狞,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一岂膳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧磅网,春花似錦谈截、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毙死。三九已至,卻和暖如春喻鳄,著一層夾襖步出監(jiān)牢的瞬間扼倘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工除呵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留再菊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓颜曾,卻偏偏與公主長得像纠拔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泛豪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案稠诲? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,728評論 1 92
  • 一、如何調(diào)試 IE 瀏覽器 IE7以上版本自帶的開發(fā)者工具诡曙,IE6可以用border的方法臀叙;例:IE11的開發(fā)者工...
    __Qiao閱讀 1,121評論 2 17
  • 一、問答部分: 1. 如何調(diào)試 IE 瀏覽器? 如果是IE7版本以上可以使用自帶的開發(fā)者工具岗仑,按F12匹耕,即可打開:...
    小木子2016閱讀 520評論 0 0
  • 一、問答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺荠雕,可以按F12啟動。Paste_Image.p...
    _hello__world_閱讀 457評論 0 1
  • 做UI的時候我們可能想給某個Label添加一個背景圖片驶赏,但查看的時候會發(fā)現(xiàn)好像只有設(shè)置背景顏色的方法炸卑,不過我們也可...
    閑云悠鶴蝶戀舞閱讀 2,893評論 0 1