在移動設(shè)備上,屏幕寬度狹窄,因此通常不使用多欄布局,但是有時你可能需要將小的元素(如按鈕或并排導(dǎo)航標簽,例如)多列排列在一起。Jquery Mobile 框架提供了一種簡單的方法構(gòu)建基于css 的分欄布局,叫做ui-grid
Jquery Mobile 提供有四個預(yù)設(shè)的布局,可以在任何情況下都需要列
- 兩列(使用ui-grid-a類)
- 三列(使用ui-grid-b類)
- 四列(使用ui-grid-c類)
- 五列(使用ui-grid-d類)
網(wǎng)格是100%的寬度,完全看不見的(沒有邊界或背景)和沒有margin或padding,所以他們不會干擾樣式的元素放在他們里面。在網(wǎng)格容器,子元素被分配ui-block-a / b / c/ d 以連續(xù)的方式,使每個“塊”元素浮動并列,形成網(wǎng)格。其中ui-block-a類基本上清除浮將開始新的一行(見多行的網(wǎng)格,在下面)。
ui-grid-a 兩列布局
建立個兩列(50 / 50%)布局,第一層(父容器)添加ui-grid-a屬性,第二層(兩個子容器)里面分別添加ui-block-a和ui-block-b:
<div class="ui-grid-a"> <div class="ui-block-a"><strong>I'm Block A</strong> and text inside will wrap</div> <div class="ui-block-b"><strong>I'm Block B</strong> and text inside will wrap</div></div><!-- /grid-a -->
上述標記產(chǎn)生以下內(nèi)容布局:
正如你看到的,缺省情況下網(wǎng)格沒有視覺造型;他們只是呈現(xiàn)內(nèi)容并排。
網(wǎng)格的類可以被應(yīng)用到任何容器。在下一個例子中,我們添加一個ui-grid-a,并應(yīng)用ui-block,兩個按鈕分別延伸到50%的屏幕寬度
<fieldset class="ui-grid-a"> <div class="ui-block-a"><button type="submit" data-theme="c">Cancel</button></div> <div class="ui-block-b"><button type="submit" data-theme="b">Submit</button></div> </fieldset>
請注意,這個框架增加網(wǎng)格中的左和右margin的按鈕。為一個單一的按鈕,您可以使用類ui-grid-solo和按鈕類ui-block-a,像下面的例子一個div。這樣的按鈕將得到同樣的margin
<div class="ui-grid-a"> <div class="ui-block-a"><button type="button" data-theme="c">Previous</button></div> <div class="ui-block-b"><button type="button" data-theme="c">Next</button></div> </div><div class="ui-grid-solo"> <div class="ui-block-a"><button type="v" data-theme="b">More</button></div></div>
主題類(沒有數(shù)據(jù)主題屬性)從主題系統(tǒng)可以被添加到一個元素,包括網(wǎng)格。在下面的塊,我們增加了兩個類:ui-bar添加默認的bar和ui-bar-e應(yīng)用背景梯度和字體風(fēng)格的“E”工具欄主題的樣本。為了說明的目的,一個內(nèi)聯(lián)style=“height:120px”屬性也被添加到每個網(wǎng)格設(shè)置每一個標準高度。
ui-block-b 三列布局
網(wǎng)格布局配置使用class= ui-grid-b在父母和3個子容器的元素,每個都有其各自的ui-block-a / a / c類,創(chuàng)建一行三列布局(33 / 33 / 33%)。注意:這些塊同樣風(fēng)格的主題課程,網(wǎng)格布局清晰可見。
<div class="ui-grid-b"> <div class="ui-block-a">Block A</div> <div class="ui-block-b">Block B</div> <div class="ui-block-c">Block C</div></div><!-- /grid-b -->
這為我們的內(nèi)容,將產(chǎn)生一個33 / 33 / 33%網(wǎng)格布局
ui-block-c 四列布局
一行四列,25 / 25 / 25 / 25%網(wǎng)格,是通過在父容器指定class= ui-grid-c和添加四分之一塊。注意:這些塊同樣風(fēng)格的主題課程,網(wǎng)格布局清晰可見
ui-block-c 五列布局
一行五列,20 / 20 / 20 / 20 / 20%網(wǎng)格,是通過在父容器指定class= ui-grid-d
多行多列布局
網(wǎng)格設(shè)計包裝的項目多行。例如,如果您指定了一個三行三列網(wǎng)格(ui-grid-b)在一個容器,有九個子塊,則換到3排各3項。有一個CSS規(guī)則明確的花車和開始新的一行,當(dāng)class= ui-block-a是確保在重復(fù)序列分配塊(A,B,C類,A,B,C,等)映射到網(wǎng)格類型。可以給每行的第一個容器設(shè)置為class=ui-block-a 來清除浮動,這樣9 個子容器的class 應(yīng)為:class=ui-block-(a,b,c,a,b,c,a,b,c)。
<div id="grid" class="ui-grid-b"><div class="ui-block-a"><div class="ui-bar ui-bar-e">A</div></div><div class="ui-block-b"><div class="ui-bar ui-bar-e">B</div></div><div class="ui-block-c"><div class="ui-bar ui-bar-e">C</div></div><div class="ui-block-a"><div class="ui-bar ui-bar-e">A</div></div><div class="ui-block-b"><div class="ui-bar ui-bar-e">B</div></div><div class="ui-block-c"><div class="ui-bar ui-bar-e">C</div></div><div class="ui-block-a"><div class="ui-bar ui-bar-e">A</div></div><div class="ui-block-b"><div class="ui-bar ui-bar-e">B</div></div><div class="ui-block-c"><div class="ui-bar ui-bar-e">C</div></div></div>
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>grid-layout demo</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <!-- The script below can be omitted --> <script src="/resources/turnOffPushState.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script></head><body> <div data-role="page"> <div data-role="header"> <h1>Grid Layout Example</h1> </div> <div data-role="content"> <div class="ui-grid-a"> <div class="ui-block-a"><strong>I'm Block A</strong> and text inside will wrap.</div> <div class="ui-block-b"><strong>I'm Block B</strong> and text inside will wrap.</div> </div><!-- /grid-a --> </div></div> </body></html>