💡 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 속성을 가진 태그이다.