W3C3 부합성: 필요사항과 추천사항Trio 홈페이지 

목차

3.1 정의

이 항목에서는, 공식적인 CSS2 규격을 시작하는데, 제작자들, 사용자과 적용자(implementer)사이에 약속으로 부터 시작한다.

이 문서에서 "...하여야 한다", "...하면 않된다", "...필요하다", "...추전한다", "...할 수 있다"와 "선택적" 등 키워드는 [[RFC2119]]에 설명된 것과 같이 해석한다.
그러나 번역문에서는 그대로 표현할 수 없어, 한글적인 표현으로, "REQUIRED"의 경우 예를 들어, 같은 의미를 갖는 "필요하다, 필요로 한다, 필요 .." 등과 그 변형, 예를 들어 "필요한, 필요 .., 필수적" 등으로 표시하였다.

이 규격의 저자는 문서 제작자와 사용도구에 좋은 방식을 때때로 추천하였다. 이들 추천사항은 사용에 따라, 반드시 이 규격에 정의되어 있고 부합한다는 의미는 아니다. 이들 추천사항은 "...을 추천한다 ", "...을 권한다", "추천되는" 또는 이와 비슷한 문구로 표시하였다.

스타일쉬트
문서의 표현을 위해 지정한 일련의 문장(서술: statement)들이다.

스타일쉬트은 제작자, 사용자사용도구의 세가지 다른 원천들이 있다. 이의 원문에 대한 작용(interaction)은 카스케이딩(cascading)과 전달(inheritance) 항목에 기술되어있다.

유효한(valid) 스타일쉬트
스타일쉬트의 유효성(validity)은 사용되는 스타일쉬트의 CSS의 수준(level)에 따라 다르다. 모든 유효한 CSS1 스타일쉬트들은 유효한 CSS2 스타일쉬트들이다. 그러나, 일부 CSS1으로부터의 변화로 몇몇 CSS1 스타일쉬트는 CSS2에서 약간 다른 의미(semantic)를 가진다.

유효한 CSS2 스타일쉬트는 CSS2의 문법에 따라 기술되어야 한다. 또한, 이 규격에 정의된 명령(at-rule), 속성 이름(name)과 속성값 만을 포함하여야 한다. 불량한(illegal: invalid) 것은 유효하지 않은 명령(at-rule), 속성 이름, 속성값을 갖는다.

