박스 모델이란, 웹사이트를 만들 때 각 레이아웃의 공백이나 구조를 빨리 파악할 수 있도록 도와주는 일종의 옵션.

<박스모델의 속성 종류>
(index.html)

(style.css)

☆ 한 줄 주석처리 쉽게 하는 팁! -> Ctrl+/
margin 과 padding 은 어떤 오브젝트의 특정 위치에 공백을 넣어 좌표를 옮기고자 할 때 사용한다.
margin과 padding은 선택된 영역이 주체가 되어서 움직이는 것이 아니라, 빈 공백에 의해서 타의적으로 움직인다.
padding 속성값이 있을 경우, 선택된 영역의 공간의 크기가 달라질 수 있다.
ex)
width : 200px;
height: 200px;
padding-left: 100px
=>공간의 크기는 300px이다.

만약 공간의 크기는 유지하는 상태에서 padding으로 위치를 변경할 경우, CSS에서 box-sizing: border-box;를 넣는다.


태생적으로html, body태그에는 margin과 padding이 default로 적용되어 있다. 그래서 웹사이트를 만들 때 두 태그를 모두 선택하여 값을 0으로 설정해주어야 한다.
1) 형제지간에 발생하는 마진 병합 현상


margin-one에는 margin-bottom 값을 주고, margin-two에는 margin-top 값을 주었을 경우, 둘 중 큰 값이 작은 값을 병합해버린다. 둘 사이의 값이 동일한 경우 그 값을 공유한다.
2) 부모자식지간에 발생하는 마진 병합 현상


웹사이트 레이아웃 작업시 가장 많이 접하게 되는 현상.
CSS에 margin-child에 margin-top 값(100px)을 주었을 경우, margin-child만 100px 밑으로 밀리는 것이 아니라 margin-parent도 같이 100px 밑으로 밀려난다.
부모자식지간 마진 병합 문제 해결 방법
child만 위로 공백을 주기 위해, "position:을 사용한다.
.margin-child { position : absolute; }를 넣어준다.


1. inline(span, x축); - 기본 값, 요소를 inline 요소처럼 표시, 앞 뒤로 줄 바꿈이 되지 않는다. 각각의 영역 사이에 공백들을 갖고 있다.
2. block(h1, y축); - 요소를 block 요소 처럼 표시, 요소 앞 뒤로 줄 바꿈이 가능하다.
3. inline-block; - 요소는 inline 인데 내부는 block 처럼 표시함, 박스 모양이 inline처럼 옆으로 나열된다. 주로 메뉴버튼을 만들 때 주로 사용된다.
h1 태그도 태생적으로 margin, padding 값을 가지고 있다. 정확한 레이아웃 작업을 위해 값을 0으로 설정해야한다.



position을 공부할 때 고려할 3가지 경우의 수
■ position 의 속성값 4가지
1) postion: static
즉, position: static은 2차원에 포함되는 속성값
모든 html 태그는 기본적으로 position: static 상태이다 → 모든 html 태그는 2차원에서 시작한다.
2) position: fixed
즉, position: fixed는 3차원에 포함되는 속성값
3) position: relative
① margin-top/bottom을 사용하면 부모자식지간 마진 병합 현상이 생긴다.
② top, right, bottom, left를 사용할 수 있다. 좌표 기준점이 처음 있었던 위치가 기준이다.
※ 자기자신이 주체가 되어서 움직이는 속성
즉, position: relative는 2차원의 특징과 3차원의 특징을 모두 가지고 있는 속성값
4) position: absolute
※ position: absolute 의 좌표 기준점은 부모의 postion이 달라지면 좌표 기준점도 달라진다.
예) 부모의 position 이 3차원(fixed, relative, absolute)이 되면, 자식의 좌표 기준점이 처음 있었던 위치 기준으로 바뀐다.
즉, position: absolute는 3차원의 특징을 가지고 있는 속성값
2)학습내용 중 어려웠던 점 또는 해결하지 못한 점
강의 내용을 완벽하게 이해하지는 못한 것 같다. 오전 1회독 오후 1회독을 권장하고 있지만, 개인적으로는 하루가 빠듯하다. 내가 학습의 속도가 느린 것은 알고 있으나, 매일 진행되는 진도가 다소 벅찬 감이 있다.
3)해결 방법
강의를 놓치더라도 그냥 그 부분을 비워두고 1회독을 한번 마친 후에 2회독 때 조금 더 자세하게 듣는 식으로 시간을 조금 줄였다. 이번주 내내 2회독을 다 마치지 못해 일지 작성을 못했었는데 오늘 처음으로 2회독을 마쳤다.
4)학습 소감
매일매일이 쉽지는 않다. 어디선가 들어본 것 같으면서도 매번 새로운 내용들이 너무 많아 정리가 잘 되질 않는다. 전체 내용을 요약하는것도 조금 어렵다. 이제 7월의 시작인 만큼 이달이 끝날 때는 보다 익숙해져 있을 수 있도록 노력해야겠다.