Layui快速入门之第三节栅格布局

news2025/1/12 22:54:36

目录

一:栅格布局的基本概念

二:栅格布局规则

三:始终等比例水平排列案例

四:响应式规则

五:移动设备、桌面端的组合响应式展现案例

六:移动设备、平板、桌面端的复杂组合响应式展现案例

七:响应式公共类

八:列间距

九:列偏移

十:案例演示

1.列间隔

2.列偏移

3.常规布局:从小屏幕堆叠到桌面水平排列

4.栅格嵌套

5.流体容器(宽度自适应,不固定)

十一:IE8/9 兼容方案


一:栅格布局的基本概念

            Layui 栅格系统是一套具备响应式能力的布局方案,采用业界比较常用的容器横向 12 等分规则,预设了 5*12 种 CSS 排列类,内置多种大小尺寸的多终端适配,能很好地实现响应式局,这意味着一套系统,能同时适配于电脑的不同大小屏幕和手机、平板等移动屏幕,使得网页布局变得更加灵活,同时也极大地降低了 HTML/CSS 代码的耦合。

二:栅格布局规则

1.采用 layui-row 来定义行,如:<div class="layui-row"></div>
2.采用类似 layui-col-md* 这样的预设类来定义一组列(column),且放在行(row)内。其中:
  • 变量md 代表的是不同屏幕下的标记(可选值见下文)
  • 变量* 代表的是该列所占用的 12 等分数(如 6/12),可选值为 1 - 12
  • 如果多个列的“等分数值”总和等于 12,则刚好满行排列。如果大于12,多余的列将自动另起一行。
3.列可以同时出现最多 5 种不同的组合,分别是:xs / sm / md / lg / xl 2.8+,以在不同尺寸屏幕下进行自动适配。
4.可对列追加类似 layui-col-space5、 layui-col-md-offset3 这样的预设类来定义列的间距和偏移。
5.最后,在列(column)元素中放入你自己的任意元素填充内容,完成布局!

三:始终等比例水平排列案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>布局容器</title>
    <!-- 栅格布局-->
    <!-- 引入 layui.css -->
    <link href="//unpkg.com/layui@2.8.0/dist/css/layui.css" rel="stylesheet">
    <!-- 引入 layui.js -->
    <script src="//unpkg.com/layui@2.8.0/dist/layui.js"></script>
</head>
<body>
   <!--布局容器-->
  <div class="layui-container">
      <!--定义行-->
      <div class="layui-row" >
        <!--定义列-->
          <div class="layui-col-md5" style="background-color: yellow">
              内容5/12
          </div>
          <div class="layui-col-md7" style="background-color: #00f7de">
              内容7/12
          </div>
      </div>
      <!--定义行-->
      <div class="layui-row" >
          <!--定义列-->
          <div class="layui-col-md5" style="background-color:rebeccapurple">
              内容4/12
          </div>
          <div class="layui-col-md7" style="background-color: red">
              内容4/12
          </div>
      </div>
  </div>

</body>
</html>

四:响应式规则

           栅格的响应式能力,得益于 CSS3 媒体查询(Media Queries),针对不同尺寸的屏幕进行相应的适配处理

超小屏幕
(手机<768px)
小屏幕
(平板≥768px)
中等屏幕
(桌面≥992px)
大型屏幕
(桌面≥1200px)
超大屏幕
(桌面≥1400px)
layui-containerauto750px970px1170px1330px
标记xssmmdlgxl 2.8+
列对应类layui-col-xs*layui-col-sm*layui-col-md*layui-col-lg*layui-col-xl*
总列数12
响应行为始终按比例水平排列在当前屏幕下水平排列,如果屏幕大小低于临界值则堆叠排列

五:移动设备、桌面端的组合响应式展现案例

<div class="layui-row">
  <div class="layui-col-xs12 layui-col-md8">
    <div class="grid-demo grid-demo-bg1">xs:12/12 | md:8/12</div>
  </div>
  <div class="layui-col-xs6 layui-col-md4">
    <div class="grid-demo">xs:6/12 | md:4/12</div>
  </div>
  <div class="layui-col-xs6 layui-col-md12">
    <div class="grid-demo grid-demo-bg2">xs:6/12 | md:12/12</div>
  </div>
