MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

CSS3는 Cascading Style Sheets(CSS) 언어의 가장 최신 버전이고 CSS2.1을 상속하는 것을 목표로  합니다.  CSS3는 개발자들이 오랫동안 기다려온 새로운 기능들을 지원하게 되었습니다. 다중열(multi-columns), 유동적인 상자(flexible box), 격자 배치(grid layouts) 뿐만 아니라 둥그런 모서리(rounded corners), 그림자( shadows) , 부드러운 색의 변이(gradients) , 변이(transitions), 움직임(animations) 등도 지원합니다. 실험적인 부분(experimental parts)은 브라우저 공급자(vender)의 구현에 따라 다를 수 있고 미래에 문법이나 의미가 변할 수 있습니다. 따라서 환경에 따라 해당 스펙을 사용하는 것을 피하거나, 사용하더라도 매우 신중히 사용해야합니다.  

모듈과 표준화 과정(Modules and the standardization process)

2002년 8월부터 2011년 6월까지 CSS Level2가 권장(Recommendation)단계에 이르기 까지 총 9년이 걸렸습니다. 이는 몇몇 부차적인 기능들이 전체 명세(specification)의 진행을 더디게 만들었기 때문입니다. W3C의 CSS Working Group은 문제를 일으키는 몇몇 기능을 제외한 나머지 기능들의 표준화 작업을 보다 빠르게 진행하기 위하여 Beijing doctrine에 따라 CSS를 보다 작은 컴포넌트 단위로 나눴고, 이를 모듈(module)이라 부릅니다. 현재 각각의 모듈은 서로 독립적으로 표준화 과정을 거치고 있습니다. 이미 몇몇 모듈은 W3C Rocommendations 에 이르렀으나, 나머지는 여진히 Working Drafts 단계에 머물러 있습니다. 또한 새로운 요구사항(needs)이 발생할 때 마다 계속해서 새로운 모듈이 추가되고 있습니다.

CSS Modules and Snapshots as defined since CSS3 공식적으로 CSS3 자체 표준은 존재하지 않습니다. 각각의 모듈이 독립적으로 표준화 되고 있고, 표준 CSS는 모듈을 통해 CSS2.1을 수정하여 상속(extends)하는 것으로 구성되어있서 항상 같은 level number를 갖는 것은 아닙니다. 특정 시점의 CSS2.1과 완성된 모듈들로 구성된 CSS표준 스냅샷을 정의할 수 있습니다. W3C는 주기적으로 이런 스냅샷을 발표하고 있습니다. (2007 / 2010)

아직까지 lever 3보다 높은 level을 가진 모듈은 없지만 곧 생길 것입니다. Selector 4나 CSSborder 4, Background 4와 같은 몇몇 모듈은 Working Draft가 공개된적은 없지만 이미 Editor's Draft는 작성되어 있습니다.

 

CSS 모듈의 상태(CSS modules status)

안정적인 모듈(Stable modules)

몇개의 모듈은 이미 상당히 안정적이고, CSSWG의 recommendation 3단계(Candidate Recommendation, Propesed Recommendation, Recommendation) 중 하나에 도달했습니다. 이 모듈들은 별도의 과정없이도 꽤 안정적으로 사용할 수 있습다. 하지만 몇몇 기능은 여전히 Candidate Recommendation 단계에 머물러 있습니다.

모듈들은 명세(spec)의 핵심이 되는 CSS2.1을 수정, 상속하고 있습니다. 이것을 포함한 모듈들이 CSS3 명세의 스냅샷이 됩니다.

CSS Color Module Level 3 Recommendation since June 7th, 2011

opacity 프로퍼티(property)와 <color> 밸류를 생성하기 위한 the hsl(), hsla(), rgba(), rgb() 함수를 추가합니다. 또한 the currentColor keyword로 유효한 색상을 얻을 수 있습니다.

alpha channel의 지원으로 rgba(0,0,0,0.0)의 별칭인 transparent를 사용할 수 있습니다.

 더이상 사용해선 안되는 system-color 키워드를 deprecates 합니다.

Selectors Level 3 Recommendation since September 29th, 2011

다음이 추가되었습니다.

아직 Working Draft로 공개되진 않았지만, 셀렉터 명세의 다음 버전이 이미 진행중입니다.

CSS Namespaces Module Recommendation since September 29th, 2011

