首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现抽屉式MUI v5组件的响应宽度?

如何实现抽屉式MUI v5组件的响应宽度?
EN

Stack Overflow用户
提问于 2022-02-06 08:43:19
回答 2查看 1.2K关注 0票数 1

我正在使用材料UI v5,并试图制作一个响应抽屉,对于较小的设备,它将占用屏幕宽度的100%,而对于较大的设备,它应该只占屏幕宽度的1/3。但我不知道如何访问纸张属性来修改实际宽度并使其响应。

我的代码:

代码语言:javascript
复制
import { Drawer, styled } from "@mui/material";

const ResponsiveDrawer = styled(Drawer)(({ theme }) => ({
  [theme.breakpoints.up("md")]: {
    width: "33%", // THIS ONLY CHANGES DRAWER WIDTH NOT PAPER WIDTH INSIDE THE DRAWER
  },
  [theme.breakpoints.down("md")]: {
    width: "100%",
  },
}));

export { ResponsiveDrawer };

我如何使用它:

代码语言:javascript
复制
import { ResponsiveDrawer } from "./Style";

<ResponsiveDrawer
            anchor="right"
            open={drawer.state}
            onClose={() => drawer.onClick(false)}
        >
            ...
</ResponsiveDrawer>
EN

回答 2

Stack Overflow用户

发布于 2022-02-06 09:32:37

我在发完这个问题后不久就想出了答案。这涉及到使用useMediaQuery的内联样式。

代码语言:javascript
复制
const largeScreen = useMediaQuery(theme.breakpoints.up("sm"))

<Drawer
            anchor="right"
            open={drawer.state}
            onClose={() => drawer.onClick(false)}
            PaperProps={largeScreen ? {
                sx: {
                    width: 450,
                }
            } : {
                sx: {
                    width: "100%",
                }
            }
            }
        >
            <CartContent cart={cart} drawer={drawer}/>
        </Drawer>
票数 1
EN

Stack Overflow用户

发布于 2022-02-06 09:01:33

您可以像这样在<Drawer><SwipeableDrawer>组件中添加div,并通过CSS控制div的宽度(如果您愿意的话,可以使用情感/样式)。

代码语言:javascript
复制
<Drawer ...>
  <div className="container">...</div>
</Drawer>
代码语言:javascript
复制
.container {
  width: 95vw; // for mobile

  ... add media queries for rest of the screen sizes here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71005511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档