</div>

测试效果:

六:移动设备、平板、桌面端的复杂组合响应式展现案例

<div class="layui-row">
  <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
    <div class="grid-demo grid-demo-bg1">xs:6/12 | sm:6/12 | md:4/12</div>
  </div>
  <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
    <div class="grid-demo layui-bg-red">xs:6/12 | sm:6/12 | md:4/12</div>
  </div>
  <div class="layui-col-xs4 layui-col-sm12 layui-col-md4">
    <div class="grid-demo layui-bg-blue">xs:4/12 | sm:12/12 | md:4/12</div>
  </div>
  <div class="layui-col-xs4 layui-col-sm7 layui-col-md8">
    <div class="grid-demo layui-bg-green">xs:4/12 | sm:7/12 | md:8/12</div>
  </div>
  <div class="layui-col-xs4 layui-col-sm5 layui-col-md4">
    <div class="grid-demo layui-bg-black">xs:4/12 | sm:5/12 | md:4/12</div>
  </div>
</div>

测试效果:

七:响应式公共类

类名(class)说明
layui-show-*-block定义不同设备下的 display: block; * 可选值有:xs、sm、md、lg、xl
layui-show-*-inline定义不同设备下的 display: inline; * 可选值同上
layui-show-*-inline-block定义不同设备下的 display: inline-block; * 可选值同上
layui-hide-*定义不同设备下的隐藏类,即: display: none; * 可选值同上

八:列间距

             通过“列间距”的预设类,来设定列之间的间距。且一行中最左的列不会出现左边距,最右的列不会出现右边距。列间距在保证排版美观的同时,还可以进一步保证分列的宽度精细程度。我们结合网页常用的边距,预设了 12 种不同尺寸的边距,分别是:

layui-col-space1
layui-col-space2
layui-col-space4
layui-col-space5
layui-col-space6
layui-col-space8
layui-col-space10
layui-col-space12
layui-col-space14
layui-col-space15
layui-col-space16
layui-col-space18
layui-col-space20
layui-col-space22
layui-col-space24
layui-col-space25
layui-col-space26
layui-col-space28
layui-col-space30
layui-col-space32
<p>即:支持列之间为 1px-32px 区间的所有双数间隔,以及 1px、5px、15px、25px 的单数间隔</p>

下面是一个简单的例子,列间距为 16px

<div class="layui-row layui-col-space16">
  <div class="layui-col-md4">
    1/3
  </div>
  <div class="layui-col-md4">
    1/3
  </div>
  <div class="layui-col-md4">
    1/3
  </div>
</div>

九:列偏移

                 对列追加类似 layui-col-md-offset* 的预设类,从而让列向右偏移。如:layui-col-md-offset3,即代表在“中型桌面屏幕”下,让该列向右偏移 3 个列宽度。下面是一个采用「列偏移」机制让两个列左右对齐的实例

div class="layui-row">
  <div class="layui-col-md4">
    4/12
  </div>
  <div class="layui-col-md4 layui-col-md-offset4">
    偏移4列,从而在最右
  </div>
</div>

        请注意,列偏移可针对不同屏幕的标准进行设定,比如上述的例子,只会在桌面屏幕下有效,当低于桌面屏幕的规定的临界值,就会堆叠排列

十:案例演示

1.列间隔

<div class="layui-row layui-col-space1">
  <div class="layui-col-md3">
    <div class="grid-demo grid-demo-bg1">1/4</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo">1/4</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo grid-demo-bg1">1/4</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo">1/4</div>
  </div>
</div>
 
<div class="layui-row layui-col-space5">
  <div class="layui-col-md4">
    <div class="grid-demo grid-demo-bg1">1/3</div>
  </div>
  <div class="layui-col-md4">
    <div class="grid-demo">1/3</div>
  </div>
  <div class="layui-col-md4">
    <div class="grid-demo grid-demo-bg1">1/3</div>
  </div>
</div>
 