원본(source) 문서
하나이상 스타일쉬트을 조회하는 문서. 이는 엘레멘트의 계통(tree)과 같은 문서를 대표하는 일부 언어로 엔코드(encode)된다. 각 엘레멘트는 엘레멘트의 타입을 지정하는(identify) 이름, 선택적인 몇개의 애트리뷰트(attribute), 그리고 내용(content: 빈것도 가능함)으로 구성된다.
문서언어
자원 문서의 엔코딩(encoding) 언어(예: HTML 또는 XML 적용).
엘레멘트
(하나의 SGML 문구로 ISO8879 와 HTML 4 엘레멘트 목록를 참조하라.) 이차적 문법(syntactic)은 그 문서언어로 구성된다. 대부분 CSS 스타일쉬트 명령은 이들이 표현 정보를 지정하기 위하여, HTML의 "P", "TABLE"과 "OL" 등과 같은, 엘레멘트의 이름을 사용한다.
대체된 엘레멘트
CSS 양식자(formatter)에서 엘레멘트는 고유의 규격 만을 인식한다. HTML에서, IMG, INPUT, TEXTAREA, SELECT, OBJECT 엘레멘트들은 대체된 엘레멘트의 예제들이 될 수 있다. 예를 들어, IMG 엘레멘트의 내용은 자주 "src" 애트리뷰트(attribute)에 의하여 지정된 이미지(image)에 의하여 대체된다. CSS가 어떻게 고유의 규격들은 발견하는가를 정의하지는 않는다.
고유의 규격(dimension)
너비(width)와 높이(height)는 주위에 의하여 주어진 것이 아니고, 그 엘레멘트 자신에 의하여 정의된 것이다. CSS2에서 모든 대체된 엘레멘트들(그리고 대체된 엘레멘트들 만)이 고유의 규격을 갖는 것으로 가정한다.
애트리뷰트(attribute)
어떤 엘레멘트에 연관된 값으로 이름과 관계된 텍스트 값으로 구성된다(HTML 4 규격의 애트리뷰트 목록 참조.).
내용(content)
내용는 자원 문서의 한 엘레멘트에 연관된다. 모든 엘레멘트가 내용을 갖는 것은 아니며, 내용이 없으면 때는 빈것(empty)으로 불리운다. 엘레멘트의 내용은 텍스트를 가질 수 있고, 여러개의 하부 엘레멘트(sub-element)들 가질 수 있으며, 이 때 상위 엘레멘트를 그 하부 엘레멘트의 모체(parent)라 부른다.
내용의 표현
한 엘레멘트의 내용은 그 스타일쉬트들에 따라 적용되고 표현된다. 대체된 엘레멘트 내용의 표현은 자원 문서 밖으로 부터 온다. 내용의 표현은 엘레멘트의 대체 텍스트도 가질 수 있고(예: HTML "alt" 애트리뷰트의 값), 스타일쉬트에 의하여, 불렛(bullet)등이나 번호붙이기(numbering), 등 함축적으로 또는 명시적하게 삽입된 항목들을 포함할 수 있다.
문서계통(document tree)
원문 안 엘레멘트들의 계통이 엔코딩(encode)된다. 이 계통의 각 엘레멘트은 꼭 한개의 모체를 갖는데, 최상위(root) 엘레멘트는 모체를 가지고 있지 않는 예외이다.
자식(child)
만일 B가 A의 모체라면 A 엘레멘트는 B 엘레멘트의 자식이라 부른다.
하위(descendant)
만일 A가 (1) B의 자식이거나, (2) A가 B의 하위의 일부인 C 엘레멘트의 자식이면, A 엘레멘트는 B 엘레멘트의 하위로 불리운다.
조상(ancestor)
만일 B가 A의 하위(descendant)라면, A 엘레멘트는 엘레멘트 B의 조상으로 불리운다.
형제(sibling)
만일, B와 A가 같은 모체 엘레멘트를 가지면, A 엘레멘트는 B 엘레멘트의 형제로 불리운다. 만일 A 엘레멘트가 문서계통에서 B의 앞이면, A 엘레멘트는 앞의 형제이다. 만일 A가 문서계통에서 B의 다음이면, B 엘레멘트는 후위 형제이다.
이전(preceding) 엘레멘트
만일 (1) A가 B의 조상이거나 또는 (2) A가 B의 이전 형제이면, 엘레멘트 A가 엘레멘트 B의 이전 엘레멘트로 불리운다.
다음(following) 엘레멘트
엘레멘트 A가 엘레멘트 B의 다음 엘레멘트로 불리면, B가 엘레멘트 A 이전 엘레멘트이다.
제작자
제작자는 문서들과 연관된 스타일쉬트를 작성하는 사람이다. 예를 들면 웹디자이너가 제작자이다.
제작도구는 문서들과 연관 스타일쉬트들 생성한다. 웹문서 편집기가 포함된다.
사용자
사용자는 사용도구로 보거나, 듣거나 또는 다른방식으로 문서와 이에 연관된 스타일쉬트를 사용하는 사람을 말한다. 사용자는 개인적인 선호 방식으로 엔고딩(encode)하는 개인적(personal)인 스타일쉬트를 제공할 수 있다.
사용도구(user agent)
사용도구는 문서언어와 이 규격에 따라 관련 스타일쉬트를 적용한 문서를 해석하는 프로그램이다. 사용도구는 문서를 디스플레이 하거나, 소리 내어 읽거나, 인쇄하거나, 다른 양식으로 변환하는 등을 수행한다.
브라우저가 대표적인 예이다.

HTML로 엔코드된 자원 문서 예제:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
    <TITLE>My home page</TITLE>
  <BODY>
    <H1>My home page</H1>
    <P>Welcome to my home page! Let me tell you about my favorite composers:
    <UL>
      <LI> Elvis Costello
      <LI> Johannes Brahms
      <LI> Georges Brassens
    </UL>
  </BODY>
</HTML>

이 결과는 다음 계통(tree)에 나타난다:

문서계통(tree) 예제   [D]

