Menu
๊ฐ ์ด๋ฆฌ๋ฉด ํ์ด์ง์ ์คํฌ๋กค๋ฐ๊ฐ ์ฌ๋ผ์ง๋๋ค. ์ด๋ ํ์ด์ง ๋ ์ด์์์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ฒ์ด ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋๋ฐ ์ด๋ ์๊ฐ์ ์ธ ๋ฒ๊ทธ์
๋๋ค.
A) ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์์ด ๋ฌธ์ ๋ฅผ ์์ ํ๊ฑฐ๋ B) ๋ฌธ์์์์ด ๋์์ ๊ธฐ๋กํ๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
https://material-ui-next.com/demos/menus/
์ ํํ๋ ํญ๋ชฉ์ ์ปจํ
์ด๋๋ absolute, left: 0, right: 0
์ด๋ฉฐ ์น์
์ text-align: center
๋๋ display: flex; flex-direction: column; align-items: center;
| ๊ธฐ์ | ๋ฒ์ |
| -------------- | --------- |
| Material-UI | 1.0.0- ๋ฒ ํ .29 |
์ด๋ค์ ๋ชจ๋ ๋ซํ ์์ผ๋ฉฐ ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ฒ์ด ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋๋ฐ ์ด๋ ์๊ฐ์ ์ธ ๋ฒ๊ทธ์ ๋๋ค.
@lorensr ๋ณต์ ์๊ฐ ์์ต๋๊น? ์คํฌ๋กค๋ฐ ๋นํ์ฑํ์ ๋ํ ์ ์๋ ค์ง ์ ํ ์ฌํญ์
๋๋ค. .mui-fixed
ํด๋์ค ์ด๋ฆ์ ๊ฐ์ง ์ ๋ ์์น ์์๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๋ฌธ์ํํด์ผํฉ๋๋ค!
์ฐธ๊ณ ๋ก, ์ ๊ฐ ์ฐพ์ ๋ ๋ค๋ฅธ ์ฌ์ค์ .mui-fixed
์์ ์ ๊ณ ์ ์์์๋ ๋ค์์ด์๋ ๊ฒฝ์ฐ์๋ง ์๋ํ๋ค๋ ๊ฒ์
๋๋ค.
box-sizing: content-box;
๊ฐ์ฌํฉ๋๋ค. ์์
์ ์ถ๊ฐํ์ต๋๋ค. content-box
ํ์ํ์ง ์์์ต๋๋ค. ์์๋ border-box
์
๋๋ค.
๋ํ ์คํฌ๋กค ๋ง๋๊ฐ ์ ๊ฑฐ ๋ ๋ right: 0
์์ ๋ด๋ถ์ ๋ธ๋ก ํค๋๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ค๋ฅธ์ชฝ ๊ฐ์ฅ์๋ฆฌ๋ก ๋์ด๋์ง ์์๋ค๋ ์ ์ ์ ์ํด์ผํฉ๋๋ค.
right: -20px
๋ณ๊ฒฝํ์ฌ ์์ ๋์์ผ๋ฏ๋ก ์ด์ CSS๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
main {
position: absolute;
box-sizing: border-box;
left: 0;
right: -20px;
overflow-x: hidden;
}
๋จ์ ์ ์คํฌ๋กค๋ฐ๊ฐ์์ ๋ ๊ฐ์ด๋ฐ ์ ๋ ฌ ๋ ์์์ด ์ด์ ๊ฐ์ด๋ฐ ์ค๋ฅธ์ชฝ์ผ๋ก 10 ํฝ์ ์ด๋์ด ์ค๋ฒํ๋ก๋ฅผ ์จ๊ฒจ์ผํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ์ผ๋ถ ๊ณ ์ ์์์ mui-fixed css ํด๋์ค๋ฅผ ์ ์ฉ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ด ํ์ด์ง ํ๋จ์ ์ ๋ช ํ ์ฑํ ์์ ฏ. ์๋ง๋ ์ธํฐ์ฝค ์์ ฏ์์๋ ๋ฐ์ํฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ํด๊ฒฐ์ฑ
์ ์ฐพ์์ต๋๊น?
๋น์ทํ ๋ฌธ์ ๊ฐ ์์์ง๋ง ์ปจํ
์ด๋๋ ์ ๋์ ์ด์ง ์์์ต๋๋ค. ๋๋ฅผ ์ํด ๊ณ ์น ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ด ํจ๋ฉ์ !important
์ ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค.
padding: 0 !important;
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ธ์ง 100 % ํ์คํ์ง ์์ง๋ง <body>
ํ๊ทธ์ ๋ค์ CSS ์์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
```css
์ ์ฒด {
์์น : ์ ๋;
์ผ์ชฝ : -17px;
์ค๋ฅธ์ชฝ : -17px;
padding-top : 0;
padding-right : 17px;
padding-left : 17px;
padding-bottom : 0px;
overflow-x : ์จ๊น;
overflow-y : auto! important // ์คํฌ๋กค ๋ง๋๋ฅผ ์ฌ๋ผ์ง๊ฒํ๋ ค๋ฉด! important ์ ๊ฑฐ
}
````
๋ค๋ฅธ ์ฌ๋์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง @chrisshaddad ์ ๊ฐ์ด ์๋ชป ๋๊ปด์ง๋ ๋ค์ํ CSS ์ฌ์ ์๋ฅผ ์๋ํ ํ ์ด์ ์ ์ ์ฒด ์ฑ์ overflow-y: scroll
์ (๋ฅผ) ๊ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ํ์ด์ง์ ๊ธธ์ด๊ฐ ๋ค์ํ๊ธฐ ๋๋ฌธ์ ์ฑ ์ ์ฒด์์ y ์ถ ์คํฌ๋กค๋ฐ๋ฅผ ๊ฐ์ ๋ก ์ฌ์ฉํ์ต๋๋ค. ์ผ๋ถ๋ y ์ถ ์คํฌ๋กค์ด ํ์ํ๊ณ ์ผ๋ถ๋ ํ์ํ์ง ์์ต๋๋ค.
์ถ๊ฐ body
๋๋ ์ธ๋ผ์ธ ์คํ์ผ์ ๋ฐฐ์นํ๋ ๋์ overflow-y: scroll
๋ฅผ ๊ณ ์ ๋ AppBar / Header ์๋์ ์ฝํ
์ธ ๋ก ๋ถ๋ฆฌํ์ฌ ์ด๋์ ์์ ํ ์์์์ต๋๋ค. ์ด์ ์คํฌ๋กค๋ฐ๊ฐ body
์๋ ํ์ด์ง ์ฝํ
์ธ ์ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ฌ / ๋ฉ๋ด์์ ์ด๋ํ์ง ์๊ณ ์ ์ฒด ์ฐฝ์ด ์๋ ํ์ด์ง ์ฝํ
์ธ ์ ๋ํ ์๋ก ์คํฌ๋กค๋ฐ๊ฐ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก DOM์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<div>
<Header />
<div className="pageContent">
<div className="page">
<Route exact path="/pathToPage"> component={PageContent} />
</div>
</div>
</div>
CSS (ํค๋์ ๋์ด๋ 45px) :
.pageContent {
position: absolute;
top: 45px;
left: 0;
right: 0;
bottom: 0;
}
.pageContent .page {
height: 100%;
overflow-y: scroll;
}
์๋ ํ์ธ์,
๋๋ ํ์ฌ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ์ธ๊ธ ๋ ํด๊ฒฐ์ฑ ์ค ์ด๋ ๊ฒ๋ ๋ด ํ๋ณต์ ์ฐพ์ ์ ์์์ ์ธ์ ํด์ผํฉ๋๋ค.
๋ด๊ฐ ์ดํด ํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด Modal
์ ์คํฌ๋กค๋ฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Modal
๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ธ ๊ฒ์์ ์ํํ๊ณ Modal
๊ฐ ํญ์ ํ์ํ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ๋ฉ๋๋ค. ๋ด์ฉ์ด ์งง์ต๋๋ค.
์ธ๊ธ ํ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ
์ ๋ํด ์๊ฐํ๋ฉด์ Material-UI๊ฐ Modal
, Dialog
, Menu
๊ด๋ จ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด ์คํฌ๋กค ๊ฐ๋ฅํ ์์ฑ์ ๊ตฌํํ ์์๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. Menu
๋ฐ ๊ธฐํ ํ์
์์. ๊ธฐ๋ณธ์ ์ผ๋ก์ด ๋ถ์ธ ์์ฑ์ false์ด์ง๋ง ๊ตฌ์ฑ ์์์ ์คํฌ๋กค ๋ง๋๋ฅผ ํ์ํ๋ ค๋ฉด true ์ผ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์๋ค๋ฉด ์ด์ ์ ์์ด๋์ด๋ฅผ ์ ํธํ๋๋ผ๋ ScrollBar
๊ตฌ์ฑ ์์๋ฅผ ์์ ํ ๊ตฌํํ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๋งํ ๊ฒ๋ณด๋ค ๋ ์ฝ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋๋ ๋น์ ์ดํ๊ณ ์๋ ๋ฐ์ด๋ ์ผ์ ๊ฐ์ฌํ๊ณ ์ถ์ต๋๋ค.
FWIW ๋ฐฉ๊ธ ๊ธ๋ก๋ฒ body { overflow-y: scroll }
์ค์ ํ๋๋ฐ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@avdd ๋ชจ๋ฌ์ด ์๋ ๋ณธ๋ฌธ์์ ์คํฌ๋กค ํ ์ ์์ผ๋ฏ๋ก ๋์์ด๋์ง ์์ต๋๋ค.
@rememberYou ๋ชจ๋ฌ์ ๋ฎ์ ์์ค์ ๊ธฐ๋ณธ ์์์ด๋ฏ๋ก ๋์ ๋ํ ์์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. https://material-ui.com/demos/dialogs/#scrolling -long-content.
@rememberYou ModalManager๋ ๋ชจ๋ฌ์ด ํ์ ๋ ๋ ์ปจํ
์ด๋ ์์ (๋ณธ๋ฌธ)์ ์ง์ overflow:hidden
์ค์ ํ๊ณ ๋ชจ๋ฌ์ด ์๋ฃ๋๋ฉด ์ฌ์ค์ ํ๋ฏ๋ก ์ ์๊ฒ ์ ํฉํฉ๋๋ค.
@oliviertassinari ์๋ฃจ์
์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@avdd ์ฃ์กํฉ๋๋ค. ModalManager
์๋ํ์ง ์์์ต๋๋ค.
@lorensr ์ด๊ฒ์ด ์ฌ์ ํ ๋ฌธ์ ์ ๋๊น?
@oliviertassinari ๋ง์ง๋ง์ผ๋ก Dialog
์๋ํ์ง๋ง ์ ์๋ํ์ง๋ง ๋ ํน๋ณํ ๋์์ธ์ ์ํ๊ธฐ ๋๋ฌธ์ Modals
๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
๋ฌธ์ ๋ ๋ก๊ทธ์ธ์ผ๋ก ๋์๊ฐ๋ ๋งํฌ๊ฐ์๋ ๋ ๋ฒ์งธ Modal
(SignUp)์ ์ฌ๋ ๋งํฌ๊ฐ์๋ Modal
(๋ก๊ทธ์ธ)์ด ์๋ค๋ ๊ฒ์
๋๋ค.
์ด ๊ฒฝ์ฐ, ๋ด๊ฐ ์ฌ์ฉํด์ผํฉ๋๊น ModalManager
์ฝ๊ฒ ์ถ๊ฐํ๊ณ ์ ๊ฑฐ Modal
? ๋ฌธ์ ์ ์ฃผ์ ์์ ๋ฒ์ด๋์ ์ฃ์กํฉ๋๋ค. ์ฃผ์ ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
@nathanmarks ์, ๋ชจ๋ฌ ๊ตฌ์ฑ ์์ ๋ฌธ์ ํ์ด์ง์ ์ฌ์ ํ .mui-fixed
์ธ๊ธ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
3.5.1 ์ฌ์ฉ-๋ซ๊ธฐ ์ ์ ๋ํ ์์๊ฐ ์ผ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ฌํ ๊ฐ๋ฅ https://material-ui.com/demos/dialogs/-Simple Dialog ๋ฐ๋ชจ๋ฅผ ์ด๊ณ ๋ซ์ต๋๋ค.
ํ ์คํธ ํ v3.3์์ ์์๋์์ต๋๋ค.
@ stephen099 ๋ณด๊ณ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ํ์ธํ์ง๋ง ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค.
ํค๋ (์ต์ mui ์ฌ์ฉ)์์ mui-fixed
๊ฐ ํด๋์ค ์ด๋ฆ์ ์ถ๊ฐ๋์์ง๋ง ํ ๋น ๋ ์คํ์ผ์ด ์์ต๋๋ค (ํค๋๋ฅผ ๊ฒ์ฌํ์ฌ mui-fixed
๊ฐ ์์).
์์ด 'ํจ๋ฉ ์ถ๊ฐ'๊ฐ ์ฒ์์ ๋ฐ์ํ๋์ง ๊ถ๊ธํฉ๋๋ค. ์ ํ์ํ๊ฐ์? ๋๋ฅผ ์ํด ๊ทธ๊ฒ์ Menu
๊ตฌ์ฑ ์์์ ์ํด ๊นจ์ก์ต๋๋ค.
!important
...๋ก CSS ์คํ์ผ์ ์ฌ์ ์ํ์ง ์๊ณ ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋กํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? ๊ฐ์ฌ
@vajnorcan mui-fixed
ํด๋์ค ์ด๋ฆ์ body ์์์์ ์คํฌ๋กค์ ์ ๊ธ ๋ ์์ ์์น๊ฐ ๋ณ๊ฒฝ ๋ ๊ฒ์์ ๋ฉ๋ด์์ ์ฌ์ฉํ๋ ๋ชจ๋ฌ ๊ตฌ์ฑ ์์์ ์๋ฆฝ๋๋ค. ์์ ํจ๋ฉ ์ค๋ฅธ์ชฝ ์คํ์ผ๋ก ์คํฌ๋กค๋ฐ ๋๋น ์ ๊ฑฐ๋ฅผ ๋ณด์ํฉ๋๋ค. CodeSandbox์ ์ต์ํ์ ๋ณต์ ์์ ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ๊ฐ์ฌํฉ๋๋ค.
.mui-fixed๋ฅผ ์ด๋์ ๋์์ต๋๊น? ๋ฉ๋ด๋ฅผ ์ฌ๋ ์ ํ ์์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@ capsule5 ๋ฉ๋ด๊ฐ ์ด๋ฆด ๋ ์คํฌ๋กค๋ฐ๊ฐ ๋นํ์ฑํ๋์ด "์ ํ"ํ๋ ์์์ ์ถ๊ฐํด์ผํ๋ฉฐ (์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ์ค๋ฅธ์ชฝ์ ๊ณ ์ ๋ ์์ ์ฌ์ผ ํจ) ํจ๋ฉ์ด ์ฒ๋ฆฌ๋ฉ๋๋ค .
๋ํ ์์์ ์ธ๊ธํ๋ฏ์ด์ด๋ฅผ ์ ์ญ ์คํ์ผ์ ์ถ๊ฐํด์ผ ํ ์๋ ์์ต๋๋ค.
.mui-fixed {
/*
* make sure that added right padding
* actually pushes contents to the left
*/
box-sizing: content-box;
}
์ด ์ค๋ ๋์๋ ์ฌ์์ฐ์ด ์์ต๋๋ค. ๋ซ์ต๋๋ค.
@cvara ์ฐ๋ฆฌ๋ # 9275์์ ๊ทธ๊ฒ์ ์ถ์ ํฉ๋๋ค.
์ดํด๊ฐ ์๊ฐ์, ํด๊ฒฐ ๋์๋์? v0.9์์ v4๋ก ์
๊ทธ๋ ์ด๋ํ๋๋ฐ ์ด์ ๋ชจ๋ฌ์ ์ด๋ฉด ์ฝํ
์ธ ๊ฐ ์ผ์ชฝ์ผ๋ก ์ด๋ํฉ๋๊น ( padding-right: 17px
)? ์ด์ ๋ํ ๊ถ์ฅ ์๋ฃจ์
์ ๋ฌด์์
๋๊น?
๋์ค์ ํธ์ง :
์ ๊ฒฝ์ฐ์๋ overflow-y: scroll !important;
๊ฐ ์์๊ธฐ ๋๋ฌธ์์ด ์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด padding-right: 0px !important;
๋ ์ถ๊ฐํด์ผํ์ต๋๋ค.
๋ด๊ฐ ๊ณ ์น ๋ฐฉ๋ฒ์ ๋ด ๊ตฌ์ฑ ์์์ disableScrollLock={ true }
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค. :)
@Toshiuk ์ด๋ค ๊ตฌ์ฑ ์์?
@wongjiahau ๋ชจ๋ฌ ๊ตฌ์ฑ ์์ v4 +
๋ฉ๋ด์ disableScrollLock์ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ ๋์๊ฒ๋ ์ฌํ๋๊ณ ์์ต๋๋ค. ๋ฉ๋ด ํญ๋ชฉ์ ์ถ๊ฐํ๋ ํ์ฌ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ disableScrollLock์ ์ถ๊ฐํ๋ ๊ฒ์ ํ๋นํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์์ ๋์ด์ผํฉ๋๋ค. ์คํฌ๋กค๋ฐ๊ฐ ์ค์ ๋ก ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฐ์ง ํ ์ ์์ต๋๋ค.
@archfz ๋ณต์ ํ์ด ์์ต๋๊น?
๋๋ Select
๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ๋ชฉ๊ฒฉํ๊ณ ์์ต๋๋ค. Select
๋๋กญ ๋ค์ด์ด ์ด๋ฆด ๋๋ง๋ค overflow: hidden, padding-right: 15px
๊ฐ ๋ด ์ฑ์ ๊ธฐ๋ณธ body
ํ๊ทธ์ ์ถ๊ฐ๋ฉ๋๋ค. ์คํ์ผ์ ์ฌ์ ์ํ๋ ๊ฒ ์ธ์ ํด๊ฒฐ์ฑ
์ด ์์ต๋๊น? ์ด๊ฒ์ ์์ ๋ ํ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@WholemealDrop ํ๋ก์ฐ # 17353.
@oliviertassinari ahah ๋ถ๋ช ํ ๋ด ๊ฒ์ ๊ธฐ์ ์ด ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
@oliviertassinari ์ ๋ ๋ฌธ์ ๋ฅผ ํต์ฌ์ผ๋ก ์ค์ผ ์์์์ต๋๋ค. ๋ฌธ์ ๋ display : flex + minHeight : 100vh + body no padding and margin์ด ๊ฒฐํฉ ๋ ๋ ์ด๋ป๊ฒ ๋ ์๋ชป๋ ๊ณ์ฐ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฝ๋๊ฐ ๊ฑฐ๊ธฐ์ ์คํฌ๋กค๋ฐ๊ฐ์์ ๊ฒ์ผ๋ก ์์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ ์์ต๋๋ค. ์ด ์ฝ๋๋ ๋ฌธ์ ๋ฅผ ์ฌํํด์ผํฉ๋๋ค.
import React, {FunctionComponent, SyntheticEvent, useState} from 'react';
import {IconButton, Menu, MenuItem, Tooltip} from "@material-ui/core";
import TranslateIcon from "@material-ui/icons/Translate";
import MuiAppBar from "@material-ui/core/AppBar";
import Toolbar from "@material-ui/core/Toolbar";
const AdminAppContainer: FunctionComponent = () => {
const handleMenu = (event: SyntheticEvent) => setAnchorEl(event.currentTarget);
const [anchorEl, setAnchorEl] = useState<Element | null>(null);
const open = Boolean(anchorEl);
const handleClose = () => setAnchorEl(null);
const body = document.getElementsByTagName('body')[0];
body.style.margin = "0";
body.style.padding = "0";
return (
<div style={{ display: 'flex', minHeight: '100vh'}}>
<MuiAppBar color="secondary" >
<Toolbar>
<div style={{flex: 1}}></div>
<div>
<Tooltip title='asd'>
<IconButton onClick={handleMenu}><TranslateIcon /></IconButton>
</Tooltip>
<Menu anchorEl={anchorEl} open={open} onClose={handleClose}>
<MenuItem key={'test'} onClick={handleClose}>Test</MenuItem>
</Menu>
</div>
</Toolbar>
</MuiAppBar>
</div>
)
};
@archfz codesandbox ๋ฅผ ๋ง๋์๊ฒ ์ต๋๊น? (๋ฌธ์ ์์ ์ค ํ๋๋ก ์์ํ ์ ์์ต๋๋ค.)
@archfz ์ฃ์กํฉ๋๋ค, ์ด๊ฒ์ ๋์ณค์ต๋๋ค.
์ฌ๊ธฐ์ ๋ฌด์์ ์ฐพ๊ณ ์์ต๋๊น? ๋ ์ด์์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
@archfz ์ฃ์กํฉ๋๋ค, ์ด๊ฒ์ ๋์ณค์ต๋๋ค.
์ฌ๊ธฐ์ ๋ฌด์์ ์ฐพ๊ณ ์์ต๋๊น? ๋ ์ด์์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
์ค๋ฅธ์ชฝ ์๋จ์ ๋ฌธ์๋ฅผ ํด๋ฆญํ๋ฉด ๋ฉ๋ด ํญ๋ชฉ์ด ์ด๋ฆฌ๋ฉด ์ผ์ชฝ์ผ๋ก ์ด๋ํ๊ณ ๋ฉ๋ด ํญ๋ชฉ์ด ๋ซํ๋ฉด ์ค๋ฅธ์ชฝ์ผ๋ก ๋ค์ ์ด๋ํฉ๋๋ค.
์๋ก์ด ๋ฌธ์ ๋ฅผ ์ด โโ์ ์์ต๋๊น? ๋ญ๊ฐ ์๋ก์ด ๊ฒ ๊ฐ์ต๋๋ค.
@archfz ์ข์, ๋๊ตฌ ์ค๋ช ๊ณผ ์ถฉ๋ํฉ๋๋ค. ๋ฌด์ํฉ์๋ค.
@oliviertassinari ๊ธ์, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ง์ง ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ ๋ฌด์ํด์๋ ์๋ฉ๋๋ค. React-admin์ ๋จธํฐ๋ฆฌ์ผ UI๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ค์ ๋ก๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌธ์ ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค https://github.com/mui-org/material-ui/issues/19203
@Toshiuk ๊ฐ ๋ค์ ๋ฐ๋ณตํ๋ ์๋ฃจ์ ์ ๋ค์์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋ฉ๋ด, ์คํ์ผ ๋ฉ๋ด :
disableScrollLock={ true }
๊ณ ๋ฅด๋ค:
MenuProps={{ disableScrollLock: true }}
์๋ฃจ์ ์ ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ๋ง๋ค์ด์ผํฉ๋๋ค! :-)
๋ฉ๋ด๋ฅผ ์ด ๋ ํด๋ฐ์ ๋ฐฐ๊ฒฝ์์ ๋ฌธ์ ๊ฐ ์๊ณ ์คํฌ๋กค๋ฐ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
๋ค์์ ์์
๋๋ค.
https://codesandbox.io/s/material-demo-nj80l
๋๊ตฐ๊ฐ ์ด๋ป๊ฒ ๊ณ ์ณ ์ง๋์ง ์์?
๋ค์ CSS๋ฅผ ์ถ๊ฐํ์ญ์์ค.
body {padding-right : 0px! important; }
์๋
ํ์ธ์, ๋ด ์ฑ ์์์ด ์๋ฃจ์
์ ์ฌ์ฉํฉ๋๋ค.
๋ด ๊ตฌ์ฑ ์์ <Menu>
๋ฐ ๋ด CSS์ disableScrollLock={true} disablePortal={true} id="custom"
์ถ๊ฐ
#custom {
.MuiPopover-paper,
.MuiPopover-paper {
max-height: inherit !important;
}
}
์ด๊ฒ์ ์ ๊ฒฝ์ฐ์ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. ์ด ํธ๋ฆญ์ด ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
Dialogs ์์ ์์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ต๋๋ค. ๋ค์์ ์ฝํ ์ธ ์ด๋์ ์ ๊ฑฐํ๊ณ ์ฌ์ ํ ๊ธฐ๋ณธ ํ์ด์ง์ ์คํฌ๋กค์ ์ ๊ทธ๊ฑฐ๋ ์คํฌ๋กค ๋ง๋๋ฅผ ์ ๊ฑฐํ๋ ์ ์ผํ ์๋ฃจ์ ์ ๋๋ค.
ํด๊ฒฐ์ฑ
:
์ฑ์์ ๊ฐ์ฅ ๋ฐ๊นฅ ์ชฝ ์ปจํ
์ด๋ div ๋๋ ๊ฐ์ฅ ๋ฐ๊นฅ ์ชฝ div (์ ์ฒด ์ฑ์ ์บก์ํํ๋ ์ปจํ
์ด๋)๋ก ์ด๋ํ๊ณ ๋๋น๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํฉ๋๋ค.
width: calc(100vw - 1px);
1px
๋ 34px
๋๋ ๊ธฐํ ๋ฎ์ ๊ฐ์ผ๋ก ๋์ฒด ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ํ ์์๋ฅผ ์ด๋ฉด ๊ธฐ๋ณธ ํ์ด์ง์ ์คํฌ๋กค ๋ง๋๊ฐ ์จ๊ฒจ์ง๊ณ ์ฝํ
์ธ ์์น์ ์ด๋ค ์ข
๋ฅ์ ์ด๋๋ ์์ฑ๋์ง ์์ต๋๋ค. ์คํฌ๋กค์ ์ฌ์ ํ โโ๊ธฐ๋ณธ ํ์ด์ง์ ๋ํด ์ ๊ฒจ ์์ผ๋ฉฐ ๋ํ ์์์ ๋ํด์๋ ์คํฌ๋กค์ด ๊ฐ๋ฅํฉ๋๋ค.
disableScrollLock = {true}
๋น์ ์ ๋จ์ง ํ๋ฅญํฉ๋๋ค, ๊ฐ์ฌํฉ๋๋ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ด๊ฐ ๊ณ ์น ๋ฐฉ๋ฒ์ ๋ด ๊ตฌ์ฑ ์์์
disableScrollLock={ true }
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. :)