인프런 커뮤니티 질문&답변
혹시 canvas에 margin을 준경우
작성
·
369
퀴즈
HTML Canvas 요소를 화면 크기에 맞춰 반응형으로 동적 조절할 때, 가장 핵심적으로 사용되는 방법은 무엇일까요?
CSS media 쿼리를 사용하여 고정된 크기 값을 여러 개 정의한다.
자바스크립트로 현재 화면의 비율을 계산하여 캔버스 크기에 적용한다.
캔버스에 `width: 100%; height: 100%;` CSS 스타일을 적용한다.
캔버스에 Flexbox 속성을 직접 적용하여 크기를 유연하게 조절한다.
답변 1
0
일단 CSS에서 캔버스에 .sticky가 붙었을 때는 margin이 안생기도록
.image-blend-canvas.sticky {
.....
.....
margin-top: 0 !important;
}
을 추가해 주시고요~ (나중에 스크립트로 margin이 들어가기 때문에, sticky가 붙었을 때는 무조건 margin-top: 0이 적용되도록 !important를 넣어주었습니다)
캔버스의 margin-top을 설정하는 스크립트 부분에도 추가한 마진을 같이 계산해주도록 수정하면 되겠네요~
20vh로 하셨으니 window.innerHeight * 0.2로 계산을 하면,
objs.canvas.style.marginTop = 0;
이 부분은
objs.canvas.style.marginTop = `${window.innerHeight * 0.2}px`;
로 수정해주시고
objs.canvas.style.marginTop = `${scrollHeight * 0.4}px`;
이 부분은
objs.canvas.style.marginTop = `${scrollHeight * 0.4 + window.innerHeight * 0.2}px`;
이렇게 수정해주시면 될 것 같습니다.




