💡 CSS를 하다보면 내 예상과 틀리게 움직이는 것들이 많았다. 아마도 나의 기본 개념기가 부족했던 것 같다. 그래서 인강을 들으면서 정리를 해보았다.
nth-child(n)
: div:nth-child(n) 의 뜻은 div이면서 n번째 child(자식)인 것을 선택해라!

div:nth-child(1)은 없다. span 태그 때문에 div 1번째가 두번째 자식이 되어버렸다.
div:nth-child(2)를 해야지 div 1번째에 color가 적용이된다.
first-child, last-child 도 있음
nth-last-child(n) : 뒤에서부터~
nth-of-type(n)
: div:nth-of-type(n) : div 중에서 n번째를 선택해라!

div 태그에서만 순서를 정한다.
nth-last-of-child : 뒤에서부터~
: 자식 요소에서 특별히 속성을 지정하지 않은 경우, 부모의 속성 받아오는 것
block 이기를 포기함⭐️
display:inline-block속성을 가진 태그한테text-align적용하면 안됨!
display속성을 가진 태그의 부모 태그에text-align적용해야함!!
내가 한줄 다 차지함
레고블럭 처럼 딱딱 맞음. block요소 끼리는 여백이 따로 없음.

<span>태그는 띄어쓰기에 영향을 받고 그러지만, <div>태그는 영향이 없다는 것을 볼 수 있다.
display 속성이 없게 해주는 것이 아니라, 완전히 안보이게 해주는 것임position의 기본값top, left, bottom, right) 같은 속성으로만display:inline-block이랑 뭐가 다르지? 하고 생각할 수 있다.display:inline-block과 다른 점은 inline-block은 block이기를 포기한 것, 글자화된 것, 즉 코드 안에 띄어쓰기, 엔터를 하면 다 영향이 끼친다.
모든 태그의 width, heith 값은 auto이다.
auto라는 뜻은 상황에 따라 자동적으로 정해진다는 뜻, 즉 나한테 얼만큼의 공간이 있나? 내가 가지고 있는 CSS 속성이 무엇인가? 이런 상황에 따라 자동적으로 정해진다.
예를 들어보자!!
◽️ display:block일 때 width:auto는 너비가 100%처럼 작용한다
◽️ display:inline-block일 때 width:auto는 최대한 줄일 수 있는만큼 줄인게 너비가 된다.
그럼 height는 어떻게 작용할까?
: 내가 포함하고 있는 자식을 감쌀 수 있을 만큼 늘어난다.
그런데 자식태그한테 float 속성을 주면 자식의 높이가 '0'이 되어버려서 부모의 높이도 '0'이 되어버림!!

이렇게 밑에 있는 것까지 딸려올라옴!
해결방법
ul::after {
content:"";
display:block;
clear:both;
}
content:는 display:inline이라서 블럭 요소로 바꿔준 것</ul> 앞에 "" 공백을 주고, 그 공백을 블럭처리해서 clear:both해주면 li의 부모 태그인 <ul>이 공백 때문에 높이가 생긴다.white-space:nowrap : 절대 줄바꿈 하지 마시오.<a> 태그는 inline 속성을 가진 태그이다.