![](/img/trans.png)
[英]Make Dropdown Menu Item always have the same size as its parent? (Bootstrap & CSS)
[英]CSS Position Material UI Menu item below its parent
我有一个 Material UI 对话框,它只包含一些文本和一个带有菜单选项下拉菜单的图标。 演示可以在这里看到: https://codesandbox.io/s/prod-rain-1rwhf?file=/src/App.js
我正在尝试 position Menu
组件,以便在单击它时它显示在Settings
组件的正下方。 我在父元素(即Settings
图标)上指定了position: relative
以及position: absolute
with top: -10px
到子元素(即Menu
组件),但这似乎不起作用。
如何进行设置,以便在单击“设置”图标时,菜单直接显示在“设置”下方,以及在调整 window 的大小以使菜单跟随时出现?
编辑:
如果打开代码框有任何问题,这就是我所拥有的。
应用程序.js :
import "./styles.css";
import { useState } from "react";
import {
Dialog,
DialogActions,
DialogContent,
DialogTitle,
Divider,
ListItemText,
Menu,
MenuItem
} from "@material-ui/core";
import Settings from "@material-ui/icons/Settings";
export default function App() {
const [openMenu, setOpenMenu] = useState(false);
return (
<div className="App">
<h1 className="blueFont">Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<Dialog fullWidth maxWidth="sm" open={true} hideBackdrop={true}>
<DialogTitle style={{ height: "60px" }}>My title</DialogTitle>
<DialogContent>My Content</DialogContent>
<Divider style={{ width: "100%" }} />
<DialogActions>
<div className="settings">
<Settings onClick={() => setOpenMenu(!openMenu)} />
<div className="menu">
<Menu open={openMenu}>
<MenuItem>
<ListItemText>First option</ListItemText>
</MenuItem>
<MenuItem>
<ListItemText>Second option</ListItemText>
</MenuItem>
</Menu>
</div>
</div>
</DialogActions>
</Dialog>
</div>
);
}
styles.css
.App {
font-family: sans-serif;
text-align: center;
}
.blueFont {
color: blue;
}
.settings {
position: relative;
}
.menu {
position: absolute;
top: -10px;
}
您也可以参考文档
https://mui.com/components/menus
我还创建了一个沙箱
https://codesandbox.io/s/elastic-hooks-0fi6z?file=/src/App.js
const [anchorEl, setAnchorEl] = useState(null);
const handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
const open = Boolean(anchorEl);
<DialogActions>
<div>
<Button id="basic-button" onClick={handleClick}>
Dashboard <Settings />
</Button>
<Menu
id="basic-menu"
anchorEl={anchorEl}
open={open}
onClose={handleClose}
anchorOrigin={{
vertical: "top",
horizontal: "left"
}}
transformOrigin={{
vertical: "top",
horizontal: "left"
}}
>
<MenuItem onClick={handleClose}>Profile</MenuItem>
<MenuItem onClick={handleClose}>My account</MenuItem>
<MenuItem onClick={handleClose}>Logout</MenuItem>
</Menu>
</div>
</DialogActions>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.