CSS calc() 계산식 질문드려요

CSS calc() 계산식 질문드려요

QA

CSS calc() 계산식 질문드려요

답변 3

본문

개인적으로 CSS를 공부하는데 특이한 계산식을 봐서 어떻게 계산하는지 알고싶어 질문드립니다.

 

https://jdnconnects.co.kr/kor/about/

^ 제가 본 사이트입니다

 


.about .s1 .cont .title dt h1::after {content: ''; width: calc(114/200*1em); height: calc(114/200*1em); border-radius: 50%; background: #0091e4; mix-blend-mode: difference; position: absolute; right: calc(-1 * (30/200*1em)); top: calc(-1 * (10/200*1em)); }

 

calc(114/200*1em); 나 calc(-1 * (30/200*1em)) 등의 계산식이 사용된 사이트인데 이걸 쓰면 모바일에서 반응형을 잡지 않아도 된다고 하는데 어떤 식으로 이런 계산식을 만드는지 아시는 분 계실까요?

이 질문에 댓글 쓰기 :

답변 3

em 의 경우 부모속성을 승계하기 때문에

해당 CSS 만으로는 반응형과 상관없습니다.

 

calc(114/200*1em) 일 경우

 

상위 오브젝트에서 승계된 폰트 사이즈가 16px 일 경우 1em = 16px 이 됩니다.

114 / 200 * 1em(16px) 이렇게 계산되겠죠.

CSS의 calc()는 단순한 연산 도구이며, 반응형을 자동으로 만들어 주는 요소는 아닙니다.

반응형을 원한다면 em과 함께 vw, %, rem 등의 단위를 조합하여

부모 요소의 font-size가 화면 크기에 따라 조정되도록 설정해야 합니다.

 

님께서 본 사이트에서 반응형이 된다고 언급한 이유는,

부모 요소의 font-size가 vw 또는 % 단위로 설정되어 있어,

em 단위도 함께 변하기 때문일 가능성이 큽니다.


*적절한 반응형 접근법 (예시)

html {
  font-size: 2vw; /* 뷰포트 너비의 2%를 기준으로 설정 */
}

.about .s1 .cont .title dt h1::after {
  width: calc(114/200 * 1em); /* 부모 폰트 크기에 비례 */
  height: calc(114/200 * 1em);
  right: calc(-1 * (30/200 * 1em));
  top: calc(-1 * (10/200 * 1em));
}

- 이렇게 하면 em 단위가 vw에 따라 조정되므로,

  요소 크기가 뷰포트 크기에 맞춰 자동으로 반응형 조정됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 61
© SIRSOFT
현재 페이지 제일 처음으로