jQuery Mobile 网格布局
jQuery Mobile 提供了一套基于 CSS 的分列布局。然而,在移动设备上,由于考虑手机的屏幕宽度狭窄,一般不建议使用分栏分列布局。
但有时您想要将较小的元素(如按钮或导航标签)并排地排列在一起,就像是在一个表格中一样。这种情况下,推荐使用分列布局。
网格中的列是等宽的(合计是 100%),没有边框、背景、margin 或 padding。
这里有四种布局网格可供使用:
网格类 | 列 | 列宽 | 对应 | 实例 |
---|---|---|---|---|
ui-grid-solo | 1 | 100% | ui-block-a | 尝试一下 |
ui-grid-a | 2 | 50% / 50% | ui-block-a|b | 尝试一下 |
ui-grid-b | 3 | 33% / 33% / 33% | ui-block-a|b|c | 尝试一下 |
ui-grid-c | 4 | 25% / 25% / 25% / 25% | ui-block-a|b|c|d | 尝试一下 |
ui-grid-d | 5 | 20% / 20% / 20% / 20% / 20% | ui-block-a|b|c|d|e | 尝试一下 |
在列容器内,子元素拥有的 class 为 ui-block-a|b|c|d|e 取决于列数。列会浮动并排。
实例 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 的三个子元素。 |
自定义网格
通过使用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 总是创建一个新行:
实例
<!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>
运行实例 »
点击 "运行实例" 按钮查看在线实例
响应式网格
在小屏幕中,不建议一行中并排太多按钮(文本会缩短)。
我们在容器使用 ui-responsive 类来创建响应式网格:
实例
<!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>慢慢重置窗口大小。布局会根据浏览器的宽度变化自适应大小。</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>
运行实例 »
点击 "运行实例" 按钮查看在线实例