안녕하세요! 프론트엔드 개발의 든든한 기반, CSS 문법 중에서도 매우 중요한 'At-규칙(At-rules)' 문서를 가져오셨군요!
반응형 웹을 만들 때 필수적인 @media, 멋진 애니메이션을 위한 @keyframes, 폰트를 불러오는 @font-face 등, CSS 파일 안에서 @ 기호로 시작하는 코드들을 많이 보셨을 텐데요. 이 문서는 바로 그 녀석들이 어떤 종류가 있고 어떻게 동작하는지 전체적으로 훑어보는 지도(Map) 같은 가이드입니다.
실무에서 정말 자주 쓰이는 핵심 개념이니, 하나도 빠짐없이 알기 쉬운 구어체로 완벽하게 번역해 드릴게요!
At-규칙(At-rules)은 CSS에게 어떻게 행동해야 할지 지시하는 CSS 구문 (CSS statements)입니다. 이 규칙들은 골뱅이 기호(@, U+0040 COMMERCIAL AT)로 시작하고, 그 바로 뒤에 식별자(이름)가 따라오는 형태입니다. At-규칙은 이 맨 앞의 @키워드부터 시작해서 다음 세미콜론(;)이 나올 때까지, 혹은 다음 CSS 블록(중괄호 { })이 나올 때까지 중 먼저 오는 곳까지의 모든 내용을 포함합니다.
At-규칙은 스타일 규칙(style rules)이나 다른 at-규칙들을 그룹화하고 구조화하는 데 사용됩니다. 또한, 선택된 특정 콘텐츠에 직접적으로 연결되지 않는 전역적인 스타일 정보를 선언하거나, 외부 파일 불러오기(import) 및 네임스페이스 키워드 매핑 같은 문법적 구조를 관리하는 역할도 합니다.
💡 강사의 실무 팁 1
일반적인 CSS 코드가 "이 태그(선택자)를 이렇게 꾸며줘!"라면, At-규칙은 브라우저 자체에게 내리는 "시스템 설정 명령어"라고 생각하시면 편합니다. "이 폰트 파일 좀 다운받아와(@font-face)", "화면이 768px보다 작아지면 이것들을 실행해(@media)" 처럼 판을 까는 역할을 주로 하죠.
At-규칙의 기본 뼈대는 CSS 문법 (CSS syntax) 모듈에 정의되어 있고, 각각의 개별적인 at-규칙들의 상세 내용은 각자의 모듈에 나뉘어 정의되어 있습니다. At-규칙은 그 목적과 특정 규칙에 따라 크게 두 가지 형태 중 하나를 띠게 됩니다. 바로 세미콜론으로 끝나는 구문 at-규칙(statement at-rules)과 중괄호 {} 안에 다른 규칙들을 담을 수 있는 블록 at-규칙(block at-rules)입니다.
/* 일반적인 구조 */
@identifier (RULE);
/* 예시: 브라우저에게 UTF-8 문자셋을 사용하라고 지시 */
@charset "utf-8";
구문 at-규칙(Statement at-rules)은 항상 세미콜론(;)으로 끝납니다. 식별자(이름)에 따라 여러 가지 구문 at-규칙이 존재하며, 각기 다른 문법을 가집니다:
@charset:@import:@layer:@namespace:@identifier (RULE) {
}
블록 at-규칙(Block at-rules)은 중괄호 {} 로 이루어진 블록으로 끝납니다. 이 블록 안에는 다른 중첩된 규칙들, 다른 at-규칙들, 또는 속성/설명자 선언(declarations)들이 포함될 수 있습니다.
@counter-style:@container:<container-condition>(크기 등)을 충족할 때만 블록 내부의 스타일을 적용하는 조건부 그룹 규칙입니다. (CSS containment)@font-face:font-family로 선언되어 사용될 때의 스타일 특성(굵기, 기울기 등)을 함께 정의합니다. (CSS fonts)@font-feature-values (및 @swash, @ornaments, @annotation, @stylistic, @styleset, @character-variant):font-variant-alternates 속성에서 사용할 글꼴별 대체 형태나 커스텀 이름(feature indexes)을 정의하여 폰트 패밀리별 표시 방식을 정교하게 제어합니다. (CSS fonts)@keyframes (및 @-webkit-keyframes 별칭):@layer:@media:@page:@position-try:@property:@scope:@starting-style:display: none 상태에서 벗어나 화면에 처음 나타날 때) 트랜지션(transition)이 시작될 최초의 시작 속성값들을 정의합니다. (CSS transitions)@supports:@view-transition:💡 강사의 실무 팁 2: 어떤 걸 제일 많이 쓰나요?
프론트엔드 실무에서 밥 먹듯이 쓰게 될 At-규칙 TOP 3는 바로@media(반응형 웹),@keyframes(애니메이션),@font-face(웹 폰트) 입니다. 이 3개는 무조건 1순위로 마스터하시고, 나머지는 "아, CSS에 이런 고급 기능도 있었지!" 하고 넘어가신 후 필요할 때마다 검색해서 쓰셔도 충분합니다!
| Specification (명세) |
|---|
| CSS Syntax Module Level 3 |
CSSRule 인터페이스 (JavaScript 관련)MDN 향상에 도움 주기 (Help improve MDN)
어떠신가요? CSS 파일 안에서 이리저리 등장하던 @ 기호들이 이제 어떤 역할을 하는지 싹 정리가 되셨을 거예요!
혹시 이 중에서 포트폴리오(웹 프로필이나 독후감 사이트)에 바로 적용해 보고 싶은 규칙이 있으신가요? 예를 들어 화면 크기에 따라 디자인을 바꾸는 @media나 멋진 웹 폰트를 넣는 @font-face 같은 것들이요! 더 깊게 알고 싶은 규칙이 있다면 편하게 말씀해주세요.