Properties

Properties

  • account_tree
  • bug_report

Containment

CSS Containment Module에 속한 기술들을 소개한다.

개요

웹 페이지에 사용되는 리소스에 대한 네트워크 요청과 그 결과를 기다리기까지는 웹의 최적화를 위한 직접적인 제어는 어렵다. 단지 긍정적인 사용자 경험을 갖도록 대체 방법을 찾을 뿐이다. 그러나 렌더링 절차에서는 충분한 직접적인 제어가 가능할 수 있다. CSS Containment Module은 최적화에 대한 기술적인 접근을 다룬다.

예를 들어서 제한된 유저 에이전트(user agent)의 뷰포트(viewport) 내에서 로드된 모든 콘텐츠가 다 보여지지는 않는다. 필요에 따라 스크롤바를 생성해서 선택적으로 뷰포트 밖의 콘텐츠를 볼 수 있다. 따라서 뷰포트 밖의 콘텐츠를 처음부터 렌더링을 할 필요가 있을까? 라는 의문을 가질 수 있다. 이것은 성능에 매우 영향을 주는 부분이다. 성능은 사용자가 체감을 하는 것이며 뷰포트 밖의 콘텐츠는 체감 대상에서 제외된다. 지금까지 유저 에이전트(user agent)는 사용자가 관심을 둘지 모를 콘텐츠까지 렌더링을 완벽하게 마치는데 시간을 할애했다. 이 모듈에서는 아직은 충분치는 않아 보이지만 선택적으로 초기 렌더링을 제어하는 속성을 추가했다.

다른 또 한가지는, 중첩된 요소들은 렌더링 과정에서 상위 요소에게 영향을 준다. 예를 들어서 부모 요소의 크기는 자식 요소의 크기에 영향을 받는 것이며 렌더링 과정에서 연산이 복잡해진다는 의미를 가지고 있다. 그래서 그 연관성을 끊고 하위 요소에게 격리된 방식으로 처리를 하게 되면 성능상의 이점을 가질 수 있다. 이 모듈에서는 격리 방식을 지정하는 기술이 포함되어 있다.

하지만 최적화는 몇가지 추가된 속성 지정만으로 완벽하게 해결되는 것이 아니다. 그리고 그만큼 신경써야할 항목들이 더 늘어날 수 있다는 것을 알아야 한다. 그럼에도 규모가 큰 웹페이지의 경우에는 최적화는 피할 수 없는 도전이다.

관련 속성

  • contain

    특정 요소와 콘텐츠가 문서 트리의 다른 부위와 독립(격리)되어 있음을 나타낼 때 사용한다. 웹브라우저는 문서를 렌더링시 필요한 계산을 문서의 전체 DOM이 아닌 일부에서만 수행함으로써 성능 향상에 도움을 준다.
  • container-name

    쿼리 컨테이너 이름 목록을 지정한다. @container 규칙에서 대상이 될 쿼리 컨테이너를 필터링할 때 사용한다.
  • container-type

    컨테이너 크기 쿼리(container size queries)와 같이 명시적 포함이 필요한 컨테이너 쿼리(container queries) 목적의 쿼리 컨테이너로 요소를 설정하여 하위 스타일 규칙이 크기(size) 및 레이아웃(layout)의 다양한 측면을 쿼리하고 그에 따라 응답할 수 있도록 한다.
  • content-visibility

    요소가 콘텐츠를 렌더링할지 여부를 제어하고 강력한 포함 집합을 강제하여 유저 에이전트(user agent)가 필요할 때까지 대규모 레이아웃 및 렌더링 작업을 잠재적으로 생략할 수 있도록 한다.

W3C Modules

CSS Containment Module Level 2
W3C Working Draft, 17 September 2022