栅格系统
- 定义行
.layui-row - 定义列
.layui-col-md*- md 表示不同屏幕的标识(xs超小 | sm小 | md中等 | lg大屏),将行分成均匀的12列
- * 表示列的数量,超过12列就自动换行
- 相应式规则,可以为一个标签给予sm和md的类
class="layui-col-sm4 layui-col-md6",栅格就自动根据屏幕的分辨率选择对应的样式效果 - 列边距,支持列之间为1px-30px的所有双数间隔,以及1px | 5px | 15px | 25px的单数间隔,如
layui-col-space2,即上下左右的padding。至少三层才能显示出效果 - 列偏移,以列为单位的向右偏移,如
layui-col-md-offset1偏移一列 列嵌套,在列内嵌套下一层列
<div class="layui-row"><div class="layui-col-md8" style="background-color: #d7f4c7;"><div class="layui-row"><div class="layui-col-md3" style="background-color: #8EFBFA">3</div><div class="layui-col-md4" style="background-color: #FD82F7">4</div><div class="layui-col-md5" style="background-color: #FCB4C1">5</div></div></div></div>
基本元素
按钮与图标官网
- 导航,依赖element模块
- 水平导航 layui-nav
- 导航的子项 layui-nav-item
- 当前被选中项 layui-this
- 二级菜单 layui-nav-child
- 垂直导航 layui-nav layui-nav-tree
- 侧边导航 layui-nav layui-nav-tree layui-nav-side
- 默认展开 layui-nav-itemed
- 导航背景颜色 layui-bg-gray
- 面包屑式导航 class=”layui-breadcrumb”,设置分割符 lay-separator=”-“
- 选项卡,依赖element模块
- 标题区与内容区一一对应
- 默认 layui-tab
- 标题 class=”layui-tab-title”
- 内容 class=”layui-tab-content”
- 默认选中 class=”layui-this”
- 简洁样式 class=”layui-tab layui-tab-brief”
- 允许删除选项卡 lay-allowClose=”true”
- 表格 layui-table
- 各行换色 (与class同级 直接写) lay-even
- 边框 lay-skin=””
- 设置表格尺寸 lay-size=””
5. 表单,需要form模块
- form的类 layui-form
表单的每一行 class=”layui-form-item”
<div class="layui-form-item"><label class="layui-form-label">输入框</label><div class="layui-input-block"><input type="text" name="title" required lay-verify="required" placeholder="请输入标题"autocomplete="off" class="layui-input"></div></div>
- required 必填字段
- lay-verify=”” 需要验证的类型(required为必填)
- class=”layui-input” 通用样式
- placeholder 输入框为空时,默认显示的文本信息
- autocomplete 浏览器是否自动填充
- class=”layui-input-block” 占据父容器的全部宽度
- class=”layui-input-inline” 占据父容器的部分宽度
- 为标签添加
disable,设置为禁用 - 下拉框,用
selected设置默认选中项- 通过设定属性
lay-search来开启搜索匹配功能
- 通过设定属性
- 复选框
- 使用title属性设置自定义文本
- 通过checked设置默认被选中项
- 使用lay-skin=””设置样式
- 通过value=””设置被选框的值
- 开关,input的lay-skin=”switch”
- 通过checked设置默认打开
- 通过 lay-text=”on|off”或”打开|关闭” 设置开关两种状态的文本
- 通过value=””设置提交时的值
- 文本域,textarea的class=”layui-textarea”
组件示例
1. 弹出层 layer
- 作为独立的组件使用
- 在独立版本官网下载,引用
.js与.css
- 在独立版本官网下载,引用
- 作为layui模块化使用
- 引入layui的.js与.css
layer.msg("Hi");
如果是用layer.open执行tips层(4),即弹出层吸附到指定的标签旁
layer.open({type: 4,content: ['内容', '#id'], //数组第二项即吸附元素选择器或者DOM...});
shadeClose: true,点击遮罩关闭
- shade: [0.2, ‘#393D49’],设置遮罩效果
- time: 1000, 设置延迟多少ms自动关闭
- fixed: false, 弹出框在页面滚动时不固定在可视范围内
- msg 配置:
layer.msg("加载中...",{anim: 4,}, function(){layer.msg("hei~");})// 即:layer.msg("文字内容",{ 参数设置 },function(){ 关闭之后要做的事 });
2. 时间日期选择器 laydate
- 将laydate渲染到指定id的input上 ```javascript
layui.use(‘laydate’, function(){ var laydate = layui.laydate;
//执行一个laydate实例laydate.render({elem: '#date' //指定元素});
});
- 可以根据 type 属性设置选择器的类型(选择年、年月、年月日、时间...)- 可以通过 format 自定义日期的显示格式<a name="2YWcO"></a>### 3. 分页 laypage- 使用 laypage 渲染到指定 id 的容器中```javascriptlayui.use('laypage', function(){var laypage = layui.laypage;//执行一个laypage实例laypage.render({elem: 'page', //注意,这里的 page 是 ID,不用加 # 号count: 100, //数据总数,从服务端得到groups: 6, // 连续出现的页码数layout: ['prev', 'page', 'next', 'limit', 'count'], // 自定义排版limits: [5,10,20], // 设置limits里面出现的各个条数jump: function(obj, first){// obj 包含了当前分页的所有参数console.log(obj.curr);}});});
4. 数据表格 table
基本使用
- 有三种渲染方式,一般用方法渲染
- 定义一个 table ,并设置其 id
```javascript
<a name="0f4e2e18"></a>#### 表格的事件- 需要为 table 添加 ` lay-filter="test"` 属性,下面代码中 toolbar(test) 的 `test` 就是这个属性- 为按钮添加 `lay-event="事件名"` 属性,再在table的on中判断事件名- 在 table.render 的下面写```javascripttable.on('toolbar(test)', function(obj){var checkStatus = table.checkStatus(obj.config.id);console.log(checkStatus);var evenName = obj.event;switch(evenName){case 'getCheckData':var arr = checkStatus.data;layer.msg(JSON.stringify(arr));break;case 'getCheckLength':var arr = checkStatus.data;layer.msg("选中了"+arr.length+"条数据");break;case 'isAll':var flag = checkStatus.isAll;var str = flag ? "全选" : "未全选";layer.msg(str);break;}});})
- obj 含有表格的全部数据
- 在表格的表头按钮被点击时触发,如上文的 toolbarDemo 里面的按钮
下面写表右的按钮的事件
table.on('tool(test)', function(obj){var tr = obj.data;var eventName = obj.event;if(eventName == "del"){// 确认框layer.confirm("确认删除吗?", function(index){obj.del();layer.close(index);})}else if(eventName == "detail"){}else if(eventName == "edit"){// 输入框layer.prompt({formType: 0, // 表单元素的类型 0-文本框 1-密码框 2-文本域value: tr.position, // 设置输入框的值}, function(value, index){// 修改指定单元格的值obj.update({position: value,});layer.close(index);});}});
这里出现了两种弹出框,一个是
layer.confirm和layer.prompt,并且两处的 index 为两个弹框的下标
