결국 완전히 CSS만으로 해결이 안되었고,
1. Javascript로 style에 새로운 변수를 만들어 디바이스의 세로길이인 window.innerHeight 값을 넣어 보내준 후
2. css에서 해당 값을 가지고 height 값을 정의해주어야 한다.
1. App.js
const App = () => {
const handleResize = () => {
const vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty("--vh", `${vh}px`);
};
useEffect(() => {
handleResize();
window.addEventListener("resize", handleResize);
return () => window.removeEventListener("resize", handleResize);
}, []);
return (
<div className="App"></div>
);
}
export default App;
2. .css
.App {
height: 100vh;
height: calc(var(--vh) * 100);
}
'Programming > CSS' 카테고리의 다른 글
[CSS] 여러 줄의 말 줄임표, '...', ellipsis 처리 (0) | 2022.12.27 |
---|---|
[CSS] 이미지 최적화 코드 추가(chrome) (0) | 2022.05.20 |
[CSS] 텍스트 드래그 방지 (0) | 2022.05.18 |
[Sass/SCSS] 6. Sass/SCSS Mixins 사용법 (0) | 2022.04.25 |
[Sass/SCSS] 5. Sass/SCSS의 연산 (0) | 2022.04.23 |