docs/layout/grid.md
<h2 id="examples" lay-toc="{hot: true}">示例</h2>Layui 栅格系统是一套具备响应式能力的布局方案,采用业界比较常用的容器横向
12等分规则,预设了5*12种 CSS 排列类,内置多种大小尺寸的多终端适配,能很好地实现响应式布局,这意味着一套系统,能同时适配于电脑的不同大小屏幕和手机、平板等移动屏幕,使得网页布局变得更加灵活,同时也极大地降低了HTML/CSS代码的耦合。
<style> .layui-code-item-preview .layui-row{margin-bottom: 11px;} .layui-code-item-preview .layui-row:last-child{margin-bottom: 0;} </style>贴士:以下示例中的背景色仅仅只是为了让布局效果显得更加直观,实际使用时并不需要背景色。
<pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full']}"> <textarea> <div class="layui-row"> <div class="layui-col-md5"> <div class="layui-row grid-demo"> <div class="layui-col-md3"> <div class="grid-demo grid-demo-bg1">内部列</div> </div> <div class="layui-col-md9"> <div class="grid-demo grid-demo-bg2">内部列</div> </div> <div class="layui-col-md12"> <div class="grid-demo grid-demo-bg3">内部列</div> </div> </div> </div> <div class="layui-col-md7"> <div class="layui-row grid-demo grid-demo-bg1"> <div class="layui-col-md12"> <div class="grid-demo">内部列</div> </div> <div class="layui-col-md9"> <div class="grid-demo grid-demo-bg2">内部列</div> </div> <div class="layui-col-md3"> <div class="grid-demo grid-demo-bg3">内部列</div> </div> </div> </div> </div> </textarea> </pre>理论上,你可以对栅格进行无穷层次的嵌套,这更加增强了栅格的表现能力
栅格的响应式能力,得益于 CSS3 媒体查询(Media Queries),针对不同尺寸的屏幕进行相应的适配处理。
将栅格放入一个带有 class="layui-container" 的特定容器中,以便在小屏幕以上的设备中固定宽度,让列可控。
<div class="layui-container">
<div class="layui-row">
……
</div>
</div>
当然,你还可以不固定容器宽度。将栅格或其它元素放入一个带有 class="layui-fluid"的容器中,那么宽度将不会固定,而是 100% 适应
<div class="layui-fluid">
……
</div>
即:支持列之间为 1px-32px 区间的所有双数间隔,以及 1px、5px、15px、25px 的单数间隔</pre> </td> </tr>
</tbody> </table>下面是一个简单的例子,列间距为 16px:
<div class="layui-row layui-col-space16">
<div class="layui-col-md4">
1/3
</div>
<div class="layui-col-md4">
1/3
</div>
<div class="layui-col-md4">
1/3
</div>
</div>
对列追加类似 layui-col-md-offset* 的预设类,从而让列向右偏移。如:layui-col-md-offset3,即代表在“中型桌面屏幕”下,让该列向右偏移 3 个列宽度。下面是一个采用「列偏移」机制让两个列左右对齐的实例
div class="layui-row">
<div class="layui-col-md4">
4/12
</div>
<div class="layui-col-md4 layui-col-md-offset4">
偏移4列,从而在最右
</div>
</div>
<h2 id="iepatch" lay-toc="">IE8/9 兼容方案</h2>请注意,列偏移可针对不同屏幕的标准进行设定,比如上述的例子,只会在桌面屏幕下有效,当低于桌面屏幕的规定的临界值,就会堆叠排列。
事实上 IE8/IE9 并不支持 Media Queries,但你可以使用下面的补丁进行兼容(补丁来自于开源社区):
<!-- 让 IE8/9 支持媒体查询,从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
将上述代码放入你页面 <body> 标签内的任意位置即可。