CSS qualified name의 개념을 정의하여 XML Namespaces에 대한 지원이 추가됩니다.  이를 위해 ' | ' 문법을 사용하고 @namespace CSS at-rule을 더합니다.

Media Queries Recommendation since June 19th, 2012

이전의 media type ( print, screen, )을 only screen and (color)와 같이 디바이스의 media capabilities에 대한 질의가 가능한 full language로 확장합니다.

미디어 쿼리는 CSS 문서에서만 사용되는 것이 아니라 <link>의 media어트리뷰트와 같이 일부 HTML 엘리먼트에서도 사용할 수 있습니다. .

용자 에이전트의 입력 메소드에 대해 잘 맞는 웹사이트를 제작할 수 있게 해줄  이 명세의 다음 버전이 진행중입니다. hover나 pointerd와 같은 새로운 미디어 기능을 포함하고 있습니다. script media features를 이용해 EcmaScript에서도 감지할 수 있도록 제안되었습니다.

CSS Style Attributes Recommendation since November 7th, 2013
HTML style 전역 특성(global attribute)의 내용(contents)에 관한 문법을 공식적으로 정의합니다.
CSS Backgrounds and Borders Module Level 3 Candidate Recommendation

다음이 추가되었습니다. 

 아직 Working Draft의 초안이 공개되진 않았지만 CSS4 Backgrounds 와 Borders 명세의 다음 버전이 이미 진행중입니다. 테두리를 잘라내는 기능(CSS border-clip, border-clip-top, border-clip-right, border-clip-bottomborder-clip-left 프로퍼티를 사용)이나 테투리의 모서리 모양을 조절하는 기능 (CSS border-corner-shape 프로퍼티를 사용)을 추가할 계획입니다.

CSS Multi-column Layout Module Candidate Recommendation
CSS columns, column-count, column-fill, column-gap, column-rule, column-rule-color, column-rule-style, column-rule-width, column-span, column-width, break-after, break-before,  break-inside를 이용해 쉽게 다중 열 레이아웃을 만들 수 있습니다.
CSS Speech Module Candidate Recommendation
청각 포맷 모델과 사용자 에이전트의 speech-rendering에 특화된 수많은 프로퍼티를 내용으로 하는 speech 미디어 타입을 정의합니다. 
CSS Image Values and Replaced Content Module Level 3 Candidate Recommendation

<image> 데이터 타입을 정의합니다.

미디어 프래그먼트를 이용해 이미지를 자를 수 있도록 url() 을 상속합니다.

다음이 추가되었습니다 :

  • <resolution> 데이터 타입에 대한 단위인 dppx.
  • url로 부터 이미지를 정의하는 데 있어 url() 보다 더 유연한 image() 함수.
    주의  : 브라우저의 불충분한 지원으로  image() 함수의 표준화는 이 모듈의 다음 버전으로 연기될 수 있습니다.
  • linear-gradient(), repeating-linear-gradient(), radial-gradient()repeating-radial-gradient()을 지원.
  • CSS object-fit 프로퍼티를 이용해 교체된 엘리먼트가 어떻게 맞춰져야할지 정의할 수 있음.
    주의  : 브라우저의 불충분한 지원으로  object-fit의 표준화는 이 모듈의 다음 버전으로 연기될 수 있습니다. 
  • CSS image-resolutionimage-orientation 프로퍼티를 이용해 외부 이미지의 방향과 해상도를 오버라이드 할수 있음
    주의  : 브라우저의 불충분한 지원으로   image-resolutionimage-orientation의 표준화는 이 모듈의 다음 버전으로 연기될 수 있습니다. 

CSS Image Level 3를 대체할  CSS Image Values 와 Replaced Content Level 4 는 현재 개발중에 있고 Working Draft 입니다.

CSS Values and Units Module Level 3 Candidate Recommendation

initial 키워드와 inherit 키워드를 모든 CSS 프로퍼티에 대해 사용할 수 있습니다.

문법적 토큰과 원문의 정도(Precision)의해 암묵적으로 정의했던 CSS2.1의 CSS 데이터 타입을 공식적으로  정의합니다. 

