CSS3에서 새롭게 추가되거나 변경된 대표적인 기능
- 선택자(Selectors) Level 3
- 미디어 쿼리(Media Queries) Level 3
- 색(Color) Level 3
- 네임스페이스(Namespaces)
CSS 중급 요약 설명
- CSS Level 3 선택자(조합 선택자, 속성 선택자, 의사 클래스)를 활용하여 더 정밀한 요소 선택이 가능하며, 의사(가상) 요소로 HTML 요소에 없는 가상의 요소를 제어할 수 있습니다.
- CSS 카운터로 자동 번호 매기기를 구현하고, 벤더 프리픽스로 실험적 기능을 활용합니다. IR 기법으로 이미지 대체텍스트를 제공하며, CSS 속성 선언 순서의 컨벤션을 이해합니다.
- CSS3 Module의 신규 속성(positioned, background and border, overflow, gradient,
calc()등)과 @규칙(@import,@font-face,@media)을 활용하여 웹 폰트 적용과 반응형/적응형 웹을 구현합니다.
요약 설명CSS3 Module은 W3C의 CSS Working Group이 표준화 작업을 효율적으로 진행하기 위해 CSS를 기능별로 나눈 작은 컴포넌트 단위입니다.
각 모듈은 특정 기능이나 주제에 대한 CSS 속성들을 모아놓은 것으로, 예를 들어 배경과 테두리, 레이아웃, 애니메이션 등을 독립적으로 다룹니다.CSS3는 공식적인 단일 표준이 아니라 여러 모듈로 구성되며, 각 모듈은 독립적으로 표준화 과정을 거칩니다.
이를 통해 필요한 기능만 선택적으로 사용할 수 있으며, 새로운 요구사항이 발생할 때마다 새로운 모듈이 추가됩니다.
요약 설명CSS3 Module part-1에서는 CSS3 모듈의 속성 중
- CSS positioned layout module Level 3
- CSS background and border module Level 3
- CSS overflow module Level 3에 대한 내용을 다루고 있습니다.
사파리 브라우저를 위한 -webkit- 접두어가 필요합니다.
position: sticky 속성을 적용한 박스는 평소에 문서 안에서 position: static 상태와 같이 일반적인 흐름에 따르지만, 스크롤 위치가 임계점에 이르면 position: fixed와 같이 박스를 화면에 고정할 수 있는 속성입니다.
아직 Working Draft 단계이며, Internet Explorer 11 브라우저와 안드로이드 4.x 이하 버전에서 지원하지 않습니다.
최신 명세를 지원하는 브라우저에서는 이 속성이 동작하지만, 지원하지 않는 브라우저에서는 position: static 상태만 표시하기 때문에 어색하지 않게 표시할 수 있습니다.
sticky 박스는 top, right, bottom, left 속성 중 하나 이상이 필수입니다.fixed 박스는 뷰포트에 고정하지만, sticky 박스는 스크롤 박스에 고정합니다. 즉, 스크롤 박스가 offset 기준입니다.sticky 박스를 스크롤 박스에 고정하는 임계점은 스크롤 위치가 결정하며, sticky 박스 자신과 부모의 위치와 크기도 임계점에 영향을 미칩니다.sticky 박스의 부모 박스가 스크롤 박스를 벗어나면 sticky 박스는 다시 일반적인 흐름에 따릅니다.sticky 박스와 스크롤 박스 사이에 overflow: hidden 속성을 적용한 박스가 끼어들면 sticky 박스는 일반적인 흐름에 따릅니다.
이전에는 JavaScript만을 사용해 구현해야 했던 스크롤 인터렉션을 position: sticky를 통해 CSS만으로 구현할 수 있게 되었습니다.
완전히 JavaScript를 배제하기는 어렵지만, CSS의 성능과 다양한 속성들이 추가됨에 따라 CSS로 대체 가능한 부분을 연구하여 활용하는 것이 좋습니다.
position: sticky 속성을 지원하는 브라우저에만 이 스타일을 적용하려면 @supports 규칙을 이용할 수 있습니다.
단, 이방법 역시 @supports 규칙이 IE 11 브라우저에서 지원 안 하기에 적절하게 사용해야 합니다.
border-image는 border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat의 단축 속성입니다.
다른 단축 속성과 마찬가지로, 생략한 속성은 초기값으로 설정됩니다.
border-image-outset CSS 속성은 요소의 테두리 상자와 테두리 이미지의 거리를 설정합니다.
border-image-outset으로 인해 요소 바깥에 그려지는 테두리로는 스크롤이 생기지 않으며 마우스 이벤트를 잡아낼 수도 없습니다.
border-image-repeat CSS 속성은 원본 이미지의 모서리 영역을 요소의 테두리 이미지 크기에 맞춰 조절할 때 사용할 방법을 지정합니다.
[ stretch | repeat | round | space ]{1,2}
원본 이미지의 모서리 영역을 늘리거나 줄여 간격을 채웁니다.
원본 이미지의 모서리 영역을 타일처럼 반복해 간격을 채웁니다. 크기가 맞지 않으면 마지막 이미지는 잘릴 수 있습니다.
원본 이미지의 모서리 영역을 타일처럼 반복해 간격을 채웁니다. 크기가 맞지 않으면 늘어나거나 줄어들 수 있습니다.
원본 이미지의 모서리 영역을 타일처럼 반복해 간격을 채웁니다. 크기가 맞지 않으면 각 타일에 균등하게 공백을 배치합니다.
border-image-slice CSS 속성은 border-image-source로 설정한 이미지를 여러 개의 영역으로 나눕니다.
이렇게 나눠진 영역이 요소의 테두리 이미지를 이룹니다.
border-image-repeat, border-image-width, border-image-outset 속성이 최종 테두리 이미지에서 각 영역의 사용 방법을 지정합니다.
border-image-source CSS 속성은 요소의 테두리 이미지로 사용할 원본 이미지를 지정합니다.
border-image-width CSS 속성은 요소 테두리 이미지의 너비를 설정합니다.
속성의 값이 border-width보다 크다면 테두리 이미지는 안쪽 여백(과 콘텐츠) 영역을 침범하여 그려집니다.
CSS Module Level 3
여러 줄의 말줄임에 사용합니다. webkit 계열 브라우저에서만 작동합니다.