当前位置: 首页 > news >正文

ant 布局组件 组件等高设置

背景:

想实现一个和content等高的侧边栏,并增加侧边栏导航。

ant组件概述

  • Layout:布局容器,其下可嵌套 Header Sider Content Footer 或 Layout 本身,可以放在任何父容器中。
  • Header:顶部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。
  • Sider:侧边栏,自带默认样式及基本功能,其下可嵌套任何元素,只能放在 Layout 中。
  • Content:内容部分,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。
  • Footer:底部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。

实现代码:

1、先实现自定义侧边栏的导航组件

// Sidebar.js
import React from 'react';
import { Menu } from 'antd';const Sidebar = () => (<Menumode="inline"defaultSelectedKeys={['1']}style={{ height: '100%', borderRight: 0 }}><Menu.Item key="1">选项1</Menu.Item><Menu.Item key="2">选项2</Menu.Item><Menu.Item key="3">选项3</Menu.Item></Menu>
);export default Sidebar;

2、在主组件页面中,引入子组件Sidebar组件

import React from 'react';
import { Layout } from 'antd';
import Sidebar from './Sidebar'; // 引入自定义组件
const { Header, Footer, Sider, Content } = Layout;const App = () => (
// 自定义函数,用于渲染侧边导航const renderSidebar = () => (<Sider width={200} className="site-layout-background"style={{ backgroundColor: 'white' }}><Sidebar />  //自定义组件</Sider>);<Layout style={{ minHeight: '100vh' }}> {/* 设置最小高度为视口高度 */}<Header className="header">{/* 头部内容 */}</Header>{renderSidebar()} {/* 使用自定义函数渲染侧边导航 */}<Layout><Header style={{ backgroundColor: 'grey' }}>Header</Header><Content style={{ margin: '24px 16px 0' }}>Content</Content><Footer style={{ textAlign: 'center' }}>Footer</Footer></Layout></Layout>
);export default App;

说明:

1、外层的Layout组件设置了minHeight: '100vh',这意味着它会至少占满整个视口的高度

2、内部的Sider和另一个Layout(包含Header、Content、Footer)将会自动填充这个高度,从而实现等高的效果。

3、自定义子组件Sidebar

4、使用自定义函数:renderSidebar是一个自定义函数,它返回一个Sider组件,该组件内部使用了我们定义的Sidebar组件。在Layout结构中,通过调用{renderSidebar()}来渲染侧边导航。

相关文章:

  • Docker日常使用记录
  • c++学习:构造函数
  • 【Micropython教程】点亮第一个LED与流水灯
  • 单细胞Seurat - 细胞聚类(3)
  • RK3568 android11 调试陀螺仪模块 MPU-6500
  • GPT 的基础 - T(Transformer)
  • spring boot 整合 minio存储 【使用篇】
  • kali linux通过aircrack-ng命令破解wifi密码
  • 【Linux】云服务器的Redis被黑
  • 【文献管理】zotero插件4——获取知网pdf、中文文献识别与目录生成
  • 【React 报错】—Remove untracked files, stash or commit any changes, and try again.
  • PostgreSQL常用SQL语句
  • android ROM编译之--repo使用指南
  • 为什么会对猫毛过敏?如何缓解?浮毛克星—宠物空气净化器推荐
  • SpringBoot配置跨域
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2017 年终总结 —— 在路上
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • angular2开源库收集
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • mysql常用命令汇总
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • rabbitmq延迟消息示例
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue-loader 源码解析系列之 selector
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • ​低代码平台的核心价值与优势
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​一些不规范的GTID使用场景
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #微信小程序:微信小程序常见的配置传旨
  • (day6) 319. 灯泡开关
  • (function(){})()的分步解析
  • (SpringBoot)第二章:Spring创建和使用
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (十八)三元表达式和列表解析
  • (十三)Maven插件解析运行机制
  • (四)Controller接口控制器详解(三)
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)Google的Objective-C编码规范
  • (转)项目管理杂谈-我所期望的新人
  • *** 2003
  • ./configure,make,make install的作用
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core 通过 Ef Core 操作 Mysql
  • .net core使用ef 6
  • .NET精简框架的“无法找到资源程序集”异常释疑