layui
一、开始
引入网络中资源
<!-- 引入 layui.css -->
<link rel="stylesheet" href="//unpkg.com/layui@2.6.4/dist/css/layui.css">
<!-- 引入 layui.js -->
<script src="//unpkg.com/layui@2.6.4/dist/layui.js">
已经导入layui到根目录
<!--导入css-->
<link rel="stylesheet" href="./layui/css/layui.css">
<!--导入js-->
<script src="./layui/layui.js"></script>
模板
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>开始使用 layui</title>
<link rel="stylesheet" href="./layui/css/layui.css">
</head>
<body>
<!-- 你的 HTML 代码 -->
<script src="./layui/layui.js"></script>
<script>
layui.use(['layer', 'form'], function(){
var layer = layui.layer
,form = layui.form;
layer.msg('Hello World');
});
</script>
</body>
</html>
二、栅格系统
容器
列组合
- 定义行: .layui-row
- 定义列: .layui-col-md*
- md表示不同屏幕的标识(xs,sm,md,lg)
- *标识数量
- 每一行被分为十二列,列的总数不能超过12列,超过的话元素会换行
- 响应式规则
- 栅格会自动根据屏幕分辨率选择对应的样式效果
列边距
- 在行上写: .layui-col-space*
- *代表的是px值(1-30)
列偏移
- 在列上写: .layui-col-md-offset*
- *代表格数
列嵌套
- 列与列之可以无限嵌套
三、组件
按钮
- 按钮链接
- 像任意html元素设定*class=“layui-btn” ,就可以建立一个基础按钮
- 通过追加格式为 layui-btn-{type} 的class来定义其他按钮风格
- layui-btn-primary 原始按钮
- layui-btn-lg 大型
- layui-btn-radius 圆角
- 可以设置layui-icon 来添加效地图标
导航
- 水平导航 layui-nav
- layui-nav-item 表示的是导航的子项
- layui-this 表示当前被选中项
- layui-nav-child 表示的是二级菜单
- 垂直导航 layui-nav layui-nav-tree
- 侧边导航 layui-nav layui-nav-tree layui-nav-side
- 导航的主题色
- layui-bg-颜色
- 墨绿:molv
- 藏青:cyan
- 艳蓝:blue
- layui-bg-颜色
- 面包屑式导航
- layui-breadcrumb
- 通过lay-separator="符号"设置面包屑的导航分隔符
选项卡
- 需要添加element组件
- layui-tab 表明他是一个选项卡
- layui-tab-title 选项卡标题
- layui-this表明该选项初始被选中
- layui-tab-content 对应选项卡的内容
- 风格
- 简单的风格: layui-tab-brief
- lay-allowClose=“true” 可关闭的选项卡
- lay-id=“111” lay-id用于实现动态操作
表格
- class=“layui-table”
- 常用属性
- lay-even 隔行换色
- lay-skin 表格边框风格
- line 行边框风格
- row 列边框风格
- nob 无边框风格
- lay-size 设置表格尺寸
- sm
- lg
表单
- class=“layui-form”
- 需要加载form模块
- 格式
<form class="layui-form" action="">
<!--这是一个input-->
<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">
- 常用属性:
- required 必填字段
- lay-verify 需要验证的类型
- class=“layui-input” 提供通用的样式
- class=“layui-input-inline” 提供行内样式
输入框
- type=“text”
- placeholder 当文本框为空时,提供提示信息
- autocomplete 表单元素是否自动填充
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
下拉框
- type=“select”
- 一个option对应一个选项,option标签的value属性必须有值
- optgroup标签是提示
- lay-search 搜索匹配,可以在下拉框上进行搜索
- disable 把选项设成不可用状态
<select name="quiz">
<option value="">请选择</option>
<optgroup label="城市记忆">
<option value="你工作的第一个城市">你工作的第一个城市?</option>
</optgroup>
<optgroup label="学生时代">
<option value="你的工号">你的工号?</option>
<option value="你最喜欢的老师">你最喜欢的老师?</option>
</optgroup>
</select>
复选框
- type=“checkbox”
- title代表用来提示的字段
- check 默认选中
- disable 表示禁用
- lay-skin=“primary”
- primary :原始风格
- switch: 开关风格
<input type="checkbox" name="" title="写作" checked>
<input type="checkbox" name="" title="发呆">
<input type="checkbox" name="" title="禁用" disabled>
单选框
- type=“radio”
- 属性title可自定义文本
- 属性disabled开启禁用
- 设置value="xxx"可自定义值,否则选中时返回的就是默认的on
<input type="radio" name="sex" value="nan" title="男">
<input type="radio" name="sex" value="nv" title="女" checked>
<input type="radio" name="sex" value="" title="中性" disabled>
行内组装表单项
- 我认为他还是一个表单项
- class=“layui-inline”:定义外层行内
- class=“layui-input-inline”:定义内层行内
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">范围</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="price_min" placeholder="¥" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="price_max" placeholder="¥" autocomplete="off" class="layui-input">
</div>
</div>
忽略美化
给标签添加lay-ignore属性该标签就会不受layui的影响,变成原始样式
表单方框式规则
给表单的class添加layui-form-pane,使表单变成方框式的
弹出层
引入方式
- 作为独立组件使用
- 如果你只是单独想使用 layer,你可以去 layer 独立版本官网下载组件包。你需要在你的页面引入jQuery1.8以上的任意版本,并引入layer.js。
- layui 模块化使用
- 如果你使用的是 layui,那么你直接在官网下载 layui 框架即可,无需引入 jQuery 和 layer.js,但需要引入layui.css和layui.js
layer重要参数
/!*
如果是页面层
*/
layer.open({
type: 1,
content: '传入任意的文本或html' //这里content是一个普通的String
});
layer.open({
type: 1,
content: $('#id') //这里content是一个DOM,注意:最好该元素要存放在body最外层,否则可能被其它的相对元素所影响
});
//Ajax获取
$.post('url', {}, function(str){
layer.open({
type: 1,
content: str //注意,如果str是object,那么需要字符拼接。
});
});
/!*
如果是iframe层
*/
layer.open({
type: 2,
content: 'http://sentsin.com' //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
});
/!*
如果是用layer.open执行tips层
*/
layer.open({
type: 4,
content: ['内容', '#id'] //数组第二项即吸附元素选择器或者DOM
});
日期与时间选择
- 先引用laydate模块
- 使用laydate的render方法给特定的标签赋日期值
- elem:代表指定的标签,可以用id,也可以使用dom获取
- type: 代表获取的是月还是年等等
- format: 规定时间格式
layui.use("laydate",function(){
var laydate=layui.laydate;
laydate.render({
elem:"#date1",
type:"day",
format:"yyyy-MM-dd"
});
})
分页
- 先引用laydate模块
- 使用laydate的render方法把特定的标签变成分页条
- elem: 代表指定的标签,可以用id(不需要加#),也可以使用dom
- count: 代表数据总条数,一般从后台获取
- limit:每页展示数据条数
- thmeme: 主题颜色
- limits:[] 可以让用户设定每页条数,需要加在layout中
- layout:[] 该属性可自定义分页条,通过向数组中写入元素的方法规定分页条显示那些东西
- prev: 上一页
- page: 中间的页数
- next: 下一页
- limit:让用户选择每页多少条数据
- skip : 跳到那一页
四、数据表格
使用
- 先导入layui的js和css
- 启用table模块
- 写一个table标签
- 给table标签填上相应的值
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-lg8 layui-col-lg-offset2">
<table class="layui-table" id="table01"></table>
</div>
</div>
</div>
layui.use("table",function(){
var table =layui.table;
//加载table示例
table.render({
elem:"#table01",
url:"http://1.116.92.204:8787/clockin/member/getMembers?pageNum=1&pageSize=10",
page:"true",
cols:[[
{field:'id',title:'id',sort:true,width:100},
{field:'name',title:'姓名',sort:true,width:160},
{field:'qq',title:'QQ',width:130},
{field:'state',title:'状态',sort:true,width:80},
]],
})
});
渲染方式
- 方法渲染: 用JS方法的配置完成渲染 (推荐)无需写过多的 HTML,在 JS 中指定原始元素,再设定各项参数即可。
- 自动渲染: HTML配置,自动渲染 无需写过多 JS,可专注于 HTML 表头部分
- 转换静态表格: 转化一段已有的表格元素 无需配置数据接口,在JS中指定表格元素,并简单地给表头加上自定义属性即可
属性
layui的table有很多的属性,详细内容请参考官方文档
添加头/行工具栏
- 首先写一个头/行工具栏
- 然后通过创建表格时的数据来添加头/行工具栏
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script type="text/html" id="toolbarDemo">
<div class="layui-container">
<button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
<button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
<button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
</div>
</script>