초보 개발자

네 번째 과제 카카오톡 프로필 구현 그리고 반응형 웹 ( %, vw, vh, em, rem) 본문

AI 웹개발 트랙 - 내배캠/2주차

네 번째 과제 카카오톡 프로필 구현 그리고 반응형 웹 ( %, vw, vh, em, rem)

taehyeki 2021. 12. 23. 19:54

sparta/projects/kakaotalk at master · taehyeki/sparta (github.com)

 

GitHub - taehyeki/sparta: 스파르타 코딩클럽 웹개발 트랙 1기 !

스파르타 코딩클럽 웹개발 트랙 1기 ! Contribute to taehyeki/sparta development by creating an account on GitHub.

github.com

카카오톡 화면 구현 만들기 과제가 있었고 

old버전 new버전으로 만들어 보았다. 이번에는 instagram 화면을 만드는 것이 과제이다.

근데 화면을 늘렸다 줄였다 할 때 일정 크기가 계속 유지 되어야 한다. 이를 반응형이라고 하는데 이걸 하나도 모른다. 하나씩 차근차근 공부해 나가보자!!!

 

% / em / rem / vw / vh 이렇게 다섯가지 단위가 있다고 한다.. 벌써부터 머리가 아프네

 

%는 부모의 넓이 기준으로 적용된다.

    <div class="center">
        <div class="item-wrap percent-wrap">
            <h1>%</h1>
            <div class="item">item 01</div>
            <div class="item-parent">
                <div class="item">item 02</div>
            </div>
        </div>
    </div>

 

.item-parent{
    width: 50%;
}

.percent-wrap .item{
    width: 50%
}

여기서 max-width, min-width를 줄 수도 있다. min-width로 예를 들면 50%긴 50%를 해주는데..

내가 지정한 값보다 작으면 50% 쓰지말고 내가 지정한 값을 써!!  -----> MIN - WIDTH

반대의 경우라면

만약 150%를 했는데 내가 지정한 값보다 그 값이 크면 내가 지정한 값을 써!! -----> MAX - WIDTH

즉 상한선, 하한선을 지정해 주는 것이다.

 

 

em은 상위 요소의 폰트사이즈의 몇 배인가

<div class="item-wrap em-wrap">
            <h1>em, rem</h1>
            <div class="item-parent">
                <div class="item item-em">
                    item em
                </div>
            </div>
            <div class="item item-rem">
                item rem
            </div>
        </div>

.item-warp(부모)에 폰트사이즈가 24px로 지정되어있다.

.item-em {
    width: 20em;
}

.item-em에는 width를 20em으로 지정해놨다. 따라서 1em이 24px이된다. 1 * 24 * 20 = 480px !

부모의 font-size에 비례해서 늘고 주는 것이 em이다!!

 

rem도 마찬가지다 rem에서 r은 root를 의미한다. 즉  최상위 폰트사이즈가 기준이 된다. 부모든 조상이든 다 무시

 html{ font-szie : 20px} 1rem = 20px이다.

 

 

vw & wh

v는 뷰포트의 약자이다 우리가 보고있는 이 웹페이지의 화면을 뜻한다. vw는 뷰포트의 넓이 vh는 뷰포트의 길이를 말한다. 따라서 우리가 보고있는 이 페이지를 줄였다 늘렸다하면 실시간으로 크기가 변경이 된다.

%와 비슷한데 %는 부모의 크기 기준이고 vw,vh는 부모의 크기 상관없이 오로지 뷰포트 기준이다.