CSS ==== ## selectors ### first-child / first-of-type CSS를 사용할 때 많이 혼동하지만, `first-child`는 element의 절대적인 위치를 나타낸다. 즉, 자식 element 중 '해당하는' 요소의 첫 번째가 아니라, '모든' 요소의 첫 번째를 가리킨다. 전자를 지정하기 위해서는 `first-of-type`을 사용해야 한다. 예를 들어, ```css

Child

Child
Child
Child
``` 즉 `div:first-child`는 아무런 div도 가리키지 않는다[^1]. ## !important > !important was added for one reason only: laws in the US that require certain text to be in a given font-size. !important stops the cascade from changing it. > > Anything else is probably misuse, and a sign you may not understand the cascade properly. -- [Steven Pemberton](https://twitter.com/stevenpemberton/status/1505839184287870981?s=20&t=_eW9HipzNTzEnBeo_r5giA) ## Tips 내용이 많아지면 [[:language:css:tips]]로 옮겨서 작성. ### td를 수직으로 배열하기 - https://stackoverflow.com/questions/33569998/how-do-i-force-td-within-a-table-row-below-another-td ### 모든 하위 엘리먼트에 스타일 적용하기 - https://stackoverflow.com/questions/26349987/how-do-i-apply-a-style-to-all-children-of-an-element [^1]: 출처: https://stackoverflow.com/questions/24657555/what-is-the-difference-between-first-child-and-first-of-type/24657721#24657721 ### Selector ID HTML spec에서는 ID에 온점을 허용한다. 즉, `
`는 유효하다. 그러나 CSS에서 클래스를 온점으로 구분하기 때문에 이를 통상적인 방식으로 호출하는 것은 불가능하다. 요컨대 이런 코드는 성립하지 않는다. ```css .aaa.bbb { color: #000; } ``` 대신, 백슬래시로 이스케이프하거나 attribute selector를 활용해야 한다. ```css .aaa\.bbb { color: #000; } [class=‘aaa.bbb’] { display:none; } ``` ## 유용한 글들 - [번역) 레이아웃 알고리즘 이해하기](https://junghan92.medium.com/번역-레이아웃-알고리즘-이해하기-baed8b1eca5f) - [이번에야말로 CSS Flex를 익혀보자](https://studiomeal.com/archives/197) - [CSS order 쓰는 법](https://velog.io/@yena1025/CSS-order-%EC%93%B0%EB%8A%94-%EB%B2%95) - [MDN: order](https://developer.mozilla.org/ko/docs/Web/CSS/order)