jQuery Mobile 網(wǎng)格布局

jQuery Mobile 提供了一套基于 CSS 的分列布局。然而,在移動設備上,由于考慮手機的屏幕寬度狹窄,一般不建議使用分欄分列布局。

但有時您想要將較小的元素(如按鈕或導航標簽)并排地排列在一起,就像是在一個表格中一樣。這種情況下,推薦使用分列布局。

網(wǎng)格中的列是等寬的(合計是 100%),沒有邊框、背景、margin 或 padding。

這里有四種布局網(wǎng)格可供使用:

網(wǎng)格類列寬對應實例
ui-grid-solo1100%ui-block-a嘗試一下
ui-grid-a250% / 50%ui-block-a|b嘗試一下
ui-grid-b333% / 33% / 33%ui-block-a|b|c嘗試一下
ui-grid-c425% / 25% / 25% / 25%ui-block-a|b|c|d嘗試一下
ui-grid-d520% / 20% / 20% / 20% / 20%ui-block-a|b|c|d|e嘗試一下

lamp在列容器內,子元素擁有的 class 為 ui-block-a|b|c|d|e 取決于列數(shù)。列會浮動并排。

實例 1:class 為 ui-grid-a(兩列布局),您必須指定 ui-block-a 和 ui-block-b 的兩個子元素。

實例 2:class 為 ui-grid-b(三列布局),則必須添加 ui-block-a、ui-block-b 和 ui-block-c 的三個子元素。


自定義網(wǎng)格

通過使用CSS,您可以自定義列塊:

實例

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<style>
.ui-block-a, .ui-block-b, .ui-block-c {
    background-color: lightgray;
    border: 1px solid black;
    height: 100px;
    font-weight: bold;
    text-align: center;
    padding: 30px;
}
</style>
</head>
<body>

<div data-role="page" id="pageone">
  <div data-role="header">
    <h1>自定義列</h1>
  </div>

  <div data-role="main" class="ui-content">
    <p>三列樣式布局:</p>
    <div class="ui-grid-b">
      <div class="ui-block-a"><span>第一個列</span></div>
      <div class="ui-block-b"><span>第二個列</span></div>
      <div class="ui-block-c"><span>第三個列</span></div>
    </div>
  </div>
</div> 

</body>
</html>

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

您也可以通過使用內嵌樣式來自定義塊:

<div class="ui-block-a" style="border: 1px solid black;"><span>Text..</span></div>

多行

在列中也可以有多個行。

注意:ui-block-a-class 總是創(chuàng)建一個新行:


實例

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

<div data-role="page" id="pageone">
  <div data-role="header">
    <h1>多行</h1>
  </div>

  <div data-role="main" class="ui-content">
    <p>三列布局:</p>
    <div class="ui-grid-b">
      <div class="ui-block-a" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-b" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-c" style="border:1px solid black;"><span>一些文本</span></div>
    </div>

    <p>多行的三列布局:</p>
    <div class="ui-grid-b">
      <div class="ui-block-a" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-b" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-c" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-a" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-b" style="border:1px solid black;"><span>一些文本</span></div>
      <div class="ui-block-a" style="border:1px solid black;"><span>一些文本</span></div>
    </div>
  </div>
</div> 

</body>
</html>

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


響應式網(wǎng)格

在小屏幕中,不建議一行中并排太多按鈕(文本會縮短)。

我們在容器使用 ui-responsive 類來創(chuàng)建響應式網(wǎng)格:

實例

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

<div data-role="page" id="pageone">
  <div data-role="header">
    <h1>響應式布局</h1>
  </div>

  <div data-role="main" class="ui-content">
    <h3>慢慢重置窗口大小。布局會根據(jù)瀏覽器的寬度變化自適應大小。</h3>
    <div class="ui-grid-b ui-responsive">
      <div class="ui-block-a">
        <a href="#" class="ui-btn ui-corner-all ui-shadow">第一列按鈕</a><br>
        <span>第一列: 這是一些文本。 這是一些文本。 這是一些文本。 這是一些文本。 這是一些文本。</span>
      </div>
      <div class="ui-block-b">
        <a href="#" class="ui-btn ui-corner-all ui-shadow">第二列按鈕</a><br>
        <span>第二列: 這是一些文本。 這是一些文本。 這是一些文本。 這是一些文本。</span>
      </div>
      <div class="ui-block-c">
        <a href="#" class="ui-btn ui-corner-all ui-shadow">第三列按鈕</a><br>
        <span>第三列: 這是一些文本。 這是一些文本。 這是一些文本。 這是一些文本。</span>
      </div>
    </div>
  </div>
</div> 

</body>
</html>

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例