다음이 추가되었습니다 :

  • 폰트에 상대적인 길이 단위에 대한 정의 : rem , ch .
  • 뷰포트에 상대적인 길이 단위에 대한 정의: vw, vh, vmax, vmin .
  • 절대 길이 단위의 실제 사이즈에 대한 정도(Precision). 절대 길이는 실제로는 '절대치'가 아니며 reference pixel에 대하여 상대적으로 정의.
  • <angle>, <time>, <frequency>, <resolution>에 대한 정의.
  •  <color>, <image>, <position>의 정의에 대한 규범적인 밸류.
  • calc(), attr()에 대한 정의와 toggle()의 표기법
    주의 :브라우저의 불충분한 지원으로   calc(), attr(), ooggle() 표기법의 표준화는 이 모듈의 다음 버전으로 연기될 수 있습니다.

 <ident> ,<custom-ident>같은 몇몇 정의는 CSS Values and Units Module Level 4로 미뤄졌습니다..

CSS Flexible Box Layout Module Candidate Recommendation
CSS display 프로퍼티에 flexbox layout과 이것을 제어할 몇몇 새 CSS 프로퍼티가 추가되었습니다 : flex, flex-align, flex-direction, flex-flow, flex-item-align, flex-line-pack, flex-order, flex-pack, and flex-wrap.
CSS Conditional Rules Module Level 3 Candidate Recommendation
스타일 시트의 몇몇 부분을 특정 조건하에 처리하기 위한 기능이 추가되었습니다. 스타일시트가 적용될 문서나 브라우저의 능력에 따라 작동하게 됩니다@media의 하위에 들여쓰기된 앳-룰(at-rule)을 사용할 수 있고, 새로운 CSS 앳-룰인 @supports와 새 DOM 메소드인 CSS.supports()가 추가되었습니다.
Unknown Unknown

Extends:

Adds:

Precises:

  • The paint order of the decorations.

At risk: due to insufficient browser support, standardization of the text-decoration-skip, line positioning rules and the ability to place both emphasis marks and ruby above the same base text may be postponed to the next iteration of this module.

CSS Fonts Module Level 3 Candidate Recommendation

Amends the CSS2.1 Font matching algorithm to be closer to what is really implemented.

Adds:

CSS Syntax Level 3 Candidate Recommendation
Precises how charsets are determined; minor changes in parsing and tokenization algorithms.

Modules in the refining phase

Specifications that are deemed to be in the refining phase are already fairly stable. Though changes are still expected, they shouldn't create incompatibilities with current implementations; they should mainly define behavior in edge cases.

CSS Basic User Interface Module Level 3 Candidate Recommendation

Adds:

  • The ability to tweak the box model using the CSS box-sizing property.
    At risk: due to insufficient browser support, standardization of the padding-box value may be postponed to the next iteration of this module .
  • Allow the styling of forms according their content using the CSS :indeterminate, :default, :valid, :invalid, :in-range, :out-of-range, :required, :optional, :read-only, and :read-write pseudo-classes and the ::value, ::choices, ::repeat-item, and ::repeat-index pseudo-elements.
    At risk: due to insufficient browser support, standardization of the pseudo-elements ::value, ::choices, ::repeat-item, and ::repeat-index may be postponed to the next iteration of this module .
  • Support for icons, defined by the CSS icon property simultaneously with the new icon value of the CSS content property.
    At risk: due to insufficient browser support, standardization of the icon property and the icon value may be postponed to CSS4.
  • Support for the CSS outline-offset property giving more control on the position of the outline.
  • Support for the CSS resize property allowing Web authors to control if and how elements should be resized.
  • Support for the CSS text-overflow property defining how text overflows, if needed.
    At risk: due to insufficient browser support, the 2-value syntax of this property as well as the support for <string> values may be postponed to the next iteration of this module .
  • The ability to define the hotspot of a cursor as well as the new none, context-menu, cell, vertical-text, alias, copy, no-drop, not-allowed, nesw-resize, nwse-resize, col-resize, row-resize, all-scroll, zoom-in, zoom-out, extending the cursor property.
  • The ability to specify the sequential navigation order (that is the tabbing order ) using the CSS nav-index, nav-up, nav-right, nav-left, nav-down properties.
    At risk: due to insufficient browser support, standardization of the navigation properties may be postponed to the next iteration of this module .
  • The ability to control the usage of an IME editor, using the CSS ime-mode property.
    At risk: due to insufficient browser support, standardization of the ime-mode property may be postponed to the next iteration of this module .

An early list of what could be in the next iteration of the CSS Basic User Interface Module is available.

