Ant Design中Flex布局、Grid布局和Layout布局详解

news2025/1/7 17:38:39

好的,我们来更详细地探讨 Ant Design 中的 Flex布局Grid布局Layout布局 的特点、用法、适用场景,以及如何灵活运用它们来构建页面。下面将从各个方面进行更深入的分析,并提供具体的实例。


Vue+Flex布局实现响应式布局

1. Flex布局

概念与特点

Flex布局 基于 CSS3 的 Flexbox 模型,允许我们在容器内部灵活地排列元素,支持单轴(水平或垂直)的布局。RowCol 组件结合了 Flexbox 和栅格系统,适合构建简单的对齐和响应式布局。

  • 单轴布局:所有子元素在一个方向(水平或垂直)上排列。
  • 灵活性:元素可以自动调整其大小以适应容器空间。
  • 对齐方式:可以通过 justify-contentalign-items 属性对齐元素。
  • 方向控制:可以设置元素排列的方向,支持从左到右、从右到左、从上到下、从下到上等排列方式。

主要属性

  • justify: 水平对齐方式

    • flex-start: 元素从容器的起始位置开始排列。
    • flex-end: 元素从容器的结束位置开始排列。
    • center: 元素居中排列。
    • space-between: 元素之间有相等的间距。
    • space-around: 元素之间有相等的间距,且第一个和最后一个元素与容器的边缘有间距。
  • align: 垂直对齐方式

    • flex-start: 元素顶部对齐。
    • flex-end: 元素底部对齐。
    • center: 元素垂直居中对齐。
    • baseline: 元素基线对齐。
    • stretch: 元素拉伸以填充容器。

用法示例

import React from 'react';
import { Row, Col } from 'antd';

const FlexLayoutExample = () => (
  <Row justify="space-between" align="middle">
    <Col span={6}>Column 1</Col>
    <Col span={6}>Column 2</Col>
    <Col span={6}>Column 3</Col>
  </Row>
);

export default FlexLayoutExample;
  • Row 使用了 justify="space-between" 来设置水平方向的间距,align="middle" 用于垂直居中对齐。
  • Col 组件通过 span 设置每一列的宽度比例,这里 span={6} 表示每一列占据了12个栅格中的6个。
    在这里插入图片描述在这里插入图片描述

应用场景

  • 简单布局:用于页面中需要简单对齐的部分,例如按钮、卡片、列表等。
  • 响应式布局:通过 Colspan 属性可以设置不同屏幕下的显示效果,配合 xssmmd 等响应式属性可以实现响应式设计。

2. Grid布局

Grid布局详解

概念与特点

Grid布局 是基于 CSS Grid Layout 实现的二维布局,提供了比 Flexbox 更加强大的布局功能。通过定义行和列,开发者可以更精确地控制元素在页面中的位置和大小。Ant Design 的 RowCol 组件也支持栅格系统,可以用来实现响应式的网格布局。

  • 二维布局:可以同时控制行和列,适合复杂的布局需求。
  • 灵活性:开发者可以通过 CSS 的 grid-template-rowsgrid-template-columns 来定义网格行列的数量和大小。
  • 对齐方式:可以通过 justify-itemsalign-items 来控制元素在网格中的对齐方式。
  • 间距控制:使用 gutter 属性来定义网格间的间距。

用法示例

import React from 'react';
import { Row, Col } from 'antd';

const GridLayoutExample = () => (
  <Row gutter={16}>
    <Col span={8}>Column 1</Col>
    <Col span={8}>Column 2</Col>
    <Col span={8}>Column 3</Col>
  </Row>
);

export default GridLayoutExample;
  • Rowgutter={16} 表示列之间的间距为 16px。
  • Col 组件通过 span={8} 表示每一列占据12格中的 8 格,也就是说 3 列每列占 1/3 宽度。

在这里插入图片描述
在这里插入图片描述

应用场景

  • 复杂网格布局:适合用来实现具有多个行列的复杂布局,如商品列表、卡片列表等。
  • 响应式设计:使用 Col 的响应式属性,设置不同设备宽度下的布局。

3. Layout布局

概念与特点

Layout布局 组件用于构建网页的基础骨架结构,它是一个容器组件,包含了页面常见的区域如:HeaderSiderContentFooter。Ant Design 的 Layout 组件提供了一个灵活且易用的方式来创建标准的后台管理页面或其他复杂页面布局。

  • 标准化布局:适用于构建带有顶部、侧边栏、内容区和底部的页面框架。
  • 布局灵活:可以自定义每个区域的大小、是否固定、是否可折叠等。
  • 内容区域分离:内容区域 (Content) 与侧边栏 (Sider) 可以灵活调整,通常配合 HeaderFooter 使用。

