@규칙(At-Rule) - by. UXKM
- Publishing
- CSS
- CSS 중급
- @규칙(At-Rule)
요약 설명@규칙(At-Rule) 식별자(identifier)가 뒤따르는 at 기호(
@)로 시작하는 CSS 문이며, 다음 세미콜론(;) 또는 다음 CSS 블록 중 먼저 오는 쪽까지 모든 것을 포함합니다.
많이 사용되는 대표적인 @규칙으로는@import,@font-face,@media등이 있습니다.
@charset
스타일 시트에 쓰이는 문자 인코딩을 지정합니다.
스타일 시트의 첫 번째 요소여야 하며 어떤 문자가 선행되지 않아야 합니다. 중첩된 문이 아니므로 조건부 그룹 at-규칙 내에 사용될 수 없습니다.
여러 @charset at-규칙이 정의된 경우, 첫 번째 것만 사용되며 HTML 요소의 style 속성이나 HTML 페이지의 문자 집합과 관련 있는 <style> 요소 내에서 사용될 수 없습니다.
@import
스타일 시트에서 다른 스타일 규칙을 가져올 때 사용합니다.
이 규칙은 @charset 규칙을 제외하고 모든 다른 종류의 규칙보다 선행해야 하며, 중첩 명령문이 아니기 때문에 조건부 그룹 @규칙 내에 사용할 수 없습니다.
@import 규칙을 사용해도 추가하는 CSS 파일의 개수가 늘어나면 HTTP 요청이 증가하여 웹 서버의 부하는 커질 수밖에 없습니다.
하지만 @import 규칙을 미디어 쿼리(media query)와 함께 사용하면 조건에 따라 필요한 CSS만 적용할 수 있어 불필요한 스타일 처리를 줄일 수 있습니다.
다음 예제는 프린트할 때에는 firstStyleSheet.css 파일을 불러오고, 스크린이 가로 방향으로 설정되어 있을 때는 secondStyleSheet.css 파일을 불러오는 예제입니다.
@namespace
CSS 스타일 시트에서 사용되는 XML 네임스페이스를 정의하는 at-규칙입니다. 정의된 네임스페이스는 그 네임스페이스 내의 요소만 선택하기 위해 universal, type 및 attribute 선택자를 제한하는 데 사용됩니다.
@namespace 규칙은 보통 여러 네임스페이스(인라인 SVG 또는 MathML이 있는 HTML5 등)를 포함하는 문서를 처리하는 경우에만 유용합니다. 모든 @charset 및 @import 규칙의 다음에 오고, 스타일시트에서 모든 다른 at-규칙 및 스타일 선언보다 앞서야 합니다.
@namespace는 기본 네임스페이스나 네임스페이스 접두어를 정의하는 데 사용됩니다. 기본 네임스페이스가 정의된 경우, 모든 universal 및 type 선택자는 그 네임스페이스 내 요소에만 적용됩니다. 네임스페이스 접두어가 정의된 경우, 선택자가 접두어로 시작하면 해당 네임스페이스와 이름이 일치하는 경우에만 일치합니다.
HTML5에서는 자동으로 네임스페이스가 할당됩니다. HTML 요소는 XHTML 네임스페이스에 있는 것처럼 행동하고, <svg> 및 <math> 요소는 각각의 적절한 네임스페이스가 자동으로 할당됩니다.
위에서 지정된 규칙외에 중첩 문의 부분 집합으로 이루어진 중첩 @-규칙 대해 설명합니다.
중첩 @-규칙 - 중첩 문의 부분 집합으로, 조건부 그룹 규칙 속뿐만 아니라 스타일 시트의 문으로 사용될 수 있습니다.
@supports
하나 이상의 특정 CSS 기능에 대한 브라우저의 지원에 따라 선언을 지정할 수 있습니다. 이를 기능 쿼리라고합니다.
규칙은 코드의 최상위 수준에 배치되거나 다른 조건부 그룹 규칙 안에 중첩 될 수 있습니다.
지원 조건은 하나 이상의 키-값 쌍을 논리곱(and), 논리합(or), 부정(not)으로 연결해 구성합니다. 괄호로 묶어 우선순위를 지정할 수도 있습니다.
@media
장치가 미디어 질의(media query)를 사용하여 정의된 조건의 기준을 만족하면 해당 콘텐츠를 적용하는 조건부 그룹 규칙입니다.
min-width 또는 max-width 를 활용하여 반응형 레이아웃(Responsive layout)을 구현할 수 있습니다.
@page
문서를 인쇄할 때 일부 CSS 속성을 수정하는 데 쓰입니다. @page로 모든 CSS 속성을 바꿀 수는 없습니다.
문서의 margin, orphan, widow(앞단에서 넘어온 짤막한 행) 및 page break만 바꿀 수 있습니다. 다른 CSS 속성을 바꾸려는 시도는 무시됩니다.
@font-face
텍스트를 표시 할 사용자 정의 글꼴을 지정합니다. 글꼴은 원격 서버나 로컬 컴퓨터에서 사용자 컴퓨터에로드 할 수 있습니다.
@font-face을 사용하는 자세한 방법은 CSS 중급과정
@font-face에서 설명합니다.
@keyframes
애니메이션 시퀀스를 따라 키 프레임 (또는 웨이 포인트)의 스타일을 정의하여 CSS 애니메이션 시퀀스의 중간 단계를 제어합니다.
@keyframes을 사용하는 자세한 방법은 CSS 고급과정
Animation에서 설명합니다.