<div class="layui-row layui-col-space10">
  <div class="layui-col-md9">
    <div class="grid-demo grid-demo-bg1">9/12</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo">3/12</div>
  </div>
</div>
 
<div class="layui-row layui-col-space15">
  <div class="layui-col-md7">
    <div class="grid-demo grid-demo-bg1">7/12</div>
  </div>
  <div class="layui-col-md5">
    <div class="grid-demo">5/12</div>
  </div>
</div>
 
<div class="layui-row layui-col-space30">
  <div class="layui-col-md7">
    <div class="grid-demo grid-demo-bg1">7/12</div>
  </div>
  <div class="layui-col-md5">
    <div class="grid-demo">5/12</div>
  </div>
</div>

效果:

2.列偏移

<div class="layui-row">
  <div class="layui-col-md4">
    <div class="grid-demo grid-demo-bg1">4/12</div>
  </div>
  <div class="layui-col-md4 layui-col-md-offset4">
    <div class="grid-demo">偏移4列</div>
  </div>
</div>
 
<div class="layui-row">
  <div class="layui-col-md3 layui-col-md-offset3">
    <div class="grid-demo grid-demo-bg1">偏移3列</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo">不便宜</div>
  </div>
</div>

效果:

3.常规布局:从小屏幕堆叠到桌面水平排列

<div class="layui-row">
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo grid-demo-bg1">1/12</div>
  </div>
  <div class="layui-col-md1">
    <div class="grid-demo">1/12</div>
  </div>
</div>
 
<div class="layui-row">
  <div class="layui-col-md9">
    <div class="grid-demo grid-demo-bg1">75%</div>
  </div>
  <div class="layui-col-md3">
    <div class="grid-demo">25%</div>
  </div>
</div>
 
<div class="layui-row">
  <div class="layui-col-md4">
    <div class="grid-demo grid-demo-bg1">33.33%</div>
  </div>
  <div class="layui-col-md4">
    <div class="grid-demo">33.33%</div>
  </div>
  <div class="layui-col-md4">
    <div class="grid-demo grid-demo-bg1">33.33%</div>
  </div>
</div>
   
<div class="layui-row">
  <div class="layui-col-md6">
    <div class="grid-demo grid-demo-bg1">50%</div>
  </div>
  <div class="layui-col-md6">
    <div class="grid-demo">50%</div>
  </div>
</div>

效果:

4.栅格嵌套

理论上,你可以对栅格进行无穷层次的嵌套,这更加增强了栅格的表现能力

<div class="layui-row">
  <div class="layui-col-md5">
    <div class="layui-row grid-demo">
      <div class="layui-col-md3">
        <div class="grid-demo grid-demo-bg1">内部列</div>
      </div>
      <div class="layui-col-md9">
        <div class="grid-demo grid-demo-bg2">内部列</div>
      </div>
      <div class="layui-col-md12">
        <div class="grid-demo grid-demo-bg3">内部列</div>
      </div>
    </div>
  </div>
  <div class="layui-col-md7">
    <div class="layui-row grid-demo grid-demo-bg1">
      <div class="layui-col-md12">
        <div class="grid-demo">内部列</div>
      </div>
      <div class="layui-col-md9">
        <div class="grid-demo grid-demo-bg2">内部列</div>
      </div>
      <div class="layui-col-md3">
        <div class="grid-demo grid-demo-bg3">内部列</div>
      </div>
    </div>
  </div>
</div>

效果:

5.流体容器(宽度自适应,不固定)

<div class="layui-row">
  <div class="layui-col-sm3">
    <div class="grid-demo grid-demo-bg1">25%</div>
  </div>
  <div class="layui-col-sm3">
    <div class="grid-demo">25%</div>
  </div>
  <div class="layui-col-sm3">
    <div class="grid-demo grid-demo-bg1">25%</div>
  </div>
  <div class="layui-col-sm3">
    <div class="grid-demo">25%</div>
  </div>
</div>

效果:

十一:IE8/9 兼容方案

            事实上 IE8/IE9 并不支持 Media Queries,但你可以使用下面的补丁进行兼容(补丁来自于开源社区):

