前端组件库Layui知识点大全(二)

简介: 教程来源 https://hllft.cn/category/tech-trends.html Layui提供灵活响应式布局系统,含`layui-container`(固定宽)与`layui-fluid`(100%宽)两种容器;栅格基于12等分,支持`xs/sm/md/lg`四端适配、偏移、间距及无限嵌套,助力快速构建结构清晰、多端兼容的页面。

三、布局系统与栅格

Layui提供了灵活实用的布局系统,帮助开发者快速搭建页面结构。它主要包括响应式容器和强大的栅格系统。

3.1 容器
在开始布局之前,需要一个容器来包裹内容。Layui提供了两种容器:
固定宽度容器 layui-container:在大屏幕(≥1200px)下宽度固定为1170px,在平板和手机端自动适配,通常用于官网、文章展示页。
自适应宽度容器 layui-fluid:宽度始终为屏幕宽度的100%,通常用于后台管理系统的主内容区域。

<!-- 固定宽度容器 -->
<div class="layui-container">
  内容区域
</div>

<!-- 全屏宽度容器 -->
<div class="layui-fluid">
  内容区域
</div>

3.2 栅格系统
Layui的栅格系统采用传统的12等分布局,通过行(layui-row)和列(layui-col-*)的组合来创建页面布局。

3.2.1 基础栅格

<div class="layui-container">
  <div class="layui-row">
    <!-- 占用 6/12 即 50% 宽度 -->
    <div class="layui-col-md6">
      左侧内容
    </div>
    <!-- 占用 6/12 即 50% 宽度 -->
    <div class="layui-col-md6">
      右侧内容
    </div>
  </div>
</div>

3.2.2 响应式支持
Layui栅格支持四种设备宽度,通过不同的后缀来控制不同屏幕下的显示比例:
image.png
示例:手机全屏显示,平板及以上显示两列

<div class="layui-row">
  <div class="layui-col-xs12 layui-col-sm6">
    在手机上占满整行,平板上占一半
  </div>
  <div class="layui-col-xs12 layui-col-sm6">
    在手机上占满整行,平板上占一半
  </div>
</div>

更复杂的响应式示例:手机1列,平板2列,桌面3列

<div class="layui-row">
  <div class="layui-col-xs12 layui-col-sm6 layui-col-md4">
    商品卡片1
  </div>
  <div class="layui-col-xs12 layui-col-sm6 layui-col-md4">
    商品卡片2
  </div>
  <div class="layui-col-xs12 layui-col-sm6 layui-col-md4">
    商品卡片3
  </div>
  <div class="layui-col-xs12 layui-col-sm6 layui-col-md4">
    商品卡片4
  </div>
</div>

3.2.3 列偏移
使用layui-col-md-offset*可以在右侧产生空白偏移,实现内容的水平居中或错落布局。

<!-- 水平居中 -->
<div class="layui-row">
  <!-- 向左偏移 4 个栅格,再占据 4 个栅格,实现水平居中 -->
  <div class="layui-col-md4 layui-col-md-offset4">
    居中的内容
  </div>
</div>

<!-- 错落布局 -->
<div class="layui-row">
  <div class="layui-col-md4">内容1</div>
  <div class="layui-col-md4 layui-col-md-offset4">内容2(靠右)</div>
</div>

3.2.4 列间距
使用layui-col-space*设置列与列之间的间距,支持1-30px。由于栅格采用内边距实现间距,如果列有背景色,通常需要在内部再嵌套一个元素来显示背景。

<!-- 间距为20px的卡片网格 -->
<div class="layui-row layui-col-space20">
  <div class="layui-col-md6">
    <!-- 此处需要嵌套 div 来显示背景或边框 -->
    <div style="background-color: #f8f8f8; padding: 15px; border-radius: 4px;">
      卡片内容1
    </div>
  </div>
  <div class="layui-col-md6">
    <div style="background-color: #f8f8f8; padding: 15px; border-radius: 4px;">
      卡片内容2
    </div>
  </div>
</div>

3.2.5 栅格嵌套
栅格系统支持无限嵌套,可以在列中再次嵌套行和列。

<div class="layui-row">
  <div class="layui-col-md6">
    <!-- 左侧主区域 -->
    <div class="layui-row">
      <div class="layui-col-md6">子列1</div>
      <div class="layui-col-md6">子列2</div>
    </div>
  </div>
  <div class="layui-col-md6">
    右侧区域
  </div>
</div>

四、基础元素与视觉

在开始使用复杂的交互模块之前,Layui提供了一套完整的基础CSS元素,用来构建页面的视觉骨架。

4.1 按钮
Layui的按钮样式丰富,只需为button、a等元素添加layui-btn类即可。它还提供了多种主题色和尺寸。