用法示例

import React from 'react';
import { Layout } from 'antd';

const { Header, Sider, Content, Footer } = Layout;

const LayoutExample = () => (
  <Layout style={{ minHeight: '100vh' }}>
    <Header style={{ background: '#001529', color: 'white' }}>Header</Header>
    <Layout>
      <Sider width={200} style={{ background: '#fff' }}>
        Sider
      </Sider>
      <Layout style={{ padding: '0 24px 24px' }}>
        <Content
          style={{
            padding: 24,
            margin: 0,
            minHeight: 280,
            background: '#fff',
          }}
        >
          Content
        </Content>
      </Layout>
    </Layout>
    <Footer style={{ textAlign: 'center' }}>Footer</Footer>
  </Layout>
);

export default LayoutExample;
  • Header:顶部区域,通常用于放置导航、logo 或其他控制项。
  • Sider:侧边栏,通常用于放置导航菜单,可以设置为固定或可折叠。
  • Content:主要的内容区域,用于展示页面的主要内容。
  • Footer:底部区域,通常用于显示版权、联系方式等信息。
    在这里插入图片描述
    在这里插入图片描述

应用场景

  • 后台管理系统:通常需要具有固定的头部、侧边栏和内容区,这种布局方式非常适合后台系统的基础架构。
  • 企业网站:适合需要顶部导航、侧边栏和主要内容区域的企业或博客类网站。
  • 响应式设计:通过 Sidercollapsed 属性和响应式 HeaderFooter 的配合,可以适应不同设备屏幕。

布局方式总结比较表

布局方式特点应用场景使用的组件响应式灵活性
Flex布局一维布局(横向或纵向),自动调整子元素的位置和大小。适用于简单的一维排版,如水平或垂直对齐的布局。Row, Col支持高:通过justify, align等属性控制布局
Grid布局二维布局,支持行和列的复杂控制。适用于复杂的网格布局,尤其是需要精确控制列和行的间距和排列。Row, Col支持非常高:可以自定义网格的行列布局
Layout布局页面骨架布局,包含Header, Sider, Content, Footer适用于后台系统和需要页面框架布局的应用。Layout, Header, Sider, Content, Footer支持中等:主要用于标准页面框架

总结

  • Flex布局:适合简单的布局需求,尤其是需要一维的排列方式,像按钮组、图片、卡片等。
  • Grid布局:适合复杂的网格布局,能够精确控制各个元素的大小和位置,适

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

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

相关文章

基于FPGA的SNN脉冲神经网络之IM神经元verilog实现,包含testbench

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 vivado2019.2 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff0…

健身房管理系统多身份

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端&#xff1a;Java、JavaWeb / Springboot。前端&#xff1a;Vue、HTML / CSS / Javascript 等。数据库&#xff1a;MySQL 二、相关软件&#xff08;列出的软件其一均可运行&#xff09; I…

三甲医院等级评审八维数据分析应用(四)--数据质量管理篇

一、引言 1.1 研究背景与意义 在医疗卫生领域,医院评审是衡量医院综合实力、保障医疗服务质量的重要手段。其中,三甲评审作为我国医院评审体系中的最高级别,对医院的管理、医疗技术、服务质量等各方面都设定了严格标准。医务科作为医院医疗质量管理的核心部门,肩负着协调…

Solidity合约编写(一)

Solidity IDE地址&#xff1a;Remix - Ethereum IDE 点击进入后在contract文件夹下创建合约 合约代码如下&#xff1a; // SPDX-License-Identifier: MIT pragma solidity ^0.8.26;contract SimpleStorage{bool hasFavorNumtrue;uint256 favorNum5;string favorNums"fiv…

嵌入式系统(将软件嵌入到硬件里面)

目录 Linux起源 查看操作系统的版本 查看内核的版本&#xff1a; 内核系统架构 系统关机或重启命令 关机&#xff1a; 重启&#xff1a; linux下的软件安装 两种软件包管理机制&#xff1a; deb软件包分为两种&#xff1a; 软件包的管理工具&#xff1a;dpkg apt 1…

会员制电商创新:开源 AI 智能名片与 2+1 链动模式的协同赋能

摘要&#xff1a;本文聚焦于电商领域会员制的关键作用&#xff0c;深入探讨在传统交易模式向数字化转型过程中&#xff0c;如何借助开源 AI 智能名片以及 21 链动模式商城小程序&#xff0c;实现对会员数据的精准挖掘与高效利用&#xff0c;进而提升企业的营销效能与客户洞察能…

Day29 - 大模型RAG,检索增强生成