<!-- 让 IE8/9 支持媒体查询,从而兼容栅格 -->
<!--[if lt IE 9]>
  <script src="/cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  <script src="/cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

将上述代码放入你页面 <body> 标签内的任意位置即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Yalmip使用教程(6)-将约束条件写成矩阵形式

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 这篇博客将详细介绍如何借助yalmip工具箱将约束条件写成矩阵形式。 1.相关函数介绍 1.1 depends和getvariables函数 depends和getvariables函数都…

C# Winform 简单排期实现(DevExpress TreeList)

排期的需求在很多任务安排的系统中都有相应的需求&#xff0c;原生的Winform控件并未提供相应的控件&#xff0c;一般都是利用DataGridViewTreeView组合完成相应的需求&#xff0c;实现起来比较麻烦。用过DevExpress控件集的开发者应该知道&#xff0c;DevExpress WinForm提供了…

数学建模--K-means聚类的Python实现

目录 1.算法流程简介 2.1.K-mean算法核心代码 2.2.K-mean算法效果展示 3.1.肘部法算法核心代码 3.2.肘部法算法效果展示 1.算法流程简介 #k-means聚类方法 """ k-means聚类算法流程: 1.K-mean均值聚类的方法就是先随机选择k个对象作为初始聚类中心. 2.这…

http实现文件分片下载

文章目录 检测是否支持HTTP Range 语法Range请求cURL示例单一范围多重范围条件式分片请求 Range分片请求的响应文件整体下载文件分片下载文本下载图片下载封装下载方法 HTTP分片异步下载是一种下载文件的技术&#xff0c;它允许将一个大文件分成多个小块&#xff08;分片&#…

一个新工具 nolyfill

名字的意思&#xff0c; 我自己的理解 no(po)lyfill 正如它的名字, 不要再用补丁了, 当然这里说的是过时的补丁。 polyfill 是补丁的意思 为什么要用这个插件 文档原文: 当您通过安装最新的 Node.js LTS 来接受最新的功能和安全修复时&#xff0c;像eslint-plugin-import、…

架构师如何做好需求分析

架构师如何做好需求分析 目录概述需求&#xff1a; 设计思路实现思路分析1.主要步骤 2.主要步骤2操作步骤 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,…

Android笔记(二十八):在雷电模拟器安卓7.0+上使用Charles抓包详细教程

背景 由于手头没有合适的真机,所有经常使用雷神模拟器来跑项目,模拟器也需要能够抓包看看接口返回的数据,以便自测调试。本文记录了如何在雷电模拟器安卓7.0+上使用Charles抓包,其他模拟器没试过。 最终效果 浏览器打开百度网页,能抓到百度页面数据 具体步骤 模拟器…

xinput1_3.dll丢失的解决方法,快速修复xinput1_3.dll文件

在使用电脑时&#xff0c;我们可能会遇到各种各样的问题&#xff0c;其中之一就是xinput1_3.dll文件丢失的情况。这个文件是DirectX的一部分&#xff0c;它对于许多游戏和其他应用程序的正常运行至关重要。当xinput1_3.dll文件丢失时&#xff0c;我们无法启动或运行依赖该文件的…

LeetCode刷题笔记【28】:贪心算法专题-6(单调递增的数字、监控二叉树)

文章目录 前置知识738.单调递增的数字题目描述解题思路代码 968.监控二叉树题目描述解题思路代码 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【23】&#xff1a;贪心算法专题-1&#xff08;分发饼干、摆动序列、最大子序和&#xff09; LeetCode刷题笔记【…

VMware虚拟机+Centos7 配置静态,动态IP

本章目录 一、查看网关&#xff1a; 编辑–>虚拟网络编辑器二、点击NAT设置三、记住网关IP待会要用四、配置静态ip地址1、进入存放修改IP地址的目录2、修改ip地址的文件3、编辑文件4、文件&#xff08;编辑好后退出&#xff09; 五、重启网络六、测试1、linux上查看IP地址的…

使用pyenv安装python缓慢或无法安装