<!-- 基础按钮 -->
<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>

<!-- 不同尺寸 -->
<button class="layui-btn layui-btn-lg">大型按钮</button>
<button class="layui-btn layui-btn-sm">小型按钮</button>
<button class="layui-btn layui-btn-xs">迷你按钮</button>

<!-- 圆角按钮 -->
<button class="layui-btn layui-btn-radius">圆角按钮</button>

<!-- 流体按钮(占满父容器宽度) -->
<button class="layui-btn layui-btn-fluid">流体按钮</button>

<!-- 图标按钮 -->
<button class="layui-btn">
  <i class="layui-icon layui-icon-home"></i> 首页
</button>

<!-- 只带图标的按钮 -->
<button class="layui-btn layui-btn-primary">
  <i class="layui-icon layui-icon-delete"></i>
</button>

<!-- 按钮组 -->
<div class="layui-btn-group">
  <button class="layui-btn">增加</button>
  <button class="layui-btn">编辑</button>
  <button class="layui-btn">删除</button>
</div>

4.2 图标
Layui内置了大量图标(Layui 2.8版本后新增了18个),使用layui-icon类即可调用。图标采用字体方式渲染,可以随意改变颜色和大小。

<!-- 基础图标 -->
<i class="layui-icon layui-icon-face-smile"></i>

<!-- 带文字的图标链接 -->
<a href="javascript:;" class="layui-btn layui-btn-primary">
  <i class="layui-icon layui-icon-delete"></i> 删除
</a>

<!-- 调整图标大小(通过CSS) -->
<i class="layui-icon layui-icon-home" style="font-size: 30px; color: #16baaa;"></i>

<!-- 常用图标示例 -->
<i class="layui-icon layui-icon-loading"></i>  <!-- 加载图标 -->
<i class="layui-icon layui-icon-ok-circle"></i> <!-- 成功图标 -->
<i class="layui-icon layui-icon-close"></i>      <!-- 关闭图标 -->
<i class="layui-icon layui-icon-edit"></i>       <!-- 编辑图标 -->
<i class="layui-icon layui-icon-add-1"></i>      <!-- 添加图标 -->
<i class="layui-icon layui-icon-search"></i>     <!-- 搜索图标 -->

4.3 表单
表单是后台管理系统中的核心元素。Layui的表单模块form负责管理输入框、下拉框、单选框、复选框和开关等组件。重要提示:所有表单项必须放在具有class="layui-form"的容器内,否则样式和事件将不生效。
4.3.1 输入框

<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="username" 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" style="width: 200px;">
      <input type="text" name="price" placeholder="¥" class="layui-input">
    </div>
    <div class="layui-form-mid">元</div>
  </div>

  <!-- 带搜索的下拉框 -->
  <div class="layui-form-item">
    <label class="layui-form-label">城市</label>
    <div class="layui-input-block">
      <select name="city" lay-search>
        <option value="">请选择</option>
        <option value="010">北京</option>
        <option value="021">上海</option>
        <option value="020">广州</option>
        <option value="0755">深圳</option>
      </select>
    </div>
  </div>

  <!-- 开关 -->
  <div class="layui-form-item">
    <label class="layui-form-label">状态</label>
    <div class="layui-input-block">
      <input type="checkbox" name="status" lay-skin="switch" lay-text="开启|关闭">
    </div>
  </div>

  <!-- 滑块 -->
  <div class="layui-form-item">
    <label class="layui-form-label">音量</label>
    <div class="layui-input-block">
      <input type="text" name="volume" lay-filter="volume" class="layui-input">
    </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>
layui.use(['form', 'slider'], function(){
  var form = layui.form;
  var slider = layui.slider;

  // 滑块初始化
  slider.render({
    elem: '#sliderTest',
    min: 0,
    max: 100
  });

  // 监听提交事件
  form.on('submit(formDemo)', function(data){
    layer.msg(JSON.stringify(data.field));
    return false; // 阻止页面跳转
  });
});
</script>

4.3.2 表单验证
Layui内置了lay-verify属性用于表单验证,常见值有:
image.png

<div class="layui-form-item">
  <label class="layui-form-label">手机号</label>
  <div class="layui-input-block">
    <input type="text" name="phone" lay-verify="required|phone" 
           placeholder="请输入手机号" class="layui-input">
  </div>
</div>

<div class="layui-form-item">
  <label class="layui-form-label">邮箱</label>
  <div class="layui-input-block">
    <input type="text" name="email" lay-verify="email" 
           placeholder="请输入邮箱" class="layui-input">
  </div>
</div>

来源:
https://hllft.cn/category/software-apps.html

相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
32698 79
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17753 20
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36684 19
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24758 14
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36662 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29838 52

热门文章

最新文章

下一篇
开通oss服务