CSS Transitions Working Draft
Allows the definition of transitions effects between two properties values by adding the CSS transition, transition-delay, transition-duration, transition-property, and transition-timing-function properties.
CSS Animations Working Draft
Allows the definition of animations effects by adding the CSS animation, animation-delay,animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, and animation-timing-function properties, as well as the @keyframes at-rule.
CSS Transforms Level 1 Working Draft

Adds:

  • the support of bi-dimensional transforms to be applied to any element using the CSS transform and transform-origin properties. The supported transforms are: matrix(), translate(), translateX(), translateY(), scale(), scaleX(), scaleY(), rotate(), skewX(), and skewY().
  • the support of tri-dimensional transforms to be applied to any element by adding the CSS transform-style, perspective, perspective-origin, and backface-visibility properties and extended the transform property with the following transforms are: matrix 3d(), translate3d(), translateZ()scale3d(), scaleZ(), rotate3d(), rotateX() ,rotateY(), rotateZ(), and perspective().

Note: this specification is a merge of CSS 2D-Transforms, CSS 3D-Transforms and SVG transforms.

CSS Fragmentation Module Level 3 Candidate Recommendation
Defines how partitions of a Web page should happen, that is page, column breaks, and widows and orphans handling.

Adds:

  • Support for defining the behavior of decorations, that is borders and background colors or images, when a box is breaked (at a page, column or line-break) with the CSS box-decoration-break property.
CSS Text Level 3 Working Draft

Extends:

  • the CSS text-transform property with the value full-width.
  • the CSS text-align property with the value start, end, start end, and match-parent for a better support of documents with multiple directionalities of text.
  • the CSS text-align property with a <string> value to align on that character. This is useful to align number on the decimal point.
  • the CSS word-spacing and letter-spacing properties with range constraints to control flexibility in justification.

Adds:

A few features present in early CSS Text Level 3 draft have being postponed to the next iteration of this module .

CSS Custom Properties for Cascading Variables Module Level 1 Working Draft
Defines a mechanism allowing to define variables in CSS.

Modules in the revising phase

Modules that are in the revising phase are much less stable than those in the refining phase. Often the syntax is still under scrutiny and may evolve a lot, in a non-compatible way. Alternative syntax are tested and often implemented.

CSS Writing Modes Module Level 3 Candidate Recommendation
Defines the writing modes of both horizontal and vertical scripts and precises how the CSS direction and unicode-bidi properties interact with the new CSS text-orientation property, and extends them where needed.

Modules in the exploring phase

CSS Image Values and Replaced Content Module Level 4 Working Draft

Extends:

  • the image() functional notation to describe the directionality of the image (rtl or ltr), allowing for bidi-sensitive images.
  • the image-orientation property by adding the keyword from-image, allowing to follow EXIF data stored into images to be considered.

Adds:

  • the image-set() functional notation to allow the definition to equivalent images at different resolution allowing for resolution-negotiated selection of images.
  • the element() functional notation allowing the use of part of the page as image.
  • the cross-fade() functional notation allowing to refer to intermediate images when transitioning between two images and defines the interpolation between two images.
  • the conic-gradient() and repeating-conic-gradient() functional notation describing a new type of gradient.
  • the image-rendering property that allow to define how resize of the object should be handled.
CSS Device Adaptation Working Draft
Adds a new at-rule, @viewport, allowing to specify the size, zoom factor, and orientation of the viewport that is used as the base for the initial containing block.
CSS Grid Layout Working Draft
Add a grid layout to the CSS display property and several new CSS properties to control it: grid, grid-area, grid-auto-columns, grid-auto-flow, grid-auto-position, grid-auto-rows, grid-column, grid-column-start, grid-column-end, grid-row, grid-row-start, grid-row-end, grid-template, grid-template-areas, grid-template-rows, and grid-template-columns.
CSS Generated Content for Paged Media Module Working Draft
Adds the ability to tailor printed version of a document by allowing to control header, footer but also references tables like indexes or tables of content.
Unknown Unknown
Extends the floats mechanism to define exclusion regions in any positioning scheme. Adds the notion of shapes, in which content must flows.
CSS Lists and Counters Module Level 3 Working Draft
Extends the list counter mechanism so that list markers can be styled and Web developers can define new list counter schemes.
CSS Regions Module Level 1 Working Draft
Defines a new mechanism allowing content to flow across, eventually non-contiguous, multiple areas called regions.

 

문서 태그 및 공헌자

 이 페이지의 공헌자: whitetofu, mrstork, prayash, sangwoo
 최종 변경: whitetofu,