入門12

4331 ワード

CSS hackとは

  • CSS hackインターネットエクスプローラ、Safari、Mozilla Firefox、Chromeなど、異なるメーカーのブラウザ、または同じメーカーのブラウザの異なるバージョン、例えばIE 6とIE 7では、CSSの解析認識が全く同じではないため、生成されたページの効果が異なり、私たちが必要とするページの効果が得られません.この时、私达は异なるブラウザに対して异なるCSSを书く必要があって、それが同时に异なるブラウザに対応することができて、异なるブラウザの中で私达の望むページの効果を得ることができます.

  • ブラウザの互換性についてお話しします

  • やるかどうか
  • 製品の角度
  • 製品の視聴者、例えば若いグループ向けか、政府や部門向けか
  • 参加者のブラウザ比率
  • 効果優先か基本機能優先か
  • 実現難易度とコストを考慮し、投入産出比
  • を比較する.
  • どこまで
  • は、IE 7に互換性があるか、IE 6
  • に互換性があるかを総合的に考慮しています.
  • どうしますか?
  • 優雅な降格か漸進的な増強か
  • 互換性要件に基づいて技術フレームワーク/ライブラリ(jquery)
  • を選択する
  • 互換性ニーズに応じて互換性ツール(html 5 shiv.js、respond.js、css reset、normalize.css、Modernizr)
  • を選択
  • postCSS
  • 条件注釈、CSS Hack、js能力検査を利用していくつかの補修
  • を行う.

    ブラウザ対応の書き方を5つ以上挙げます


    IE条件コメント法

  • 条件注釈(conditional comment):IE 6〜9の脆弱性(特定の注釈を識別可能)を利用してIEの各バージョンを区別したり、IEと非IEを区別したりするcss hack技術.
  •   IE   
    
    
      IE6   
    
    
      IE6      
    
    
      IE8    
    
    
     IE     
    
    
  • 条件コメントを使用したページはWindows IE 9-で正常に動作するが、IE 10は条件コメント
  • をサポートしないため、IE 10+で正常に動作しない.

    CSS属性接頭辞法

    .hack{  
        /*demo1 */  
        /*demo1     ,  IE6/7         ,           */  
        background-color: red; /* All browsers */  
        background-color: blue !important;/* All browsers but IE6 */  
        *background-color: black; /* IE6, IE7 */  
        +background-color: yellow;/* IE6, IE7*/  
        background-color: gray\9; /* IE6, IE7, IE8, IE9, IE10 */  
        background-color: purple\0; /* IE8, IE9, IE10 */  
        background-color: orange\9\0;/*IE9, IE10*/  
        _background-color: green; /* Only works in IE6 */  
        *+background-color: pink; /*  WARNING: Only works in IE7 ? Is it right? */  
    }  
    .hacktest{   
        background-color: blue;      /*    ,    firefox */  
        background-color: red\9;      /*all ie*/  
        background-color: yellow\0;    /*for IE8/IE9/10    opera   */  
        +background-color: pink;        /*for ie6/7*/  
        _background-color: orange;       /*for ie6*/  
    }
    

    ブラウザのプライベート接頭辞の追加

    -webkit-border-radius: 50%; // chrome
    -o-border-radius: 50%; // opera
    -moz-border-radius: 50%; // FixFore
    -ms-border-radius: 50%; // IE edge
    

    セレクタ接頭辞法

    *html *    IE6  
    *+html *+    IE7  
    @media screen\9{...}  IE6/7  
    @media \0screen {body { background: red; }}  IE8  
    @media \0screen\,screen\9{body { background: blue; }}  IE6/7/8  
    @media screen\0 {body { background: green; }}   IE8/9/10  
    @media screen and (min-width:0\0) {body { background: gray; }}   IE9/10  
    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }}   IE10  
    

    Modernizの使用


    以下のツール/名詞は何をしていますか。


    条件コメント

  • IE 6~9の脆弱性(特定の注釈を識別可能)を利用してIEの各バージョンを区別したり、IEと非IEを区別したりするcss hack技術.

  • IE Hack

  • とは、IEブラウザの脆弱性を利用してIEの低バージョンを互換化することを指し、CSS属性接頭辞法、セレクタ接頭辞法およびIE条件注釈法
  • がある.

    js能力検出

  • JSの構文を使用してブラウザでサポートされている属性とメソッドを検出します.

  • html5shiv.js

  • 互換ツール.導入後、html 5タグ
  • をIE 6~8(html 5タグはサポートされていない)でシミュレートすることができる.

    respond.js

  • 互換ツール.導入後IE 6~8(css 3はサポートされていない)上でCSS 3 Media Queries
  • をシミュレートする

    css reset

  • 互換性ツールは、すべてのブラウザのデフォルトスタイルをリセットし、すべてをゼロにすることを考えています.

  • normalize.css

  • 互換ツール.導入後、ブラウザ間での高度な一貫性をデフォルトのHTML要素スタイルで提供できます.従来のCSS resetに比べてNormalize.cssは現代的でHTML 5のために用意された良質な代替案である.

  • Modernizr

  • Modernizrは、ユーザーブラウザのHTML 5とCSS 3の特性を検出するJavaScriptライブラリです.このツールは、ブラウザのhtmlラベルにcssのclass名を生成し、現在のブラウザでサポートされているプロパティとサポートされていないプロパティをマークします.htmlラベルのクラス名を使用すると、異なるバージョンの異なるブラウザに互換性のあるスタイルを追加できます.使用時にCDNリンクを直接導入すればよい.

  • postCSS

  • それは1つのプラットフォームとして理解することができて、いくつかのプラグインを上で走ることができて、それは1つの解析器を提供して、CSSを抽象的な文法の木に解析することができて、PostCSSというプラットフォームを通じて、私达はいくつかのプラグインを開発して、CSSを処理することができます.人気のあるプラグインはautoprefixerのように、互換性の問題を処理することができます.CSSを正常に書くだけで、autoprefixerは互換性コード
  • を自動的に生成することができます.

    一般的にどのサイトで属性互換性を調べますか?

  • クエリCSS属性互換
  • クエリhack書き方