基础使用(样式篇)
关于 layui 提供了封装的样式以及大量的组件,对于基础样式,官方文档的介绍也十分详细,想要学习的可以看一下官方文档,接下来就介绍一下我认为比较重要的基础样式以及注意点。
布局
布局容器
1、固定宽度
- 将栅格放入一个带有
class="layui-container"
的特定的容器中,以便在小屏幕以上的设备中固定宽度,让列可控。 - 固定宽度的两侧有留白效果
<div class="layui-container" style="background-color: pink;height: 300px;">
固定宽度(两侧有留白效果)
</div>
<div class="layui-fluid" style="background-color: cyan;height: 300px;">
完整宽度(占据屏幕宽度的100%)
</div>
2、完整宽度
- 可以不固定容器宽度。将栅格或其它元素放入一个带有
class="layui-fluid"
的容器中,那么宽度将不会固定,而是 100% 适应 - 完整宽度占据屏幕宽度的 100%
栅格布局
栅格布局 是用来做页面布局的,也可以做响应式,如果想要用这个同时适配电脑端与手机端也可以,但是不推荐。因为双端写起来比较麻烦,还不如直接做两个客户端页面,在前端检测之后进行跳转。
栅格容器进行了 12 等分,预设了 4*12 种 CSS 排列类,它们在移动设备、平板、桌面中/大尺寸四种不同的屏幕下发挥着各自的作用。
提示
layui 的栅格布局的原理没有使用 flex 布局,而是自己编写的一套规则。虽然可以与 flex 布局一起使用,但是不推荐,因为会导致页面容易出现问题。比较建议的是采用 layui 的栅格加浮动定位进行布局。
栅格布局规则
- 采用
class="layui-row"
来定义行,如:html<div class="layui-row"></div>
- 采用类似
layui-col-md*
这样的预设类来定义一组列(column),且放在行(row)中- 变量
md
代表的是不同屏幕下的标记 - 变量
*
代表的是该列所占用的 12 等分数(如6/12),可选值为 1 - 12 - 如果多个列的 “等分数值” 总和等于12,则刚好满行排列。如果大于12,多余的列将自动另起一行。
- 变量
- 列可以同时出现最多四种不同的组合,分别是:xs(超小屏幕,如手机)、sm(小屏幕,如平板)、md(桌面中等屏幕)、lg(桌面大型屏幕),以呈现更加动态灵活的布局。
- 可对列追加类似
layui-col-space5
、layui-col-md-offset3
这样的预设类来定义列的间距和偏移。 - 可以在列(column)元素中放入你自己的任意元素填充内容,完成布局!
<!-- 布局容器 -->
<div class="layui-container">
<!-- 定义行 -->
<div class="layui-row">
<!-- 定义列 -->
<div class="layui-col-md5" style="background-color: deepskyblue;">
内容5/12
</div>
<div class="layui-col-md7" style="background-color: bisque;">内容7/12</div>
</div>
</div>
也可以尝试一下其他组合
响应式规则
简单来说,就是会针对四类不同尺寸的屏幕,进行响应式适配处理。
<body>
<h3>平板、桌面端的不同表现:</h3>
<div class="layui-row">
<!-- 小屏幕占6列,中屏幕占4列 -->
<div class="layui-col-sm6 layui-col-md4" style="background-color: thistle">
平板≥768px:6/12 | 桌面端≥992px:4/12
</div>
</div>
<div class="layui-row">
<!-- 小屏幕占4列,中屏幕占6列 -->
<div
class="layui-col-sm4 layui-col-md6"
style="background-color: mediumaquamarine;"
>
平板≥768px:4/12 | 桌面端≥992px:6/12
</div>
</div>
<div class="layui-row">
<!-- 小屏幕占12列,中屏幕占8列 -->
<div class="layui-col-sm12 layui-col-md8" style="background-color: coral">
平板≥768px:12/12 | 桌面端≥992px:8/12
</div>
</div>
</body>
列间距
- 设定列之间的间距
- 且一行中最左的列不会出现左边距,最右的列不会出现右边距
- 列间距在保证排版美观的同时,还可以进一步保证分列的宽度精细程度。
- 给容器添加
class="layui-col-space*"
- 支持 1px-30px 区间的所有双数间隔,以及 1px、5px、15px、25px 的单数间隔
<!-- 列边距 .layui-col-space* -->
<h3>列边距</h3>
<div class="layui-row layui-col-space20">
<div class="layui-col-md4">
<!-- 给具体的内容设置背景颜色 -->
<div style="background-color: hotpink">4</div>
</div>
<div class="layui-col-md4">
<div style="background-color: indianred">4</div>
</div>
<div class="layui-col-md4">
<div style="background-color: powderblue">4</div>
</div>
</div>
注意:
layui-col-space
设置后不起作用主要是因为设置的是padding
,也就是说向内缩,所以设置背景色padding
也是会添上颜色,看起来好像没有间距一样。可以在里面加一个div
来达到目的- 如果需要的间距高于 30px(一般不常见),我们需要采用列偏移
列偏移
- 对列追加类似
layui-col-md-offset*
的预设类,从而让列向右偏移- 其中
*
号代表的是偏移占据的列数,可选中为 1 - 12 - 如
layui-col-md-offset3
,即代表在 中型桌面屏幕下,让该列向右偏移 3 个列宽度。
- 其中
<body>
<h3>列偏移</h3>
<div class="layui-row">
<div class="layui-col-md4">
<div style="background-color: red">4</div>
</div>
<!--向右移动4列-->
<div class="layui-col-md4 layui-col-md-offset4">
<div style="background-color: skyblue">向右移动4列</div>
</div>
</div>
</body>
列嵌套
列之间可以无限嵌套列
<div class="layui-row">
<!-- 大的盒子占6列 -->
<div class="layui-col-md6">
<div style="background-color: red">
<div class="layui-row">
<!-- 嵌套列 -->
<div class="layui-col-md3" style="background-color: burlywood;">
内部列
</div>
<div class="layui-col-md5" style="background-color: indianred;">
内部列
</div>
<div class="layui-col-md2" style="background-color: mediumaquamarine;">
内部列
</div>
</div>
</div>
</div>
</div>
颜色
layui 中提供了一些内置的基础颜色,相比其他前端的框架丰富多彩的内置样式非常稀少,但是对于后端开发人员来说还是够用的,最好能将其类名给记下来,在后续开发中有很大帮助。
按钮
案例组件在做项目时是最常用的组件了,没有之一。 layui 提供的按钮也非常丰富,按钮的主题、尺寸、图标、圆角的交叉组合,可以形成丰富多样的按钮种类。其中颜色也可以根据使用场景自主更改。 可以先看一下官方,记一下形状,等到需要用的时候再来复制粘贴即可。
按钮风格
- 向任意 HTML 元素设定
class="layui-btn"
,建立一个基础按钮。 - 通过追加样式为
class="layui-btn-{type}"
来定义其他按钮风格
名称 | 组合 |
---|---|
原始 | 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" |
<div class="layui-container">
<!-- 基础按钮 -->
<button type="button" class="layui-btn">一个标准的按钮</button>
<a href="https://layui.dev/" class="layui-btn">一个可跳转的按钮</a>
<div class="layui-btn">一个按钮</div>
<hr />
<!-- 不同主题的按钮 -->
<button class="layui-btn">默认按钮</button>
<button class="layui-btn layui-btn-primary">原始按钮</button>
<button class="layui-btn layui-btn-normal">百搭按钮</button>
<button class="layui-btn layui-btn-warm">暖色按钮</button>
<button class="layui-btn layui-btn-danger">警告按钮</button>
<button class="layui-btn layui-btn-disabled">禁用按钮</button>
</div>
按钮尺寸
尺寸 | 组合 |
---|---|
大型 | class="layui-btn layui-btn-lg" |
默认 | class="layui-btn" |
小型 | class="layui-btn layui-btn-sm" |
迷你 | class="layui-btn layui-btn-xs" |
流体按钮(最大化适应) | class="layui-btn layui-btn-fluid" |
<div class="layui-container">
<!-- 不同尺寸的按钮 -->
<button class="layui-btn layui-btn-primary layui-btn-lg">大型原始按钮</button>
<button class="layui-btn">默认按钮</button>
<button class="layui-btn layui-btn-sm layui-btn-danger">小型警告按钮</button>
<button class="layui-btn layui-btn-xs">迷你按钮</button>
<button type="button" class="layui-btn layui-btn-fluid">
流体按钮(最大化适应)
</button>
</div>
圆角按钮
主题 | 组合 |
---|---|
原始 | class="layui-btn layui-btn-radius layui-btn-primary" |
默认 | class="layui-btn layui-btn-radius" |
百搭 | class="layui-btn layui-btn-radius layui-btn-normal" |
暖色 | class="layui-btn layui-btn-radius layui-btn-warm" |
警告 | class="layui-btn layui-btn-radius layui-btn-danger" |
禁用 | class="layui-btn layui-btn-radius layui-btn-disabled" |
<div class="layui-container" style="margin-top: 20px;">
<!-- layui-btn-radius 圆角按钮 -->
<button class="layui-btn layui-btn-radius">默认圆角按钮</button>
<button class="layui-btn layui-btn-primary layui-btn-radius">
原始圆角按钮
</button>
<button class="layui-btn layui-btn-normal layui-btn-radius">
百搭圆角按钮
</button>
<button class="layui-btn layui-btn-warm layui-btn-radius">
暖色圆角按钮
</button>
<button class="layui-btn layui-btn-danger layui-btn-radius">
警告圆角按钮
</button>
<button class="layui-btn layui-btn-disabled layui-btn-radius">
禁用圆角按钮
</button>
</div>
图标按钮
图标
- 对 i 标签 设定
class="layui-icon"
- 然后对元素加上图标对应的
font-class
- 内置图标一览表:https://layui.dev/docs/2.8/icon/
<i class="layui-icon layui-icon-face-smile"></i>
图标按钮
<div class="layui-container" style="margin-top: 20px;">
<!-- 图标按钮 -->
<button type="button" class="layui-btn">
<i class="layui-icon"></i> 添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary">
<i class="layui-icon">ဂ</i> 刷新
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-warm">
<i class="layui-icon layui-icon-heart"></i> 关注
</button>
</div>
图标
Layui 图标采用字体形式,取材于阿里巴巴矢量图标库 iconfont,因此可以把一个 icon 看作是一个普通的文本,直接通过 css 即可设定其样式。 图标支持 font-class 或 unicode 两种格式。
内置的图标用起来很方便,但有时候会缺少需要的图标,那就需要拓展其他的图标库了。
徽章
徽章 badge 通常作为修饰用途而存在,一般是掺杂在其它元素中显示突出效果,稍微了解一下就可以。
公共类(熟记)
公共类是 layui.css 中并不以组件形式存在的公共 class 选择器,而又能用于任何地方。提供了 背景颜色、文字大小、文字颜色 等样式