如何调用第三方大模型 阿里大模型 1. 获取百炼平台 api key 【阿里云】-【产品】-【人工智能与机器学习】-【大模型服务平台百炼】 2. 参考LangChain文档 https://python.langchain.com/docs/introduction/ 3. 连接阿里大模型 """1. 引入模型 "&quo…

谷粒商城项目125-spring整合high-level-client

新年快乐! 致2025年还在努力学习的你! 你已经很努力了&#xff0c;今晚就让自己好好休息一晚吧! 在后端中选用哪种elasticsearch客户端&#xff1f; elasticsearch可以通过9200或者9300端口进行操作 1&#xff09;9300&#xff1a;TCP spring-data-elasticsearch:transport-…

c语言的文件操作与文件缓冲区

目录 C语言文件操作函数汇总 简单介绍文件 为什么使用文件 什么是文件 文件名 二进制文件和文本文件 流和标准流 流 标准流 文件指针 文件的打开和关闭 文件的顺序读写 顺序读写函数介绍 文件的随机读写 fseek ftell rewind 文件读取结束的判定 文件缓冲区 缓…

http源码分析

一、HttpURLConnection http连接池源码分析 二、HttpClient 连接池&#xff0c;每个路由最大连接数 三、OkHttp okhttp的连接池与socket连接

【工具整理】WIN换MAC机器使用工具整理

最近公司电脑升级&#xff0c;研发同学统一更换了 Mac Book Pro 笔记版电脑&#xff0c;整理一下安装了那些软件以及出处&#xff0c;分享记录下&#xff5e; 知识库工具 1、语雀 网址&#xff1a;语雀&#xff0c;为每一个人提供优秀的文档和知识库工具 语雀 个人花园&…

【GUI-pyqt5】QWidget类

1. 描述 所有可视空间的基类是一个最简单的空白控件控件是用户界面的最小元素 接收各种事件&#xff08;鼠标、键盘&#xff09;绘制在桌面上&#xff0c;显示给用户看 每个控件都是矩形的&#xff0c;它们按z轴顺序排序控件由其父控件和前面的控件剪切没有父控件的控件&#…

SpringBoot Maven 项目 pom 中的 plugin 插件用法整理

把 SpringBoot Maven 项目打包成 jar 文件时&#xff0c;我们通常用到 spring-boot-maven-plugin 插件。 前面也介绍过&#xff0c;在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理&#xff0c;现在我们就撸一把构建元素中插件的用法。 一、…

springboot实战纪实-课程介绍

教程介绍 Spring Boot是由Pivotal团队提供的一套开源框架&#xff0c;可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开发者更轻松快捷地构建出企业级应用。 Spring Boot通过自动配置功能&#xff0c;降低了复杂性&#xff0c;同时支持…

源代码编译安装X11及相关库、vim,配置vim(2)

一、编译安装vim 编译时的cofigure选项如下.只有上一步的X11的包安装全了&#xff08;具体哪些是必须的&#xff0c;哪些是多余的没验证&#xff09;&#xff0c;configure才能认为X的库文件和头文件是可以用的 ./configure --prefixpwd/mybuild \--x-includes/path/to/X11/m…

直接插入排序、折半插入排序、2路插入排序、希尔排序

本篇是排序专栏博客的第一篇&#xff0c;主要探讨以 “插入” 为核心思想的排序算法该如何实现 文章目录 一、前言二、直接插入排序1. 算法思想与操作分析2. 代码实现version 1version 2 3. 复杂度分析 三、折半插入排序1. 算法思想与操作分析2. 代码实现3. 复杂度分析 四、2路…

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源&#xff0c;执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力&#xff1a;技术突破与应用前景 一、引言 在当今数字化时代&#xff0c;人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面&#xff0c;再到如今日益普及的语音交互&#xff0c;人们对于与机器沟通的便捷性和自然性有了更高的追求…

学生作业完成情况管理程序

网上看到的一个课程设计,正好练练手。 首先设计数据库 数据库有三张表&#xff0c;分别是班级表&#xff0c;学生表&#xff0c;作业成绩表。 学生表中外键关联班级表&#xff0c;作业成绩表中外键关联学生表。具体如下图所示 班级表 学生表学生表外键关联 …

基于vue的商城小程序的毕业设计与实现(源码及报告)

环境搭建 ☞☞☞ ​​​Vue入手篇(一)&#xff0c;防踩雷(全网最详细教程)_vue force-CSDN博客 目录 一、功能介绍 二、登录注册功能 三、首页 四、项目截图 五、源码获取 一、功能介绍 用户信息展示&#xff1a;页面顶部设有用户头像和昵称展示区&#xff0c;方便用户识别…