首頁 > web前端 > css教學 > 深入理解CSS系列之flex相容

深入理解CSS系列之flex相容

巴扎黑
發布: 2017-05-21 10:46:41
原創
1492 人瀏覽過

隨著自己寫過的頁面的增多,也遇到了許多CSS相容性的問題。這些相容性問題,都是必然的,因為技術不斷進步,那麼為了不被淘汰,我們就要做些相容性處理。這篇文章主要介紹了CSS中flex的兼容,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

我寫頁面的時候用過很多的flex佈局,覺得非常好用。以下附上一篇不錯的flex版面介紹的文章。

Flex 佈局教學想了解的可以自己去看看這篇博文,或者自己百度,這裡先部多做介紹,我們主要來說一說flex佈局的兼容性問題。

why?

大家可能想問了,flex佈局為什麼會有相容性問題啊?

之所以有相容性問題,是因為技術不斷的更新,有些舊的瀏覽器只支援舊語法的書寫方式,所以就出現所謂的相容性問題。

what?

那麼新舊版本是什麼?

flex佈局分為舊版dispaly: box;,過渡版本dispaly: flex box;,以及現在的標準版本display: flex;。所以如果你只是寫新版本的語法形式,是肯定有相容性問題的。

Android

     2.3 開始就支援舊版display:-webkit-box;

     4.4 開始支援標準版display : flex;

IOS

     6.1 開始支援舊版display:-webkit-box;

##     7.1開始支援標準版本display: flex;


PC

#ie10開始支持,但IE10的是-ms形式的。


下面是各個瀏覽器的支援情況

#how?

所以我們該如何進行相容性的寫法呢?

盒子的相容性寫法


.box{
    display: -webkit-box;  /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */
    display: -moz-box;     /* 老版本语法: Firefox (buggy) */
    display: -ms-flexbox;  /* 混合版本语法: IE 10 */
    display: -webkit-flex; /* 新版本语法: Chrome 21+ */
    display: flex;         /* 新版本语法: Opera 12.1, Firefox 22+ */
}
登入後複製

子元素的相容性寫法


.flex1 {  
    -webkit-box-flex: 1   /* OLD - iOS 6-, Safari 3.1-6 */  
    -moz-box-flex: 1;     /* OLD - Firefox 19- */              
    -webkit-flex: 1;      /* Chrome */  
    -ms-flex: 1           /* IE 10 */  
    flex: 1;              /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
登入後複製

這種相容寫法不一定起效的。尤其是在底版本安卓系統。因為什麼呢?因為所有都是向下相容的,所以寫法的順序一定要寫好了才起作用。就是把舊語法寫在底下,個別不相容的移動設定才會識別,哪些是舊的語法,你懂的。那些帶box的一定要寫在最下面即可。


所以上面的相容寫法應該是這樣的才對:


.box{

    display: -webkit-flex;  /* 新版本语法: Chrome 21+ */
    display: flex;          /* 新版本语法: Opera 12.1, Firefox 22+ */
    display: -webkit-box;   /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */
    display: -moz-box;      /* 老版本语法: Firefox (buggy) */
    display: -ms-flexbox;   /* 混合版本语法: IE 10 */   

 }

.flex1 {            
    -webkit-flex: 1;        /* Chrome */  
    -ms-flex: 1             /* IE 10 */  
    flex: 1;                /* NEW, Spec - Opera 12.1, Firefox 20+ */
    -webkit-box-flex: 1     /* OLD - iOS 6-, Safari 3.1-6 */  
    -moz-box-flex: 1;       /* OLD - Firefox 19- */       
}
登入後複製

以上是深入理解CSS系列之flex相容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板