HTML의 정의에 따라, HEAD 엘레멘트은 해석(parsing)되는 동안 방해(inferred)되며, HEAD 테그(tag)들이 문서 원문에 없더라도 문서계통의 일부분이 된다. 같은 방식으로, 해석자(parser)는 P 과 LI 들이 </P>와 </LI> 테그들이 원문서에 없더라도 어디에서 끝나는가를 안다.

3.2 부합성

이 항목에서는 CSS2 규격에서 만의 부합성(conformance)을 정의한다. 향후 CSS의 다른 수준(level)들이 있을 수 있는데, 이때는 사용도구가 이에 부합하기 위하여 다른 성능(feature)들을 필요로 할 수 있다.

일반적으로, 사용도구가 이 규격에 부합성(conformance)을 주장하기 위해서는 다음 사항을 준수해야 한다:

  1. 하나이상의 CSS2 메디아(media) 타입들을 지원하여야 한다.
  2. 각 원문에서, 지원된 메디아 타입들에 적합한 모든 관련(associated) 스타일쉬트의 읽음을 시도하여야 한다. 만일 모든 관련 스타일쉬트를 읽을 수 없다면(예를 들어, 네트워크 오류들 때문에), 읽을 수 있는 것들을 사용하여 그 문서를 디스플레이하여야 한다.
  3. 스타일쉬트을 이 규격에 따라 해석하여야 한다. 구체적으로, 모든 명령(at-rule)들, 블럭(block)들, 선언(declaration)들, 선택자(selector)들을 인식하여야 한다(CSS2의 분법 참조). 만일 사용도구가 지원된 메디아 타입에 적용하는 속성을 만나면, 사용도구는 그 속성의 정의에 따라 그 값을 해석(parse)하여야 한다. 사용도구는 모든 유효한 값들을 수용하고, 선언들의 유효하지 않은(invalid) 값들을 무시(ignore)하여야 함을 의미한다. 사용도구들은 지원 안된 메디아 타입에 적용되는 명령을 무시하여야 한다.
  4. 문서계통(document tree)의 각 엘레멘트에서, 적용할 수 있는 것은 그 속성의 정의에 따른 속성값을 할당하여야 하고, 카스케이딩(cascading)과 전달(inheritance)의 명령을 수행하여야 한다.
  5. 만일 원문이 대체(alternate) 스타일쉬트과 같이 나온다면(HTML 4에서의 "alternate" 키워드와 같은), 사용도구는 사용자가 이들 스타일쉬트 중에서 선택하도록 허용하고 선택된 것을 적용하여야 한다.

사용도구가 각 항목들을 모두 준수하여야 만 하는 것은 아니다. 그러나:

사용도구가 특정 장치의 제한 때문에 이 규격의 일부를 적용할 수 없을 경우(예: 사용도구가 단색(monochrome) 모니터나 페이지에 색상들을 표현하지 못하는 경우), 이 규격에 부합하지 않음을 의미하지는 않는다.

이 규격은 사용도구가 사용자에게 사용자 스타일쉬트를 지정할 수 있도록 할 것을 권한다.

3.3 오류 조건

일반적으로, 이 문서는 사용도구들이 오류의 처리 방법을 지정하고 있지 않다.(예: URI에서 지정한 자원을 발견하지 못했을 때의 조치사항).

그러나, 사용도구들은 해석(parsing) 오류 처리 규칙을 따라야 한다.

사용도구들은 오류 조건의 처리 방법이 서로 다를 수 있기 때문에, 제작자와 사용자는 특정한 오류 처리 과정에 의존하지 말아야 한다.

3.4 컨텐트 타입(content type) text/css

분리된 화일들에 있는 CSS 스타일쉬트들은 정보의 엔코딩(encoding)에 의해 이루어 진 바이트(byte)들의 순서(sequence)에 따라 인터넷을 통해 송신된다.(번역문 HTML4, 5 장 참조). 그 송신 구조는 [RFC2045][RFC2068]에서 메세지 엔티티(message entity)로 정의되어있다. 내용 종류 "text/css"를 가진 메세지 엔티티는 독립된 CSS 문서이다. "text/css" 내용 종류는 [RFC2318]에 등록되어 있다.


페이지 맨위로맨위Trio 홈페이지 문서()는 자유로이 연결 사용이 가능함.
(수정일 )