使用pyenv安装python缓慢或无法安装 这一定程度上和网络情况有关&#xff0c;下面提供几个常见方法&#xff1a; 关闭 VPN 后重新安装使用管理员权限打开命令窗口后安装如下 手动安装 pyenv 在执行 pyenv install --- 命令的时候&#xff0c;会连接远程库&#xff0c;将要安…

格式工厂多个图片合并成一个PDF的报错

使用图片合并PDF功能时 当图片数量超过50会报错 找到imgconv.py文件&#xff0c;将50改为500&#xff0c;保存 现在可以支持100张图合并成一个PDF文件了&#xff01; 但是超过150张程序会直接闪退&#xff0c;正在解决中。。

基于任务队列的机器学习服务实现

将机器模型部署到生产环境的方法有很多。 常见的方法之一是将其实现为 Web 服务。 最流行的类型是 REST API。 它的作用是全天候&#xff08;24/7&#xff09;部署和运行&#xff0c;等待接收来自客户端的 JSON 请求&#xff0c;提取输入&#xff0c;并将其发送到 ML 模型以预测…

3D异常检测论文笔记 | Shape-Guided Dual-Memory Learning for 3D Anomaly Detection

文章目录 摘要一、介绍三、方法3.1. 形状引导专家学习3.2. Shape-Guided推理 摘要 我们提出了一个形状引导的专家学习框架来解决无监督的三维异常检测问题。我们的方法是建立在两个专门的专家模型的有效性和他们的协同从颜色和形状模态定位异常区域。第一个专家利用几何信息通…

涛然自得周刊(第 5 期):蝲蛄吟唱的地方

作者&#xff1a;何一涛 日期&#xff1a;2023 年 8 月 20 日 涛然自得周刊主要精选作者阅读过的书影音内容&#xff0c;不定期发。历史周刊内容可以看这里。 电影 《沼泽深处的女孩》 改编自小说《蝲蛄吟唱的地方》&#xff0c;主角是一位在沼泽地独自生活并长大的女孩&…

[VSCode] 替换掉/去掉空行

VSCode中使用快捷键CtrlH&#xff0c;出现替换功能&#xff0c;在上面的“查找”框中输入正则表达式&#xff1a; ^\s*(?\r?$)\n然后选择右侧的“使用正则表达式”&#xff1b;“替换”框内为空&#xff0c;点击右侧的“全部替换”&#xff0c;即可去除所有空行。 参考 [VS…

Apipost forEach控制器怎么用

最近&#xff0c;Apipost对自动化测试进行了优化&#xff0c;新增foreach控制器。这个新功能的引入为自动化测试带来了更高的效率和灵活性。本文将介绍Apipost的foreach控制器&#xff0c;解释其用途和优势&#xff0c;帮助您更好地利用这一功能提升自己的测试工作。 什么是fo…

Andorid项目源码(167套)

一、项目介绍 (精华)新浪微博图片缓冲技术_hyg.rar ActivityGroup GridView ViewFlipper 实现选项卡.zip Adroid UI 界面绘制原理分析.rar AnderWeb-android_packages_apps_Launcher-4458ee4.zip andorid 源码北京公交线路查询&#xff08;离线&#xff09;.zip android Gal…

【Java 基础篇】Java Date 类详解:日期和时间操作的利器

在 Java 编程中&#xff0c;处理日期和时间是一项常见但复杂的任务。Java 提供了许多用于日期和时间操作的类&#xff0c;其中 java.util.Date 类是最早的日期和时间类之一。然而&#xff0c;它存在一些问题&#xff0c;因此 Java 8 引入了 java.time 包&#xff0c;其中包含了…

宇凡微发布2.4G合封芯片YE08,融合高性能MCU与射频收发功能

宇凡微在2023年推出了全新的2.4G合封芯片YE08&#xff0c;该芯片结合了32位高性能MCU和强大的2.4GHz无线通信功能&#xff0c;为各种远程遥控应用提供卓越性能和广泛应用潜力。 深入了解YE08内部构造 YE08芯片内部融合了两颗强大的芯片&#xff1a;PY32F002B MCU和G350 2.4G通…