瀏覽器兼容

什么是 CSS hack

CSS hack就是使你的CSS代碼兼容不同的瀏覽器。
CSS hack大致有3種表現(xiàn)形式,CSS類內(nèi)部Hack、選擇器Hack以及HTML頭部引用(if IE)Hack。
CSS hack主要針對類內(nèi)部Hack

談一談瀏覽器兼容的思路

  1. 針對目標(biāo)客戶群體考慮,要不要實現(xiàn)瀏覽器兼容。比如是面向年輕群體,還是面向政府或單位部門。
  2. 實現(xiàn)難度和成本考慮,比較一下投入產(chǎn)出比。
  3. 綜合考量需要做到什么瀏覽器什么版本的兼容,比如兼容到IE7 還是IE6
  4. 根據(jù)兼容需求選用框架
    例如
    Bootstrap (>=ie8)
    jQuery 1.~ (>=ie6), jQuery 2.~ (>=ie9)
    Vue (>= ie9)
  5. 根據(jù)兼容需求選擇兼容工具(html5shiv.js、respond.js、css reset、normalize.css、Modernizr)
    postCSS。
  6. 利用條件注釋、CSS Hack、js 能力檢測做一些修補(bǔ)。

列舉5種以上瀏覽器兼容的寫法

條件注釋法
    <!--[if IE 6]>
    <p>You are using Internet Explorer 6.</p>
    <![endif]-->
    <!--[if !IE]><!-->
    <script>alert(1);</script>
    <!--<![endif]-->
    <!--[if IE 8]>
    <link href="ie8only.css" rel="stylesheet">
    <![endif]-->
屬性前綴法
.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}
條件注釋結(jié)合html5shiv.js和respond.js工具
 <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
Modernizr工具
<html class=" js no-flexbox canvas canvastext no-webgl no-touch geolocation 
              postmessage no-websqldatabase no-indexeddb hashchange no-history 
        draganddrop no-websockets rgba hsla multiplebgs backgroundsize 
        no-borderimage borderradius boxshadow no-textshadow opacity 
        no-cssanimations no-csscolumns no-cssgradients no-cssreflections
        csstransforms no-csstransforms3d no-csstransitions fontface 
        generatedcontent video audio localstorage sessionstorage 
        no-webworkers no-applicationcache svg inlinesvg smil svgclippaths">
瀏覽器兼容寫法
transition: transform 1s;
-moz-transition: transform 1s; /* Firefox 4 */
-webkit-transition: transform 1s; /* Safari 和 Chrome */
-o-transition: transform 1s; /* Opera */

以下工具/名詞是做什么的

條件注釋
條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語句。條件注釋可被用來向IE提供及隱藏代碼。
IE Hack
為了兼容IE系列瀏覽器的CSS hack。
js 能力檢測
使用JS檢測瀏覽器是否支持特定的功能來確定解決方案
html5shiv.js
使用html5的時候,有些瀏覽器不支持h5的一些新特性和標(biāo)簽,需要用這個html5shiv.js來模擬這些標(biāo)簽
respond.js
Respond.js 是一個小腳本,用于為 IE6-8 以及其它不支持 CSS3 媒體查詢功能的瀏覽器提供媒體查詢的 min-width 和 max-width 特性,實現(xiàn)響應(yīng)式網(wǎng)頁設(shè)計。
css reset
將瀏覽器的默認(rèn)樣式全部去掉,更準(zhǔn)確說就是通過重新定義標(biāo)簽樣式?!案采w”瀏覽器的CSS默認(rèn)屬性。
normalize.css
Normalize.css 是一個可以定制的CSS文件,它讓不同的瀏覽器在渲染網(wǎng)頁元素的時候形式更統(tǒng)一。是溫柔版的css reset。它的特性:

  • 保護(hù)有用的瀏覽器默認(rèn)樣式而不是完全去掉它們
  • 一般化的樣式:為大部分HTML元素提供
  • 修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性
  • 優(yōu)化CSS可用性:用一些小技巧
  • 解釋代碼:用注釋和詳細(xì)的文檔來

Modernizr
Modernizr是一個JavaScript庫,用來檢測瀏覽器是否支持HTML5和CSS3特性,在根元素添加相應(yīng)類名來實現(xiàn)瀏覽器兼容。
postCSS
是一個使用 JS 插件來轉(zhuǎn)換 CSS 的工具。這些插件可以支持使用變量,混入(mixin),轉(zhuǎn)換未來的 CSS 語法,內(nèi)聯(lián)圖片等操作。ostCSS 的插件可以實現(xiàn)預(yù)處理器的功能;它們還可以優(yōu)化并且自動給代碼添加各種前綴;它們可以添加未來語法的支持,還可以提示代碼檢查的功能,它們可以處理變量和代碼邏輯,可以提供完整的網(wǎng)格系統(tǒng);還可以提供代碼縮寫... ... 等各種各樣的操作。

一般在哪個網(wǎng)站查詢屬性兼容性?

CSS兼容查詢

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

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

  • CSS Hack 不同的瀏覽器對某些CSS代碼解析會存在一定的差異,因此就會導(dǎo)致不同瀏覽器下給用戶展示的頁面效果不...
    zx9426閱讀 476評論 0 0
  • 一、如何調(diào)試 IE 瀏覽器? IE調(diào)試的一般方法(css): 使用高版本IE控制臺(對于IE7以上)IE11的開發(fā)...
    婷樓沐熙閱讀 607評論 0 6
  • 什么是 CSS hack 由于不同廠商的瀏覽器,比如Internet Explorer,Safari,Mozill...
    阿魯提爾閱讀 314評論 0 2
  • 什么是 CSS hack 由于不同廠商的瀏覽器,比如Internet Explorer,Safari,Mozill...
    liushaung閱讀 350評論 0 2
  • 什么是CSS hack CSS hack由于不同廠商的瀏覽器,比如Internet Explorer,Safari...
    尾巴尾巴尾巴閱讀 895評論 0 0

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