-
Css 선택자. 어떤 걸 써야 더 성능이 좋을까?CSS 2020. 2. 15. 15:24
많은 사람들이 CSS가 성능이 높고 성능이 떨어질 수 있다는 사실을 잊거나 단순히 깨닫지 못합니다. 그러나 성능이 좋지 않은 CSS를 얼마나 적게, 실수하고, 실현할 수 있는지 알면 쉽게 용서받을 수 있습니다.
이 규칙은 실제로 속도가 특징 인 고성능 웹 사이트에만 적용되며 특정 페이지에 1000 개의 DOM 요소가 나타날 수 있습니다. 그러나 모범 사례는 모범 사례이며, 다음 Facebook 또는 로컬 데코레이터를위한 사이트를 구축하든 상관없이 항상 알아 두는 것이 좋습니다.
Steve Souders 의 책 Even Faster Websites에서 인용하는 css 선택자 스피드의 순위는 다음과 같습니다.
- ID, e.g. #header
- Class, e.g. .promo
- Type, e.g. div
- Adjacent sibling, e.g. h2 + p
- Child, e.g. li > ul
- Descendant, e.g. ul a
- Universal, i.e. *
- Attribute, e.g. [type="text"]
- Pseudo-classes/-elements, e.g. a:hover
The difference in speed between an ID and a class is almost totally irrelevant.
하지만 ID와 Class 간의 속도 차이는 거의 없다고 보면 됩니다.
클래스 나 ID가 아닌 유형을 선택하면 리플 로우가 훨씬 느려집니다.
그리고 css로 직접 태그 선택자를 잡는 것보다 클래스를 부여하는 편이 훨씬 더 성능이 좋습니다.
// 좋지 않은 예 #social a {} // 좋은 예 #social .social-link {}
왜냐하면 훨씬 더 적은 순서의 특별함을 가지고 있어 브라우저는 빠르게 탐색하고 넘어갈 수 있습니다.
가장 잘못된 예
div:nth-of-type(3) ul:last-child li:nth-of-type(odd) * { font-weight:bold }
클래스 선택자를 적극 활용합시다.
출처 : https://csswizardry.com/2011/09/writing-efficient-css-selectors/
'CSS' 카테고리의 다른 글
자바스크립트에서 CSS와 SASS의 변수 사용하기 (0) 2020.04.05 미디어쿼리 레벨 5 스펙 (0) 2020.03.15 Bootstrap5 새소식(큰 변화 4가지) (6) 2019.12.22 [CSS] Rethinking CSS (0) 2019.01.31 [Canvas] 버튼 Particle 이펙트 (0) 2019.01.30