提到響應式,就不得不提兩個響應式框架——bootstrap和foundation。今天給大家介紹的是foundation框架。 何為“嘗鮮”?就是帶大伙初步瞭解一下foundation的靈活和強大; 何為“踩坑”?就是我把我使用的時候踩過的坑給標個記號,這樣大伙用的時候就可以“繞道而行“啦! ...
提到響應式,就不得不提兩個響應式框架——bootstrap和foundation。在標題上我已經說明白啦,今天給大家介紹的是foundation框架。 何為“嘗鮮”?就是帶大伙初步一下foundation的靈活和強大 何為“踩坑”?就是我把我使用的時候踩過的坑給標個記號,這樣大伙用的時候就可以“繞道而行“啦!
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429145800053-280033129.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429145446022-707353467.png)
【註意】在這篇文章中我採取的是React框架的寫法,可能有些影響閱讀,請多多包涵,className等同於class, style= {{background:'red'}}等同於 style = "background:red",可放心食用
【準備工作】 把下麵這兩個東西寫在你的html文件里:
<link rel="stylesheet" href="http://cdn.staticfile.org/foundation/6.3.0-rc3/css/foundation.min.css">(放在head標簽內)
<script src="http://cdn.staticfile.org/jquery/3.1.1/jquery.min.js"></script>(放在body底部)
1. foundation 網格佈局之行列柵格 (row and column)
<div className = 'row'> <div className = 'small-2 medium-6 large-10 columns' style = {{background:'red'}}>column1</div> <div className = 'small-10 medium-6 large-2 columns' style = {{background:'blue'}}>column2</div> </div>在一個行父級元素下有多個列子元素,列子元素按網格分長度。網格總共分為為12列,如你所見對於small 2 + 10 = 12,對於medium 6 + 6 =12 ... 你需要做的事情很簡單:在行父級元素上寫入className = 'row',在列各個子元素中寫入[size]-數字,同時讓各個數字之和為12即可,上述是兩列的情況,如果有三列則可為small-2,small,small-8,small-2(和為12),一般為12,下麵也會介紹可以不為12的情況,很簡單!對吧! 【註意】:你一定要記得在列子元素className後面寫入columns!(這應該是很多新手會犯的錯誤) demo: 大型設備:(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429145925225-549672715.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429145945522-220003734.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429145955319-996238677.png)
<div className = 'row'> <div className = 'small-6 columns' style = {{background:'red'}}>column1</div> <div className = 'small-6 columns' style = {{background:'blue'}}>column2</div> </div>demo: 小型設備:(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150201975-1993828494.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150201975-1993828494.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150201975-1993828494.png)
<div className = 'row'> <div className = 'large-6 columns' style = {{background:'red'}}>column1</div> <div className = 'large-6 columns' style = {{background:'blue'}}>column2</div> </div>在小型設備和中型設備上:(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150356569-1418996429.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150505584-816559926.png)
<div className = 'row' > <div className = 'large-6 columns' style = {{background:'red'}}>column1</div> <div className = 'large-6 columns' style = {{background:'blue'}}>column2</div> </div>demo:(大型設備最寬屏)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150201975-1993828494.png)
<div className = 'row' style = {{maxWidth:'100%'}}> <div className = 'small-3 columns' style = {{background:'red'}}>column1</div> <div className = 'small-3 columns' style = {{background:'blue'}}>column2</div> <div className = 'small-3 columns' style = {{background:'yellow'}}>column2</div> </div>
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150804365-1233794766.png)
<div className = 'row' style = {{maxWidth:'100%'}}> <div className = 'small-3 columns' style = {{background:'red'}}>column1</div> <div className = 'small-3 columns' style = {{background:'blue'}}>column2</div> <div className = 'small-3 columns end' style = {{background:'yellow'}}>column3</div> </div>demo:(總共占全屏75%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150844490-1075569462.png)
<div className = 'row'> <div className = 'small-6 small-centered columns' style = {{background:'red'}}>column1</div> </div>demo:(小型設備上)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150941069-1629988942.png)
猜猜看在中型和大型設備上會怎麼樣?沒錯!跟前面一樣,medium和large“繼承”了small的居中特性!於是在中/大設備中你“被居中”了。 what the hack! 但如果我硬是不想在中/大型設備上被居中的話怎麼辦?你只能這樣寫:加入size-uncentered
<div className = 'row'> <div className = 'small-6 small-centered medium-uncentered large-uncentered columns' style = {{background:'red'}}>demo:(中/大型設備上)(單行占全屏50%)
column1
</div> </div>
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429150958756-906557271.png)
<div className = 'row small-up-2 medium-up-3 large-up-4' style = {{maxWidth:'100%'}}> <div className = 'columns column-block' style ={{minHeight:'20px',background:'grey'}}></div> <div className = 'columns column-block' style ={{minHeight:'20px',background:'blue'}}></div> <div className = 'columns column-block' style ={{minHeight:'20px',background:'red'}}></div> <div className = 'columns column-block' style ={{minHeight:'20px',background:'yellow'}}></div> <div className = 'columns column-block' style ={{minHeight:'20px',background:'black'}}></div> <div className = 'columns column-block' style ={{minHeight:'20px',background:'orange'}}></div> </div>依然是在父級元素和子元素中添加row和columns類名。同時,在父級元素裡面寫入:size-up-number:number表示每一行最大的塊數,在塊子元素裡面寫入:columns column-block demo: 大型設備:(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151121944-534176070.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151139740-911566489.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151148756-1807833355.png)
<div className = 'row small-up-2 medium-up-3 large-up-4' style = {{maxWidth:'100%'}}> <div className = 'columns ' style ={{minHeight:'20px',background:'grey'}}></div> <div className = 'columns ' style ={{minHeight:'20px',background:'blue'}}></div> <div className = 'columns ' style ={{minHeight:'20px',background:'red'}}></div> <div className = 'columns ' style ={{minHeight:'20px',background:'yellow'}}></div> <div className = 'columns ' style ={{minHeight:'20px',background:'black'}}></div> <div className = 'columns ' style ={{minHeight:'20px',background:'orange'}}></div> </div>在中型設備上:(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151355100-2121912941.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151412272-648322352.png)
經過試驗證明,在所有上述和下麵的例子中,無論你寫的類名是column還是columns效果都是一樣的.... _(:3 」∠)_ 2.3坑點三:在塊級柵格中,你無法用“small-6 medium-4 large-2 ”的行列柵格的寫法定義每個柵格的寬度 塊級柵格很好的一點就是解決了行列柵格只能實現行列柵格只能在單行實現自適應佈局的局限性,於是我們想,能不能把兩個東西結合到一起呢?很可惜,不能!我們把兩種寫法結合在一起,寫成:
<div className = 'row small-up-2 medium-up-3 large-up-4' style = {{maxWidth:'100%'}}> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'grey'}}></div> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'blue'}}></div> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'red'}}></div> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'yellow'}}></div> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'black'}}></div> <div className = 'small-3 columns' style ={{minHeight:'20px',background:'orange'}}></div> </div>如果這種寫法能夠成功,那麼按照我們的設想,在小型屏上,因為small-up-2而單行顯示兩個柵格塊,同時每個柵格所占位置應該是3/12 = 1/4,兩個柵格一共占去屏幕的1/4+1/4 =1/2,為50%,讓我們看看demo: demo:(小型屏幕)(單行占全屏100%)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151444553-333320374.png)
<div className = 'row small-up-2 medium-up-3 large-up-4' style = {{maxmaxWidth:'100%'}}> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'grey'}}></div> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'blue'}}></div> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'red'}}></div> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'yellow'}}></div> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'black'}}></div> <div className = ' columns ' style ={{width:'25%',minHeight:'20px',background:'orange'}}></div> </div>demo:小型屏
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151520944-1954098797.png)
<div> <p className = 'show-for-small'>我在小/中/大型屏幕顯示</p> <p className = 'show-for-medium'>我在中大型屏幕顯示</p> <p className = 'show-for-large'>我在大型屏幕顯示</p> </div>demo: 大型屏幕:
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151550897-1207517947.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151601459-1140612119.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151611881-1654150494.png)
<div> <p className = 'show-for-small-only'>我只在小型屏幕顯示</p> <p className = 'show-for-medium-only'>我只在中型屏幕顯示</p> <p className = 'show-for-large-only'>我只在大型屏幕顯示</p> </div>demo: 大型屏幕:
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151626631-240307282.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151632740-70584123.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151638100-1162910645.png)
<div className = 'row'> <p className = 'float-left'>float-left</p> <p className = 'float-right'>float-right</p> </div>demo:
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151646537-551120477.png)
最後一點:附上菜鳥教程和官方文檔的鏈接:
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151703006-360569111.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151712100-1406478521.png)
![](http://images2015.cnblogs.com/blog/1060770/201704/1060770-20170429151730225-1230742739.png)
最後最後的一點