1 | 作者: 夜泊1990 |
第一章 Layui简介
Layui的简介
1 | Layui(谐音:类UI) 是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用 |
Layui下载和目录结构
- 下载地址
1 | https://res.layui.com/static/download/layui/layui-v2.5.7.zip?v=1 |
- 目录结构介绍
1 | ├─css //css目录 |
第二章 Layui环境搭建
- 项目引入
1 | 获得 layui 后,将其完整地部署到项目目录(或静态资源服务器),但是页面中只需要引入夏下面两个文件即可: |
- 注意事项
1 | 注意事项: 在向项目中引入Layui库的时候,一定要将官网下载的整个Layui压缩包中的layui文件夹整体引到项目中. |
- 搭建实例
1 |
|
第三章 Layui的前端元素
第1节 布局元素
1 | Layui是一套响应式的前端框架(响应式这里不做介绍),布局采用响应式框架通用的栅格系统进行布局,引入容器的概念,栅格系统和其他响应式框架一样将容器在水平方向进行12等分,将水平分为12列,可以满足当前绝大多数的设备屏幕的适配. |
容器
- 固定宽度并且居中的容器
1
2
3<div class="layui-container">
</div>- 宽度不固定100%适应的容器
1
2
3<div class="layui-fluid">
</div>行
1 | <div class="layui-row"> |
- 列
1 | layui-col-lg* --> *代表当前占12列中的多少列的宽度 --> 桌面≥1200px |
- 列偏移
1 | layui-col-md-offset* --> * 代表当前列向右偏移多少列 |
- 列嵌套
1 | <div class="layui-container"> |
第2节 其他样式元素
字体图标
- 字体图标地址
1
https://www.layui.com/doc/element/icon.html
- 图标使用
1
2<i class="layui-icon layui-icon-face-smile" style="font-size: 30px; color: #1E9FFF;"></i>
使用i标签作为基础标签,根据图标样式表查询class直接复制粘贴即可
按钮
- 用法
1
2
3
4官网介绍了两个基础标签作为按钮的元素
<button type="button" class="layui-btn">一个标准的按钮</button>
<a href="http://www.layui.com" class="layui-btn">一个可跳转的按钮</a>主题
- 主题样式
- 代码实现
1
2
3
4
5
6原始 class="layui-btn layui-btn-primary"
默认 class="layui-btn"
百搭 class="layui-btn layui-btn-normal"
暖色 class="layui-btn layui-btn-warm"
警告 class="layui-btn layui-btn-danger"
禁用 class="layui-btn layui-btn-disabled"尺寸
尺寸一
- 样式
- 代码实现
1
2
3
4大型 class="layui-btn layui-btn-lg"
默认 class="layui-btn"
小型 class="layui-btn layui-btn-sm"
迷你 class="layui-btn layui-btn-xs"尺寸二
- 样式
- 代码实现
1
2
3
4大型百搭 class="layui-btn layui-btn-lg layui-btn-normal"
正常暖色 class="layui-btn layui-btn-warm"
小型警告 class="layui-btn layui-btn-sm layui-btn-danger"
迷你禁用 class="layui-btn layui-btn-xs layui-btn-disabled"尺寸三
- 样式
- 代码实现
1
<button type="button" class="layui-btn layui-btn-fluid">流体按钮(最大化适应)</button>
表单
- 图示
- 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68<form class="layui-form" action="">
<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>
<div class="layui-form-item">
<label class="layui-form-label">密码框</label>
<div class="layui-input-inline">
<input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">辅助文字</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择框</label>
<div class="layui-input-block">
<select name="city" lay-verify="required">
<option value=""></option>
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
<option value="4">杭州</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">复选框</label>
<div class="layui-input-block">
<input type="checkbox" name="like[write]" title="写作">
<input type="checkbox" name="like[read]" title="阅读" checked>
<input type="checkbox" name="like[dai]" title="发呆">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">开关</label>
<div class="layui-input-block">
<input type="checkbox" name="switch" lay-skin="switch">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单选框</label>
<div class="layui-input-block">
<input type="radio" name="sex" value="男" title="男">
<input type="radio" name="sex" value="女" title="女" checked>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">文本域</label>
<div class="layui-input-block">
<textarea name="desc" placeholder="请输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script>
//加载form模块,否则生成表单会出现问题
layui.use('form', function(){
});
</script>
表格
- 基础表格样例
- 代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26<table class="layui-table">
<colgroup>
<col width="150">
<col width="200">
<col>
</colgroup>
<thead>
<tr>
<th>昵称</th>
<th>加入时间</th>
<th>签名</th>
</tr>
</thead>
<tbody>
<tr>
<td>贤心</td>
<td>2016-11-29</td>
<td>人生就像是一场修行</td>
</tr>
<tr>
<td>许闲心</td>
<td>2016-11-28</td>
<td>于千万人之中遇见你所遇见的人,于千万年之中,时间的无涯的荒野里…</td>
</tr>
</tbody>
</table>- 基础属性
属性名 属性值 备注 lay-even 无 用于开启 隔行 背景,可与其它属性一起使用 lay-skin=”属性值” line (行边框风格)
row (列边框风格)
nob (无边框风格)若使用默认风格不设置该属性即可 lay-size=”属性值” sm (小尺寸)
lg (大尺寸)若使用默认尺寸不设置该属性即可 - 代码示例
1
2
3<table lay-even lay-skin="line" lay-size="lg">
</table>
第四章 Layui的模块化
1 | Layui官网开头使用醒目的大字介绍了自己(经典模块化前端框架),那么他的模块化表现在哪里呢?接下来我们开始说他的模块化 |
第1节 弹出层
模块加载名称:layer
Layui要想使用模块首先就是页面中加载模块,加载模块的方式使用 layui.use(‘layer’,function(){ //执行的代码 });
1.1 消息提示
1 | //加载layer模块 |
1.2 确认对话框
1 | //eg1 |
1.3 页面(iframe层)
1 | layer.open(options) - 原始核心方法,详见官网 |
第2节 时间控件
模块加载名称:laydate
1 | <input type="text" class="layui-input" id="test1"> |
- 基础参数选项
elem - 绑定元素
1 | laydate.render({ |
type - 控件选择类型
type可选值 | 名称 | 用途 |
---|---|---|
year | 年选择器 | 只提供年列表选择 |
month | 年月选择器 | 只提供年、月选择 |
date | 日期选择器 | 可选择:年、月、日。type默认值,一般可不填 |
time | 时间选择器 | 只提供时、分、秒选择 |
datetime | 日期时间选择器 | 可选择:年、月、日、时、分、秒 |
1 | //年选择器 |
format - 自定义格式
1 | //自定义日期格式 |
trigger - 自定义弹出控件的事件
1 | //自定义事件 |
第3节 数据表格
模块加载名称:table
- 数据表格样式
数据表格的生成
- HTML
1
<table id="demo" lay-filter="test"></table>
- JS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<script>
layui.use('table', function(){
var table = layui.table;
//第一个实例
table.render({
elem: '#demo'
,height: 312
,url: '/demo/table/user/' //数据接口
,page: true //开启分页
,cols: [[ //表头
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
,{field: 'sex', title: '性别', width:80, sort: true}
,{field: 'city', title: '城市', width:80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]
});
});
</script>数据表格的默认数据格式
1 | { |
- 数据表格的配置
1 | 详细配置参见地址: |
第4节 表单
模块加载名称:form
- 地址
1 | https://www.layui.com/doc/modules/form.html |
第五章 Layui实战一
使用Layui框架实现CRUD
- 员工列表
- 添加员工
下拉列表生成以及弹出层生成
- 更新员工
重点就是更新员工,里面包括普通的字段回显,单选框回显和下拉框回显
—- 回显采用在父页面向弹出层传递一个参数隐藏在弹出层页面的input控件的方式
- 删除员工
删除主要是消息提示框
第1节 员工列表
- HTML
1 | <table id="demo" lay-filter="test"></table> |
- JS
1 | <script type="text/javascript"> |
第2节 弹出层(添加员工)
- HTML
1 | <button id="addEmpId" type="button" class="layui-btn layui-btn-fluid layui-btn-lg layui-btn-normal">添加员工</button> |
- JS
1 | /* |
第3节 删除/更新员工
1 | /* |
第六章 Layui实战二
基于X-admin框架完成CRUD操作,X-admin是一款基于Layui的免费的后台管理框架
官网地址: http://x.xuebingsi.com/
- 员工列表
- 员工添加
- 员工更新
此框架的更新和原生的Layui更新有点不近相同,如果他采用原生方式获取不到从页面传递过来的隐藏数据
所以此框架采用通过url传递参数的方式获取父页面传递到弹出层的数据
- 员工删除