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

好的,我们来更详细地探讨 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' }}><Contentstyle={{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.mzph.cn/pingmian/66293.shtml

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

相关文章

Redis两种主要的持久化方式是什么?

Redis支持两种主要的持久化方式&#xff0c;它们分别是RDB&#xff08;Redis Database Snapshotting&#xff09;和AOF&#xff08;Append Only File&#xff09;。以下是这两种持久化方式的详细介绍&#xff1a; 一、RDB&#xff08;Redis Database Snapshotting&#xff09; …

flink cdc oceanbase(binlog模式)

接上文&#xff1a;一文说清flink从编码到部署上线 环境&#xff1a;①操作系统&#xff1a;阿里龙蜥 7.9&#xff08;平替CentOS7.9&#xff09;&#xff1b;②CPU&#xff1a;x86&#xff1b;③用户&#xff1a;root。 预研初衷&#xff1a;现在很多项目有国产化的要求&#…

C++文件流 例题

问题&#xff1a; 设计一个留言类&#xff0c;实现以下的功能&#xff1a; 1) 程序第一次运行时&#xff0c;建立一个 message.txt 文本文件&#xff0c;并把用户输入的信息存入该文件&#xff1b; 2) 以后每次运行时&#xff0c;都先读取该文件的内容并显示给用户&#xff…

遮挡半透明效果

1、遮挡半透明效果是什么 在游戏开发中&#xff0c;遮挡半透明效果就是物体被挡住的部分&#xff0c;也能呈现出一种半透明效果而被看到&#xff08;具体效果可以自定义&#xff09;比如 当角色在建筑物之间穿行时&#xff0c;被遮挡部分能够呈现出半透明效果而被我们看到。遮…

大模型高效推理综述

大模型高效推理综述 1 Introduction2 Preliminaries2.1 transformer架构的LLM2.2 大模型推理过程2.3 推理效率分析 3 TAXONOMY(分类)4.数据级别优化4.1输入压缩4.1.1 提示词裁剪&#xff08;prompt pruning&#xff09;4.1.2 提示词总结&#xff08;prompt summary&#xff09;…

计算机网络--UDP和TCP课后习题

【5-05】 试举例说明有些应用程序愿意采用不可靠的UDP, 而不愿意采用可靠的TCP。 解答&#xff1a; 这可能有以下几种情况。 首先&#xff0c;在互联网上传输实时数据的分组时&#xff0c;有可能会出现差错甚至丢失。如果利用 TCP 协议对这些出错或丢失的分组进行重传&…

Go语言的基础知识

1, Go 语言介绍 Go 即 Golang,是 Google公司2009年11月正式对外公开的一门编程语言。 根据 Go 语言开发者自述&#xff0c;近10多年&#xff0c;从单机时代的C语言到现在互联网时代的Java,都没有令人满意的开发语言&#xff0c;而C往往给人的感觉是&#xff0c;花了100%的经历…

【UE5 C++课程系列笔记】20——共享指针的简单使用

目录 概念 创建共享指针示例 重设共享指针 共享指针内容转移 共享指针和共享引用的转换 判断共享指针的相等性 共享指针访问成员函数 自定义删除器 概念 共享指针&#xff08;主要以 TSharedPtr 为例&#xff09;&#xff0c;TSharedPtr 基于引用计数机制来工作&#x…

flux中的缓存

1. cache&#xff0c;onBackpressureBuffer。都是缓存。cache可以将hot流的数据缓存起来。onBackpressureBuffer也是缓存&#xff0c;但是当下游消费者的处理速度比上游生产者慢时&#xff0c;上游生产的数据会被暂时存储在缓冲区中&#xff0c;防止丢失。 2. Flux.range 默认…

Ubuntu网络连接问题(笔记本更换wifi后,虚拟机连不上网络)

1、笔记本更换wifi后&#xff0c;虚拟机的IP地址变了&#xff0c;然后就连不上网络了&#xff08;主机笔记本连接wifi正常上网&#xff09; 2、修改子网地址&#xff08;按照ubutun的ip设置子网掩码&#xff09; 3、Ubuntu已经显示网络连接正常了&#xff0c;但是就是无法上网&…

如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程

简介 本教程将向你介绍如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库。 Apache Cassandra 是一个分布式的 NoSQL 数据库&#xff0c;旨在处理跨多个普通服务器的大量数据&#xff0c;并提供高可用性&#xff0c;没有单点故障。Apache Cassandra 是一个高度可扩展的分布…

Spring MVC实战指南:构建高效Web应用的架构与技巧(三)

响应数据和结果视图(7种) 返回值分类 创建web.xml&#xff08;spring、过滤器解决乱码、配置控制器dispatcherServlet、加载springmvc.xml文件、配置启动加载&#xff09;创建springmvc.xml文件 <!--配置了内容&#xff0c;启动Tomcat服务器的时候&#xff0c;就会被加载--…

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln

目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考&#xff0c;oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场&#xff0c;主要考察 nmap的使用已经是否会看输出&#xff0c;以及是否会通过应用查找对应漏…

Linux下编译安装PETSc

本文记录在Linux下编译安装PETSc的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 1.1 安装oneAPI 参见&#xff1a;Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 1.2 安…

深入Android架构(从线程到AIDL)_11 线程之间的通信架构

目录 5、 线程之间的通信架构 认识Looper与Handler对象 主线程丢信息给自己 子线程丢信息给主线程 替子线程诞生Looper与MQ 5、 线程之间的通信架构 认识Looper与Handler对象 当主线程诞生时&#xff0c;就会去执行一个代码循环(Looper)&#xff0c;以便持续监视它的信息…

【中间件】docker+kafka单节点部署---zookeeper模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言消息中间件介绍1. KRaft模式2. zookeeper模式2.1. 单节点部署安装验证 前言 最近生产环境上准备部署ELFK日志监控&#xff0c;先在测试环境部署单节点kafka验证…

AI-Talk开发板之超拟人

一、说明 运行duomotai_ap sdk下的LLM_chat例程&#xff0c;实现开发板和超拟人大模型进行语音交互&#xff0c;支持单轮和多轮交互。 二、SDK更新 v2.3.0及以上的SDK版本才支持超拟人&#xff0c;如果当前SDK在v2.3.o以下&#xff0c;需要更新SDK。在SDK目录(duomotai_ap)下…

2024年, Milvus 社区的那些事

随着跨年钟声响起&#xff0c;2024 年告一段落。这一年&#xff0c;Milvus GitHub Stars 正式突破 3 万大关&#xff0c;Docker 下载量突破6700w 次&#xff0c;达到一个新的里程碑&#xff0c;在开源向量数据库领域继续引领前行。在这遥遥领先的数据背后&#xff0c;不妨让我们…

docker中使用Volume完成数据共享

情景概述 在一个docker中&#xff0c;部署两个MySQL容器&#xff0c;假如它们的数据都存储在自己容器内部的data目录中。这样的存储方式会有以下问题&#xff1a; 1.无法保证两个MySQL容器中的数据同步。 2.容器删除后&#xff0c;数据就会丢失。 基于以上问题&#xff0c;容…

【期末复习】二、进程管理

1.进程的内存结构🍊 程序加载到内存之后就变成了一个进程,进程在内存当中的一个结构有: 文本段(text section):存放程序代码 栈(stack):存放局部变量和函数返回地址 数据段(data section):存放全局变量和静态变量(static) 堆(heap):程序运行时的动态内存分…