解决使用React+Antd时,内容区高度撑开页面滚动条导致侧边栏高度不够的问题

目录

问题描述:               

解决:

   2.   (推荐)  给内容区设置最大高度,然后超出部分自己会撑开内容区自己的滚动条,不会影响整个页面。

问题描述:               

                           当我们把侧边栏的高度设为   100vh-顶部导航栏的高度    后

如果内容区高度大于视窗高度,就会撑开整个页面的滚动条,

滚动到最底部时就会导致侧边栏的高度不够,显示出布局背景的颜色。

解决:

   1.    把布局背景的颜色改为侧边栏的背景颜色,可以解决问题但并不推荐这样做。

   2.   (推荐)  给内容区设置最大高度,然后超出部分自己会撑开内容区自己的滚动条, 不会影响整个页面。

          给内容区的<content></content>  标签加入以下行内样式

maxHeight:'calc(100vh - 64px)',
overflow: 'auto'

          这是整个页面的布局

             <Layout>
                <Header style={{ padding: 0 }}><Topbar /></Header>
                <Layout>
                    <Sider width={200}><Sidemenu /></Sider>
                    <Layout>
                        <Content style={{
                            padding: 15,
                            margin: 0,
                            maxHeight:'calc(100vh - 64px)',
                            overflow: 'auto'
                        }}>
                            <Outlet></Outlet>
                        </Content>
                    </Layout>
                </Layout>
            </Layout>

        修改前:

       修改后:

 

可以看出,滚动条没有超过内容区,问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现一个悬浮的侧边,可以使用 React 和 Ant Design 框架。 首先,需要创建一个组件来包含侧边内容。可以使用 Ant Design 的 `Layout` 组件来创建页面布局。然后,在 `Layout` 组件中添加一个 `Sider` 组件来作为侧边。 接下来,需要使用 CSS 样式来使侧边悬浮。可以设置 `position: fixed` 和 `z-index` 属性来实现悬浮效果。还可以添加动画效果来使过渡更平滑。 最后,需要在页面中添加一个触发侧边显示/隐藏的按钮。可以使用 Ant Design 的 `Button` 组件,并添加一个点击事件来控制侧边的显示和隐藏。 下面是一个简单的代码示例: ```jsx import React, { useState } from 'react'; import { Layout, Button } from 'antd'; import './styles.css'; const { Sider } = Layout; const Sidebar = () => { const [visible, setVisible] = useState(false); const handleToggle = () => { setVisible(!visible); }; return ( <Layout> <Sider className={`sidebar ${visible ? 'open' : 'closed'}`}> <h2>Sidebar content</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </Sider> <Layout> <Button onClick={handleToggle}>Toggle sidebar</Button> <div>Main content</div> </Layout> </Layout> ); }; export default Sidebar; ``` 在上面的示例中,`Sidebar` 组件包含一个 `Sider` 组件和页面的主要内容。`visible` 状态用于控制侧边的显示和隐藏。当侧边显示,`sidebar open` 样式类将应用于 `Sider` 组件,使其悬浮在页面上。`handleToggle` 函数用于切换侧边的状态。最后,页面上的 `Button` 组件用于触发 `handleToggle` 函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值