
viewport
vw 전체 윈도우 창 기준 퍼센트 가로 길이
vh 전체 윈도우 창 기중 퍼센트 세로 길이
⇒ 문제) 핸드폰은 세로가 더 긴데 어떻게 함?
vmax vmin 사용하면 더 긴 화면 기준으로 설정 가능
calc(50% + 50vh + 100px) 언제 쓰는지 예시) 전체 화면에 스크롤바가 생기지 않도록 하면서 어떤 div를 꽉 채우고 싶을 때 해당 div의 height을 100vh로 하면 부모 div의 padding 속성 때문에 스크롤바가 생김 따라서 부모의 padding 크기*2만큼 빼주어야 할 때 calc 사용cf.) font의 % vs. box의 % 다름
font도 vh 사용 가능 → 창 크기에 따라서 폰트 사이즈 조절할 때 용이
marginpadding// margin: 0, padding: 0인데도 아래 공간?
부모 요소 내의 자식 요소에 적용되는 margin이 부모 요소 밖에서도 적용될 수 있다는 것 ⇒ 부모 요소의 경계선을 밀어낼 수도, 그 밑의 다른 요소를 밀어낼 수도 있다는 것
//inline-block은 margin: auto 적용 안됨?
상자 형태를 가지지만 텍스트 플로우에 따르는 inline의 특성도 가지고 있기 때문에 부모 요소의 text-align: right으로 되어 있으면 auto가 적용이 안되는 것처럼 보이는
border
속성들 나열해줘도 됨
border-style
solid 웬만한 테두리는 다 soliddashed 점선dotted 땡땡이box-sizing
content-box 일 때는 border 영역과 컨텐츠 영역과 패딩 영역이 구분됨 (패딩과 보더 영역을 제외한 부분에 width 적용됨)border-box 일 때는 모든 영역이 다 포함됨 (대체로 위의 상황보다 더 작아짐)border-radius
0 16% 또는 0 1.6em 이런 식으로 원하는 쪽에만 적용 가능
상단 왼쪽에서 시계 방향 순서로 적용된다 생각
border-radius: 50% = 동그라미/타원
border-top-right 이런 식으로 따로따로 지정도 가능
overflow 부모보다 자식이 더 클 때
box-shadow
background-image
none
url(상대적 주소 or 절대적 주소)
background-repeat
repeat 기본 설정
이미지 크기 > 요소 크기
같은 이미지 종횡으로 반복 - 안 들어가는 부분 잘림
no-repeat
한 개만 나옴
repeat-x / repeat-y
x: 가로 y: 세로 방향으로만 반복
space
사이사이에 들어갈 수 있는 만큼 들어가고 각 이미지 가운데 스페이스 들어감
round
이미지 크기를 조절하여 요소 크기에 딱 맞게 들어감
repeat space 이렇게 가로 세로 설정 따로 해 조합하여 사용 가능
background-position
기본: 왼쪽 위
top left, top (위 가운데), bottom, left, right, center
bottom right 처럼 조합 사용 가능
퍼센트: 이미지의 중심축이 부모 요소의 몇%에 오도록
50% 50% == center와 같은 효과
구체적으로 설정 가능
bottom 10px right 3vw
**background-size
auto: 이미지의 기본 사이즈에 맞춤
10%, 100% 차
직접 px로 가로 세로 지정 가능
가로/세로 지정 나머지 auto 지정도 가능
contain: 요소를 넘어가는 큰 쪽에 맞춰서 배치
contain에 background-repeat: no-repeat랑 background-position: center로 해주면 원하는대로 나옴
근데 요소에 꽉 채우고 싶다? → cover 사용
cover: 요소를 넘어가지 않는 쪽에 맞춰서 배치
어차피 이미지 하나로 꽉 찰테니 repeat은 안 지정해도 됨
근데 position: 중요한 내용이 담긴 이미지 구역으로 맞춰지도록 해야 함
background
linear
linear-gradient(217deg, red, transparent 70%),
linear-gradient(127deg, lime, transparent 70%),
linear-gradient(336deg, blue, transparent 70%);
이렇게 하면 인스타 로고 느낌으로 여러 그라데이션 합친 느낌 가능
radial
etc. MDN 문서 확인
cf.) font-size → 부모 요소와 같은 속성으로 기본 적용됨
positionstatic 기본 속성
따로 지정 X
페이지 흐름에 맡김
top, left, z-index 속성에 영향 X
relative
원래 있어야 할 자리를 기준으로 top left 속성 지정한 위치
근데 의자는 그대로 있고 내가 움직이듯이 다른 요소들에 영향 주지 않음
내 의자도 그 자리에 있기 때문
**absolute
본인의 가장 가까운 static이 아닌 부모를 기준으로 top left (or bottom&light) 속성 지정한 위치
// 여기서 가장 가까운 부모가 relative인 경우에 relative를 빼면 기본 속성인 static으로 바뀌어서 맨 바깥 즉 viewport를 기준으로 top left 속성 지정한 위치에 자리하게 됨 (왜? position이 static이면 그 자식 요소의 absolute position의 기준으로 삼을 수 없음)
페이지 요소가 흐름에서 벗어나게 됨 - 흐름에서 벗어나 원하는 곳으로 감
무슨 말이냐?
absolute로 지정한 자식 요소가 차지하던 자리에 다른 자식 요소들이 들어온다는 것
// word doc.에서 이미지 삽입 시 block으로 넣을 것인지 다른 텍스트의 흐릅을 방해하지 않고 위에 넣을 것인지 지정할 때 쓰이는 개념
fixed
항상 viewport가 기준
언제나 떠 있는 팝업창과 같은 요소에 쓰이는 개념
sticky
어디까지 스크롤해서 움직일 수 있는지 지정하는 것
움직이다가 어느 순간을 기점으로 움직이지 않게 하는 요소에 쓰임
sticky 요소가 있길 바라는 가장 바깥 요소에 함께 두어야 모든 화면에서 원하는 패딩과 함께 등장하겠지?
auto 기본 (0이나 다름 없음)
인위적인 숫자를 주어서 위아래로 움직일 수 있음
top, bottom, left, right로 화면 상의 위치 조정 가능
높이 너비 지정되지 않은 경우
right = 0으로 해주면 같은 크기를 유지하며 오른쪽에 붙는 게 아니라 그 위치를 유지하면서 크기가 오른쪽에 붙는 크기로 변환됨
위에서 얼마 아래에서 얼마 이런 식으로 인위적인 크기 만들어줄 수 있음
auto
브라우저가 결정
default 화살표로 고정
none 커서 사라짐
pointer 손꾸락
zoom-in 돋보기
not-allowed 금지 표시
display: none해당 요소 화면에서 사라지게
⇒ 양이 방대하여 제대로 정리를 못했습니다😭
align-items vs. align-contents
align-items는 분할 된 구역 내에서 각 요소의 배치가 달라짐
align-contents는 전체적으로 요소의 배치가 달라짐
flex-grow & flex-shrink
클수록 배려심이 좋은 것