一.什么是CSS hack。
瀏覽器兼容,不同的瀏覽器兼容性不同,對css的解析也不同,有些能夠識別一些特定的符號(例如IE67能識別* _)所以可以通過在一些css樣式里面加一些特定的符號,讓不同的瀏覽器都能夠識別這個屬性。
二.談一談瀏覽器兼容的思路。
1.考慮產(chǎn)品的受眾,如果是政府等機關(guān)使用,則要考慮ie67等老瀏覽器的兼容,如果是比較年輕時髦的產(chǎn)品,則多注重新版本瀏覽器的兼容。
2.考慮成本以及老板的要求
3.要考慮具體兼容到哪些瀏覽器,哪個版本。
4.是選擇漸進增加還是優(yōu)雅降級
5.根據(jù)瀏覽器的兼容選擇具體使用的框架,工具
三.列舉5種以上瀏覽器兼容的寫法
1.屬性前綴:color:red(ie6能識別和_,ie7能識別*)
2.選擇器前綴: *div{color:red}
3.color:yellow/9(ie6-8)
4.條件注釋
項目 范例 說明
! [if !IE] 非IE
lt [if lt IE 5.5] 小于IE 5.5
lte [if lte IE 6] 小于等于IE6
gt [if gt IE 5] 大于 IE5
gte [if gte IE 7] 大于等于IE7
| [if (IE 6)|(IE 7)] IE6或者IE7
5.偽元素兼容:
.box:after{
content: "";
display: block;
clear: both;
}
.box{
*zoom: 1;
}
6.<!DOCTYPE html>
<html dir="ltr" lang="en-US" class="no-js">
四.以下工具/名詞是做什么的
1.條件注釋:可兼容于ie10以下的版本,通過對IE版本進行條件的注釋來告訴瀏覽器渲染哪條屬性。
2.IE hack:針對IE瀏覽器編寫不同的CSS的讓IE能夠正常渲染的過程
3.js 能力檢測:通過特定的文件對瀏覽器的能力進行檢測,從而得知該瀏覽器的兼容性,然后解決該瀏覽器兼容的辦法。
4,html5shiv.js:用于解決IE9以下版本瀏覽器對HTML5新增標簽不識別,并導致CSS不起作用的問題。
5.respond.js:Respond.js 是一個快速、輕量的 polyfill,用于為 IE6-8 以及其它不支持 CSS3 Media Queries 的瀏覽器提供媒體查詢的 min-width 和 max-width
6.css reset:Reset重置瀏覽器的css默認屬性 瀏覽器的品種不同,樣式不同,然后重置,讓他們統(tǒng)一.
7.normalize.css:對幾乎所有的默認樣式進行重置,讓所有的瀏覽器上對于未定義的樣式瀏覽效果達到一致(雖然說無法完全一致,但至少可以消除掉大部分差距)
8.Modernizr:Modernizr 使你可以方便地為各種情況編寫 JavaScript 和 CSS,無論瀏覽器是否支持這些特性。這是處理漸進增強的完美方案。
Modernizr 會在頁面加載后立即檢測特性;然后創(chuàng)建一個包含檢測結(jié)果的 JavaScript 對象,同時在 html 元素加入方便你調(diào)整 CSS 的 class 名。
9.postCSS:它可以被理解為一個平臺,可以讓一些插件在上面跑,它提供了一個解析器,可以將CSS解析成抽象語法樹,通過PostCSS這個平臺,我們能夠開發(fā)一些插件,來處理CSS。熱門插件如autoprefixer,它可以幫我們處理兼容問題,只需正常寫CSS,autoprefixer可以幫我的自動生成兼容性代碼。
五.一般在哪個網(wǎng)站查詢屬性兼容性?
caniuse.com