flex佈局的使用,記念第一次開發手機網站

一直專一於PC網站的開發,未曾接觸手機網站,於今日機緣巧合也是公司業務須要,並在以前學習過flex的佈局,因而一併實踐。碰到的問題仍是不少的,主要是談談flex佈局。css

 

flex佈局是css3裏的內容,一種新的佈局方式,也稱之爲 彈性佈局,主要是爲了取代 inline-bolck  和float 爲總佈局。固然,這兩種佈局仍是有各自的優點的,畢竟存在就有他的理由。html

 

歷史進程是  box-->flexbox --> flexhtml5

 

因爲是在谷歌調試,因此很理所固然的覺得手機上的瀏覽器都是支持html5+css3的因而就有一段版本css3

 1 display: flex; 2 justify-content: space-between; 3 align-items:center; web

等等瀏覽器

http://www.responsinator.com/ 等測試網站表現得挺滿意的less

 

拿到真機上測,不管蘋果仍是安卓佈局全亂了。後來才知道在蘋果上運行須要加前綴,由於瀏覽器都是-webkit-內核的,主要是由於還沒實現標準化,都是私有屬性,因而有了下面的寫法佈局

display: -webkit-flex; 
display: flex;
-webkit-justify-content:
space-between; 
justify-content: space-between; 
-webkit-align-items:center;
align-items:center;

嗯,蘋果上表現得至關不錯,我用的4,除了屏幕小了點其餘仍是能夠接受的。學習

拿到安卓上,呵呵,基本上公司的安卓機全軍覆沒,佈局沒有一點改變。測試機器通常都是近些時候的,最久的話也是1-2年前的機器。後來才知道原來是根本不是識別flex佈局,只能用box(也就是很早以前的語法)來解決,就獲得了以下的寫法測試

 1 .display_flex(){
 2     display: -webkit-box;
 3     display: -webkit-flex;
 4     display: flex;
 5 }
 6 .justify(){
 7      -webkit-justify-content: space-between;
 8     -webkit-box-pack:justify;
 9     justify-content: space-between;   
10 }
11 .justify(@ju)
12 {
13     -webkit-justify-content: @ju;
14     -webkit-box-pack:@ju;
15     justify-content: @ju;   
16 }
17 
18 .align(@align)
19 {
20     -webkit-box-align:@align;
21     -webkit-align-items: @align;
22     align-items: @align;    
23 }
24 .flex-flow-column(){
25     -webkit-box-orient:block-axis;
26     -webkit-flex-flow: column nowrap;  
27     flex-flow: column nowrap;  
28 }
29 .flex(@f){
30     -webkit-box-flex:@f;
31     -webkit-flex: @f;   
32     flex: @f;
33 }

注:這是less的寫法(我學的不是很好)

不過中間有些遺憾新的flex裏有一種叫作「超出自動換行」的功能,box裏也有相似的屬性,可是全部的瀏覽器都不支持,因此只能選擇其餘的佈局(如前面提到的float)來代替。

 

總結:

  flex的佈局基本都是考慮內核,PC上不是很推薦,由於國內大都要兼容IE7-8,能夠考慮在移動端使用(畢竟只有安卓和蘋果)。總而言之這種佈局仍是挺不錯的,有學習的必要,像他們說的html5+css3必是將來的主流方向。

 

若有更好的解決方案望請不吝賜教,謝謝。

 

引用的資料:

http://www.w3cplus.com/css3/using-flexbox.html  (舊的box)

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html (新的flex)

相關文章
相關標籤/搜索