1. 序論
最初に~CSS仕様が発行されたときの `CSS Level 1$ は、一つの文書~内に~CSSのすべてが包含されるように定義された。 `CSS Level 2$ も,単独の, 複数~章からなる文書により定義された。 しかしながら,~Level 2 を超える~CSSからは、~CSS-WGは,すべてを単体的な仕様にて定義するのをやめ、各~moduleが~CSSのある部分を定義するような,~module的~approachを採用することにした。 これは、仕様をより管理し易い部分ごとに分け、~CSSを 速やかに かつ増分的に改善できるようにする。 ◎ When the first CSS specification was published, all of CSS was contained in one document that defined CSS Level 1. CSS Level 2 was defined also by a single, multi-chapter document. However for CSS beyond Level 2, the CSS Working Group chose to adopt a modular approach, where each module defines a part of CSS, rather than to define a single monolithic specification. This breaks the specification into more manageable chunks and allows more immediate, incremental improvement to CSS.
各~CSS~moduleの安定性は,それぞれに異なる~levelにあるので、~CSS-WGは、 2018 年 中期現在における CSS の視野と状態を定義するものとして,この~profileを発行することにした。 この~profileは、安定的 かつ 十分に実装~経験が得られ,安定性について確かなものと見なされた仕様のみを含む。 ◎ Since different CSS modules are at different levels of stability, the CSS Working Group has chosen to publish this profile to define the current scope and state of Cascading Style Sheets as of mid 2018. This profile includes only specifications that we consider stable and for which we have enough implementation experience that we are sure of that stability.
注記: これは ~CSS Desktop Browser Profile として意図されるものではない: この~profileは、特色機能を,その安定性のみに基づいて含めており、期待される利用や~Web~browserによる採用に基づいてはいない。 この~profileは、最も完全な形で~CSSを定義する。 ◎ Note: This is not intended to be a CSS Desktop Browser Profile: inclusion in this profile is based on feature stability only and not on expected use or Web browser adoption. This profile defines CSS in its most complete form.
注記: ~CSS-WGは、この~snapshotを形成する各 仕様が有意に変更されるものとは見越していないが、それらの仕様が凍結されたことを意味するわけではない。 ~CSS-WGは、仕様に問題が見出されたなら,それに取組み続けることになる。 実装者は、結果の[ 変更/訂正/明確化 ]について, www-style や ~CSS-WG Blog を注視するべきである。 ◎ Note: Although we don’t anticipate significant changes to the specifications that form this snapshot, their inclusion does not mean they are frozen. The Working Group will continue to address problems as they are found in these specs. Implementers should monitor www-style and/or the CSS Working Group Blog for any resulting changes, corrections, or clarifications.
1.1. 背景: W3C 批准過程と CSS
~INFORMATIVEW3C Process において勧告化過程( `Recommendation-track^en )にある文書は、以下に要約される 3 段階の安定性~levelを経る: ◎ In the W3C Process, a Recommendation-track document passes through three levels of stability, summarized below:
- 作業草案 ( `Working Draft^en, 略称 WD )
- これは、 W3C 仕様の設計~段階である。 ~CSS-WGは、内外からの~feedbackに呼応して仕様を~~更新し続ける。 ◎ This is the design phase of a W3C spec. The WG iterates the spec in response to internal and external feedback.
- 最初の公式的な作業草案は、 “初公開 作業草案” ( `First Public Working Draft^en, 略称 FPWD )の~~指定を受ける。 ~CSS-WGによる FPWD の発行は、編集者による草案にて大まかな視野が定められ, 提案された,当の~moduleにおける作業に、 ~CSS-WGが全体として同意したことを指示する。 ◎ The first official Working Draft is designated the “First Public Working Draft” (FPWD). In the CSSWG, publishing FPWD indicates that the Working Group as a whole has agreed to work on the module, roughly as scoped out and proposed in the editor’s draft.
- 次の段階への移行は、 “最終作業草案” ( `Last Call Working Draft^en, 略称 LCWD )段階と呼ばれることもある。 ~CSS-WGは、既知の課題すべてが解決され,~testと実装の~buildから得られた~feedback抜きにはそれ以上~進捗できなくなったとき、作業草案へ移行させる。 ◎ The transition to the next stage is sometimes called “Last Call Working Draft” (LCWD) phase. The CSSWG transitions Working Drafts once we have resolved all known issues, and can make no further progress without feedback from building tests and implementations.
- この段階における “Last Call for Comments” は、明らかになった課題の報告期限を設定し、~CSS-WGが~feedbackを追跡して特別に取組むことを要求する。 それらの~commentを追跡している文書は、 `Disposition of Comments^en ( DoC )と呼ばれる。 それは、広範からの考査と容認を実証して, Director から認可を得るため、更新された草案に伴って提出される。 ◎ This “Last Call for Comments” sets a deadline for reporting any outstanding issues, and requires the WG to specially track and address incoming feedback. The comment-tracking document is the Disposition of Comments (DoC). It is submitted along with an updated draft for the Director’s approval, to demonstrate wide review and acceptance.
- 勧告候補( `Candidate Recommendation^en, 略称 CR )
- これは、 W3C 仕様を~testする段階である。 この段階は、実装を~testするためではなく,各種~testと実装を利用して 仕様を~testするためにあることに特に注意。 仕様における更なる問題は,この過程で露呈することが多いので、勧告候補は,実装と~testingからの~feedbackに呼応して,次第に~~形を変えていくことになる — 通例的に,設計~段階( `WD^en )よりは少ないが。 ◎ This is the testing phase of a W3C spec. Notably, this phase is about using tests and implementations to test the specification: it is not about testing the implementations. This process often reveals more problems with the spec, and so a Candidate Recommendation will morph over time in response to implementation and testing feedback, though usually less so than during the design phase (WD).
- 勧告候補から次へ抜出るためには、互いに独立な二つ以上の実装により,各~特色機能を正しく実装されたことの実証が要求される。 そのため,~CSS-WGは、この段階に各種~testの一式( `test suite^en )を~buildし,実装~報告を生成する。 ◎ Demonstration of two correct, independent implementations of each feature is required to exit CR, so in this phase the WG builds a test suite and generates implementation reports.
- 次の段階への移行は、 “勧告案” ( `Proposed Recommendation^en, 略称 PR ) である。 この段階においては、 W3C Advisory Committee は,勧告への移行を認可し~MUST。 ◎ The transition to the next stage is “Proposed Recommendation” (PR). During this phase the W3C Advisory Committee must approve the transition to REC.
- 勧告( `Recommendation^en, 略称 REC )
- これは, W3C 仕様が完了した状態であり、保守の段階を表現する。 この時点では、~CSS-WGは,正誤表( `errata^en )文書のみを保守し、ときには,正誤表を仕様に組入れて更新した版を発行する。 ◎ This is the completed state of a W3C spec and represents a maintenance phase. At this point the WG only maintains an errata document and occasionally publishes an updated edition that incorporates the errata back into the spec.
`編集者草案@ ( `Editor’s Draft^en, 略称 ED )は、実質的に,編集者~自前の作業用~複製をそのまま~~反映するものである。 それは,~CSS-WGによる合意を反映することもあれば しないこともあり、その時点では自己不整合な状態にもなり得る。 ( W3C における発行~過程は,~~時間と~~労力を要するので、`編集者草案$は,通例的に仕様に対する最良の(最新の)参照である。 公式的な草案が定期的に~~更新され,`編集者草案$が元の構想場としての~~機能に~~戻れるように、各~発行の不一致を抑制する~~試みが現在~~行われている。) ◎ An Editor’s Draft is effectively a live copy of the editors’ own working copy. It may or may not reflect Working Group consensus, and can at times be in a self-inconsistent state. (Because the publishing process at W3C is time-consuming and onerous, the Editor’s Draft is usually the best (most up-to-date) reference for a spec. Efforts are currently underway to reduce the friction of publishing, so that official drafts will be regularly up-to-date and Editor’s Drafts can return to their original function as scratch space.)
2. ~CSSの公式的な定義
2018 年現在の~CSS( `Cascading Style Sheets@ )は、以下に挙げる各種~仕様で定義される。 ◎ As of 2018, Cascading Style Sheets (CSS) is defined by the following specifications.
- CSS Level 2 (正誤表も含む,最新の改訂版) `CSS2$r
- ~CSSの中核を定義する。 うち一部は,後の仕様により上書きされる。 特に、~CSSとその設計~原則についての基本的~概念の一部を導入する, §2 を~~読むよう~~勧める。 ◎ This defines the core of CSS, parts of which are overridden by later specifications. We recommend in particular reading Chapter 2, which introduces some of the basic concepts of CSS and its design principles.
- CSS Syntax Level 3 `CSS-SYNTAX-3$r
- ~CSSを構文解析する方法を定義する。 ◎ Replaces CSS2§4.1, CSS2§4.2, CSS2§4.4, and CSS2§G, defining how CSS is parsed.
- これは、 CSS2 の[ §4.1, §4.1, §4.2, §4.4, §G ]を置換する。 ◎ ↑
- CSS Style Attributes `CSS-STYLE-ATTR$r
- ~CSS宣言が~markup属性~内にどう埋込まれるかについて定義する。 ◎ Defines how CSS declarations can be embedded in markup attributes.
- Media Queries Level 3 `CSS3-MEDIAQUERIES$r
- 媒体に特有の~style用の構文を伸張する。 ◎ Replaces CSS2§7.3 and expands on the syntax for media-specific styles.
- これは、 CSS2 の §7.3 を置換する。 ◎ ↑
- CSS Conditional Rules Level 3 `CSS3-CONDITIONAL$r
- `media$at 規則の定義を更新して、その入子を可能にし、 特色機能~supportの有無を照会するための `supports$at 規則を導入する。 ◎ Replaces CSS2§7.2, updating the definition of @media rules to allow nesting, and introduces @supports rules for feature-support queries.
- これは、 CSS2 の §7.2 を置換する。 ◎ ↑
- CSS Namespaces `CSS3-NAMESPACE$r
- `namespace$at 規則を導入して、名前空間~接頭辞付き選択子を可能にする。 ◎ Introduces an @namespace rule to allow namespace-prefixed selectors.
- Selectors Level 3 `SELECT$r
- 選択子の範囲を拡張する。 ◎ Replaces CSS2§5 and CSS2§6.4.3, defining an extended range of selectors.
- これは、 CSS2 の[ §5, §6.4.3 ]を置換する。 ◎ ↑
- CSS Cascading and Inheritance Level 3 `CSS-CASCADE-3$r
- これは、 CSS2 の[ §1.4.3, §6 ]を置換する。 ◎ Replaces CSS2§1.4.3 and CSS2§6
- CSS Values and Units Level 3 `CSS-VALUES-3$r
- ~CSSの~prop定義の構文を定義し,各種~単位の集合を伸張する。 ◎ Replaces CSS2§1.4.2.1, CSS2§4.3, and CSS2§A.2.1–3, defining CSS’s property definition syntax and expanding its set of units.
- これは、 CSS2 の[ §1.4.2.1, §4.3, §A.2.1–3 ]を置換する。 ◎ ↑
- CSS Color Level 3 `CSS3-COLOR$r
- 色~値がとり得る範囲を拡張し、 `opacity$p ~propを新たに導入する。 ◎ Replaces CSS2§4.3.6, CSS2§14.1, and CSS2§18.2, defining an extended range of color values. Also introduces the opacity property.
- これは、 CSS2 の[ §4.3.6, §14.1, §18.2 ]を置換する。 ◎ ↑
- CSS Backgrounds and Borders Level 3 `CSS3-BACKGROUND$r
- 背景~画像の多層化, 画像による~border, 落影 を含め、背景と~border対する更なる制御を供する。 ◎ Replaces CSS2§8.5 and CSS2§14.2, providing more control of backgrounds and borders, including layered background images, image borders, and drop shadows.
- これは、 CSS2 の[ §8.5, §14.2 ]を置換する。 ◎ ↑
- CSS Image Values and Replaced Content Level 3 `CSS3-IMAGES$r
- 置換~要素(画像など)の~sizingに関する,新たな土台~textを供し、それらの~sizingと方位に対する追加の制御を追加し、[[ ~CSSにおける画像 ]としての~gradient ]用の構文を導入する。 ◎ Provides a new foundation text for the sizing of replaced elements (such as images), adds additional controls to their sizing and orientation, and introduces syntax for gradients as images in CSS.
- CSS Fonts Level 3 `CSS-FONTS-3$r
- ~fontの~~選択/~font特能の選定に対する,更なる制御を供する。 ◎ Replaces CSS2§15 and provides more control over font choice and feature selection.
- これは、 CSS2 の §15 を置換する。 ◎ ↑
- CSS Multi-column Layout Level 1 `CSS3-MULTICOL$r
- ~CSS~layoutに複column(段組)による~flowを導入する。 ◎ Introduces multi-column flows to CSS layout.
- CSS User Interface Module Level 3 `CSS-UI-3$r
- `cursor$p, `outline$p を定義し、~UIを増強する,いくつかの新たな~CSS特色機能も定義する。 ◎ Replaces CSS2§18.1 and CSS2§18.4, defining cursor, outline, and several new CSS features that also enhance the user interface.
- これは、 CSS2 の[ §18.1, §18.4 ]を置換する。 ◎ ↑
- CSS Compositing and Blending Level 1 `COMPOSITING$r
- 多層化された内容の組成-法と混色-法を定義し、その~modeを制御する特色機能を導入する。 ◎ Defines the compositing and blending of overlaid content and introduces features to control their modes.
- CSS Writing Modes Level 3 `CSS-WRITING-MODES-3$r
- 様々な国際的~書字~mode用の~CSS~supportを定義する — 左横書き(例:~Latinや~Indic), 右横書き (例:~Hebrewや~Arabic), 双方向的(例: ~Latinと~Arabicの混在), 縦書き(例:~Asian用字系) など。 ◎ Defines CSS support for various international writing modes, such as left-to-right (e.g. Latin or Indic), right-to-left (e.g. Hebrew or Arabic), bidirectional (e.g. mixed Latin and Arabic) and vertical (e.g. Asian scripts).
- CSS Flexible Box Module Level 1 `CSS-FLEXBOX-1$r
- ~CSS用の~flex~layout~modelを導入する。 ◎ Introduces a flexible linear layout model for CSS.
- CSS Custom Properties for Cascading Variables Module Level 1 `CSS-VARIABLES-1$r
- すべての~CSS~propから受容される新たな~primitive値~型として,~cascadeする変数、および それを定義するための~custom~propを導入する。 ◎ Introduces cascading variables as a new primitive value type that is accepted by all CSS properties, and custom properties for defining them.
- CSS Grid Layout Module Level 1 `CSS-GRID-1$r
- ~UI設計に最適化された,二次元の格子に基づく~layout~systemを定義する。 格子~layout~modelにおいては、格子~容器のそれぞれの子を,予め定義された[ ~flex可能な/固定~sizeの ]~layout格子~内の任意の~slotの中に位置させれる。 ◎ Defines a two-dimensional grid-based layout system, optimized for user interface design. In the grid layout model, the children of a grid container can be positioned into arbitrary slots in a predefined flexible or fixed-size layout grid.
以下に挙げる~moduleも,`概ね相互運用可能$であり,広範に配備されているが、詳細の策定が まだ全部的に済んでおらず,更に ~testする/~bugをとる 必要がある。 ◎ The following modules are widely deployed with rough interoperability, but the details are not fully worked out and they need more testing and bugfixing.
- CSS Transitions Level 1 `CSS3-TRANSITIONS$r
- CSS Animations Level 1 `CSS3-ANIMATIONS$r
- `CSS-TIMING-1$r とともに ~CSS~propの算出値を,時経過に伴って遷移させる仕組みを定義する。 ◎ together with [CSS-TIMING-1]. Define mechanisms for transitioning the computed values of CSS properties over time.
- CSS Transforms Level 1 `CSS3-TRANSFORMS$r
- ~CSSに~graphic的な変形(座標系変換)を導入する。 ◎ Introduces graphical transformations to CSS.
- CSS Text Module Level 3 `CSS-TEXT-3$r
- ~text操作と その処理~modelを指定する~propを定義する。 それは、行分断-法, 両端揃え, 整列, 空白の取扱い, ~textの変形 などを対象にする。 ◎ Defines properties for text manipulation and specifies their processing model. It covers line breaking, justification and alignment, white space handling, and text transformation.
- CSS Will Change Level 1 `CSS-WILL-CHANGE-1$r
- `will-change$p と呼ばれる,処理能~hint~propを導入する。 ◎ Introduces a performance hint property called will-change.
- Filter Effects Module Level 1 `FILTER-EFFECTS-1$r
- ~filter効果は、要素が文書~内に表示される前に その描画を処理する仕方を与える。 ◎ Filter effects are a way of processing an element’s rendering before it is displayed in the document.
以下の各種~moduleは、設計~作業は完了していて,~~相応に安定的であるが、まだ,~testingと実装~経験が足りていない: ◎ The following modules have completed design work, and are fairly stable, but have not received much testing and implementation experience yet:
- CSS Counter Styles Level 3 `CSS-COUNTER-STYLES-3$r
- `counter-style$t がとり得る値を伸張し,~counter~styleを~custom化するための `counter-style$at 構文を供する。 ◎ Expands the possible values of <counter-style> and provides an @counter-style syntax for customized counter styles.
- CSS Masking Level 1 `CSS-MASKING-1$r
- 内容を切抜く/~maskするための より強力な仕方を導入する。 ◎ Replaces CSS2§11.1.2 and introduces more powerful ways of clipping and masking content.
- これは、 CSS2 の §11.1.2 を置換する。 ◎ ↑
- CSS Shapes Module Level 1 `CSS-SHAPES-1$r
- 浮動体を拡張して,矩形でない回込み図形による効果も~~加味されるようにする。 ◎ Extends floats to effect non-rectangular wrapping shapes.
- CSS Text Decoration Level 3 `CSS-TEXT-DECOR-3$r
- ~text装飾線に対する更なる制御を供して,~textに圏点や影を指定する能を追加する。 ◎ Replaces CSS2§16.3, providing more control over text decoration lines and adding the ability to specify text emphasis marks and text shadows.
- これは、 CSS2 の §16.3 を置換する。 ◎ ↑
- CSS Speech Module Level 1 `CSS3-SPEECH$r
- CSS2 の(規範的でない) speech rendering 章を改修する。 ◎ Replaces CSS2§A, overhauling the (non-normative) speech rendering chapter.
- これは、 CSS2 の §A を置換する。 ◎ ↑
- CSS Box Alignment Module Level 3 `CSS-ALIGN-3$r
- 種々の~CSS~box~layout~model — 塊~layout, ~table~layout, ~flex~layout, 格子~layout — における,容器の中での ~boxどうしの整列に関係する~CSSの特色機能を包含する。 ◎ Contains the features of CSS relating to the alignment of boxes within their containers in the various CSS box layout models: block layout, table layout, flex layout, and grid layout.
- CSS Fragmentation Module Level 3 `CSS-BREAK-3$r
- 一連の[ 頁 / ~column / ~region ]の中への~flowを区分する断片化~modelを述べる。 ◎ Describes the fragmentation model that partitions a flow into pages, columns, or regions.
- CSS Containment Module Level 1 `CSS-CONTAIN-1$r
- `contain$p ~propを述べる。 それは、要素の部分木が頁の残りから独立になることを指示する。 上手く利用すれば,~UAによる~~強力な最適化を可能化する。 ◎ Describes the contain property, which indicates that the element’s subtree is independent of the rest of the page. This enables heavy optimizations by user agents when used well.
- CSS Scroll Snap Module Level 1 `CSS-SCROLL-SNAP-1$r
- “留め位置” に[ ~panする/~scrollする ]ときの挙動を制御する特色機能を包含する。 ◎ Contains features to control panning and scrolling behavior with “snap positions”.
- Media Queries Level 4 `MEDIAQUERIES-4$r
- `CSS3-MEDIAQUERIES$r を拡張して,それに取って代わる。 これは、構文を伸張して, ほとんどの媒体~型を非推奨にして, 新たな媒体~特色機能を導入する。 ◎ Extends and supersedes [CSS3-MEDIAQUERIES], expanding the syntax, deprecating most media types, and introducing new media features.
- CSS Cascading and Inheritance Level 4 `CSS-CASCADE-4$r
- `CSS-CASCADE-3$r を拡張して,それに取って代わる。 これは、すべての要素~上のすべての~propに値をあてがうために,~style規則を比較照合する方法を述べる。 ~cascade法と継承の仕方により、すべての要素~上のすべての~propに,値は伝播する。 ◎ Extends and supersedes [CSS-CASCADE-3], describing how to collate style rules and assign values to all properties on all elements. By way of cascading and inheritance, values are propagated for all properties on all elements.
これらも将来の~snapshotに組入れられることが望まれる。 ◎ We hope to incorporate them into a future snapshot.
すべての~CSS~moduleの一覧, 安定的なものと進捗中のもの, それらの位置付けは、 CSS Current Work page にて見出される。 ◎ A list of all CSS modules, stable and in-progress, and their statuses can be found at the CSS Current Work page.
2.1. ~CSS の各~level
~CSSには,慣例的意味での~versionはない — 代わりに,いくつかの `~level@ がある。 ~CSSの各~levelは、以前のものを基に,定義を精緻化し, 特色機能を追加して築かれる。 より高~levelの特色機能の集合は,より低~levelの上位集合になる。 所与のどの特色機能に対しても、より高~levelにて許容される挙動は,より低~levelに許容される挙動の下位集合になり、より高~levelの~CSSに適合している~UAは,より低~levelのものすべてに対し適合する。 ◎ Cascading Style Sheets does not have versions in the traditional sense; instead it has levels. Each level of CSS builds on the previous, refining definitions and adding features. The feature set of each higher level is a superset of any lower level, and the behavior allowed for a given feature in a higher level is a subset of that allowed in the lower levels. A user agent conforming to a higher level of CSS is thus also conformant to all lower levels.
- `CSS Level 1@
- ~CSS-WGは CSS1 仕様 を廃用と見なしている。 `CSS Level 1$ は、この CSS1 仕様にて定義された特色機能(各種[ ~prop, 値, ~at-rule, 等々 ])すべてとして定義されるが、 CSS2.1 仕様 の構文と定義を利用している。 CSS Style Attributes は、要素に特有の~style属性による~CSSの内包を定義する。 ◎ The CSS Working Group considers the CSS1 specification to be obsolete. CSS Level 1 is defined as all the features defined in the CSS1 specification (properties, values, at-rules, etc), but using the syntax and definitions in the CSS2.1 specification. CSS Style Attributes defines its inclusion in element-specific style attributes.
- `CSS Level 2@
- CSS2 仕様 は,形式的には W3C 勧告であるが、 W3C が勧告候補の段階を定義する前に,勧告に至った。 時を経ると伴に、実装~経験と更なる考査により, CSS2 仕様には多数の問題が明るみに出ている。 そのため,~CSS-WGは、すでに 長大になった正誤表 を伸張する代わりに、 CSS Level 2 Revision 1( CSS2.1 )を定義することにした。 二つの仕様~間で競合する事例に対しては、 CSS2.1 が,その決定版の定義を包含する。 ◎ Although the CSS2 specification is technically a W3C Recommendation, it passed into the Recommendation stage before the W3C had defined the Candidate Recommendation stage. Over time implementation experience and further review has brought to light many problems in the CSS2 specification, so instead of expanding an already unwieldy errata list, the CSS Working Group chose to define CSS Level 2 Revision 1 (CSS2.1). In case of any conflict between the two specs CSS2.1 contains the definitive definition.
- CSS2.1 が勧告候補になったとき — その安定性は,公式には CSS2 と同じ~levelとされていないが、実質的に — CSS2 勧告は廃用にされた。 CSS2.1 から落とされた CSS2 の特色機能は,勧告候補の段階で考慮されるべきだが、これらの多くは, `CSS Level 3$ の作業草案にすでに取り込まれているか, そうなる予定にあり、その取り込んだ仕様が勧告候補に到達したなら、 CSS2 による定義は廃用にされることになる。 ◎ Once CSS2.1 became Candidate Recommendation—effectively though not officially the same level of stability as CSS2—obsoleted the CSS2 Recommendation. Features in CSS2 that were dropped from CSS2.1 should be considered to be at the Candidate Recommendation stage, but note that many of these have been or will be pulled into a CSS Level 3 working draft, in which case that specification will, once it reaches CR, obsolete the definitions in CSS2.
- CSS2.1 仕様 は、`CSS Level 2$ を定義する。 CSS Style Attributes 仕様 は、要素に特有の~style属性による~CSSの内包を定義する。 ◎ The CSS2.1 specification defines CSS Level 2 and the CSS Style Attributes specification defines its inclusion in element-specific style attributes.
- `CSS Level 3@
- `CSS Level 3$ は、その中核に CSS2.1 仕様を利用して,~moduleごとに `CSS Level 2$ の上に築かれている。 各~moduleは、機能性を追加したり, CSS2.1 仕様の一部を置換する。 新たな~CSS~moduleは、 CSS2.1 仕様と矛盾しないよう,[ 機能性を追加する/定義を精緻化する ]のみになることが意図されている。 各~moduleが完了するに伴い、[ CSS2.1 と完了した~module ]用の既存の~systemに,差込まれることになる。 ◎ CSS Level 3 builds on CSS Level 2 module by module, using the CSS2.1 specification as its core. Each module adds functionality and/or replaces part of the CSS2.1 specification. The CSS Working Group intends that the new CSS modules will not contradict the CSS2.1 specification: only that they will add functionality and refine definitions. As each module is completed, it will be plugged in to the existing system of CSS2.1 plus previously-completed modules.
- この~levelから、各~moduleは,独立に~levelを持つようになる。 例えば Selectors ~Level 4 は、 CSS Line Module Level 3 より早く,~~十分に完了されるかもしれない。 `CSS Level 2$ に等価なものがない~moduleは,~Level 1 から開始され、 `CSS Level 2$ に存在する特色機能を更新する~moduleは, Level 3 から開始される。 ◎ From this level on modules are levelled independently: for example Selectors Level 4 may well be completed before CSS Line Module Level 3. Modules with no CSS Level 2 equivalent start at Level 1; modules that update features that existed in CSS Level 2 start at Level 3.
- `CSS Level 4@ 以上
- CSS Level 4 は無い。 個別の~moduleは,独立に~level 4 以上へ到達し得るが、 言語としての~CSSは、最早~levelを持たない。 (用語としての “CSS Level 3” は、以前の単体的~versionと区別するために限って利用される。) ◎ There is no CSS Level 4. Independent modules can reach level 4 or beyond, but CSS the language no longer has levels. ("CSS Level 3" as a term is used only to differentiate it from the previous monolithic versions.)
2.2. ~CSS ~profile
すべての実装が,~CSSに定義されるすべての機能性を実装するわけではない。 ◎ Not all implementations will implement all functionality defined in CSS.
~CSS-WGは、過去には,少数の~profileを発行していた。 それらには、様々な類別の~UAが~supportするものと期待される,~CSSの最小限の下位集合を定義することが~~意図されていた。 ◎ In the past, the Working Group published a few Profiles, which were meant to define the minimal subset of CSS that various classes of User Agents were expected to support.
が、この労力には,実効性も有用性も見出せなかったので、もう継続されない。 以前に定義された~profileは、今や保守されていない。 ◎ This effort has been discontinued, as the Working Group was not finding it effective or useful, and the profiles previously defined are now unmaintained.
注記: ~CSSの部分的~実装は、自身が実装する下位集合が公式的な~profileであるとしても,部分的~実装に課される 前方互換な構文解析~規則に従わ~MUST。 ◎ Note: Partial implementations of CSS, even if that subset is an official profile, must follow the forward-compatible parsing rules for partial implementations.
3. 実装に課される要件
以下の各~節にて、~CSSを担当する実装に課される,いくつかの適合性~要件を定義する。 これらの要件は、現在tから将来への相互運用性を促すように定められている。 ◎ The following sections define several conformance requirements for implementing CSS responsibly, in a way that promotes interoperability in the present and future.
3.1. 部分的~実装
作者が前方互換な構文解析~規則を活用して,値をあてがえるようにするため、 CSS ~rendererは,自身が実用~levelで~supportしないどの[ ~at-rule, ~prop, ~prop値, ~keyword, 他の構文上の構成子 ]も( 適宜,無視する ように)無効なものと扱わ~MUST。 特に、~UAは,単独の複数値~prop宣言内で、未supportの~prop値を選択的に無視しつつ,~supportする値を尊守しては~MUST_NOT: (未supportの値がそうでなければならない様に,)無効と見なされる値が含まれている宣言は、全体として無視することが ~CSS から要求される。 ◎ So that authors can exploit the forward-compatible parsing rules to assign fallback values, CSS renderers must treat as invalid (and ignore as appropriate) any at-rules, properties, property values, keywords, and other syntactic constructs for which they have no usable level of support. In particular, user agents must not selectively ignore unsupported property values and honor supported values in a single multi-value property declaration: if any value is considered invalid (as unsupported values must be), CSS requires that the entire declaration be ignored.
3.2. 不安定/~proprietaryな特色機能の実装
将来の安定的~CSS特色機能との衝突を避けるため、~CSS-WGは、 ~CSSに対する[ `不安定$な特色機能/`~proprietary拡張$ ]を実装する際には,以下に挙げる 最善の実施に従うことを推奨する。 ◎ To avoid clashes with future stable CSS features, the CSSWG recommends the following best practices for the implementation of unstable features and proprietary extensions to CSS:
3.2.1. 試験運用と不安定な特色機能
W3C 仕様に述べられてはいるが相互運用可能でないような,`不安定$な特色機能の実装は、一般用途には~releaseされるべきではないが,制御された環境における 制限付きの, 試験的な用途には~releaseされてよい。 ◎ Implementations of unstable features that are described in W3C specifications but are not interoperable should not be released broadly for general use; but may be released for limited, experimental use in controlled environments.
何故?
作者, 実装者の両者が特色機能について試験して ~feedbackできるようにしつつ、作者が製品~websiteにて それらに依拠する結果,後で変更され得る構文や挙動が(内容の依存性を通して)なし崩し的に “~~固定化される” ことを防ぐことも求められるので。 ◎ We want to allow both authors and implementors to experiment with the feature and give feedback, but prevent authors from relying on them in production websites and thereby accidentally "locking in" (through content dependence) certain syntax or behavior that might change later.
例えば~UAは、`不安定$な特色機能を,試験運用のために ~beta版その他の試験段階~buildを通して~releaseすることもできる — [ 環境設定~flagの背後に~~隠すこと / 特定の試験的な共同者のみ可能化できる切替手段 / その他 依存性が生じるような利用を制限する何らかの手段 ]を通して。 ◎ For example, a UA could release an unstable features for experimentation through beta or other testing-stage builds; behind a hidden configuration flag; behind a switch enabled only for specific testing partners; or through some other means of limiting dependent use.
仕様が W3C 批准過程における勧告候補( CR )の段階に到達するまでは,その~CSS特色機能は `不安定@ と見なされる。 例外的~事例においては、~CSS-WGは、公式に記録される解決を通して, CR 段階に達していない特色機能を[ 一般用途に~releaseしても安全と見なされる集合 ]に追加することもある。 勧告候補~前に~releaseしても安全な例外を見よ。 ◎ A CSS feature is considered unstable until its specification has reached the Candidate Recommendation (CR) stage in the W3C process. In exceptional cases, the CSSWG may additionally, by an officially-recorded resolution, add pre-CR features to the set that are considered safe to release for broad use. See §4 Safe to Release pre-CR Exceptions.
注記: 各~vendorは、明示的に~CSS-WGに協議を求めるべきであり,この点に関して前提を置くべきでない — 長く留め置かれ, CR 段階に達していない仕様は、通例的に,安定的というより古くなったことを表すので。 ◎ Note: Vendors should consult the WG explicitly and not make assumptions on this point, as a pre-CR spec that hasn’t changed in awhile is usually more out-of-date than stable.
3.2.2. ~proprietary/標準~化されていない特色機能
将来~CSS特色機能との衝突を避けるため、 CSS2.1 仕様では,~CSSに対する ~proprietary/試験的 な拡張に対し, `接頭辞付き構文@ ( prefixed syntax, `CSS2$r )を予約している。 ある~vendorによる~UAのみから~access可能な,閉じた環境~用途の~CSS特色機能は、 `~proprietary拡張@ とされる。 ~UAは、そのような`~proprietary拡張$を,~vendor`接頭辞付き$構文を通してのみ~supportするべきであり、それらを World Wide Web などの(複数の~UA)環境に~openな~~形で公開するべきでない。 ◎ To avoid clashes with future CSS features, the CSS2.1 specification reserves a prefixed syntax [CSS2] for proprietary and experimental extensions to CSS. A CSS feature is a proprietary extension if it is meant for use in a closed environment accessible only to a single vendor’s user agent(s). A UA should support such proprietary extensions only through a vendor-prefixed syntax and not expose them to open (multi-UA) environments such as the World Wide Web.
何故?
接頭辞を付与する要件により、標準~CSSへの将来の追加と競合することなく,閉じた環境に特化された特色機能を出荷できるようになる。 ~openな~systemへの公開に対する制約は、公共の~CSS環境が,標準~化されていない`~proprietary拡張$に なし崩し的に依存するようになるのを防ぐためである。 ◎ The prefixing requirement allows shipping specialized features in closed environments without conflicting with future additions to standard CSS. The restriction on exposure to open systems is to prevent accidentally causing the public CSS environment to depend on an unstandardized proprietary extensions.
例えば[ Firefox の XUL に基づく~UI / Apple の iTunes ~UI / Microsoft の Universal Windows Platform ~app ]は、~CSSに対する拡張を利用し,各主体の手による~UAに実装されている。 これらの~UAが,当の特色機能への~accessを~Web内容に許容すると、そのような内容が当の`~proprietary拡張$に依存するようになる機会も生じることになる。 ◎ For example, Firefox’s XUL-based UI, Apple’s iTunes UI, and Microsoft’s Universal Windows Platform app use extensions to CSS implemented by their respective UAs. So long as these UAs do not allow Web content to access these features, they do not provide an opportunity for such content to become dependent on their proprietary extensions.
最終的に~Web利用が意図されている特色機能であっても、まだ標準~化されていない場合は,依然として~Webに公開されるべきでない。 ◎ Even if a feature is intended to eventually be used in the Web, if it hasn’t yet been standardized it should still not be exposed to the Web.
3.2.3. 市場~圧力と事実上の標準
特色機能がまだ`不安定$(すなわち、その仕様は,まだ安定化されていない)であっても: ◎ If a feature is unstable (i.e. the spec has not stabilized yet), yet
- その特色機能を実装する~UAが 3 つ以上ある( または ~UAが他の規則に従わずに,`不安定$あるいは標準でない特色機能を製品~releaseにて一般用途に出荷した) ◎ at least three UAs implement the feature (or a UA has broken the other rules and shipped for broad use an unstable or otherwise non-standard feature in a production release),
- かつ、実装は,`概ね相互運用可能$である ◎ and the implementations have rough interoperability,
- かつ、~CSS-WGは,この特色機能は存在するべきであり,~releaseされるべきであるとの合意を記録した、 ◎ and the CSS Working Group has recorded consensus that this feature should exist and be released,
ならば、実装者は,その特色機能を`接頭辞無し$として,一般用途の~release~buildにて出荷してよい。 `概ね相互運用可能@ であるかどうかは、相違点があるとしても,[ 各~実装が,相当数の利用~事例において,製品~websiteにて十分似る様に利用されているかどうか ]に関する,subjective judgment 【主観的判断?】により満たされる。 ◎ implementers may ship that feature unprefixed in broad-release builds. Rough interoperability is satisfied by a subjective judgment that even though there may be differences, the implementations are sufficiently similar to be used in production websites for a substantial number of use cases.
注記: 各~vendor間の調整を確保するため,および 各~vendorからの~CSS専門家による健全な考査を確保するため、依然として,~CSS-WGに協議を求め~MUSTことに注意。 また,`概ね相互運用可能$であるとしても、通例的に,際どい事例では(または さほど際どくない事例でも)、依然,相互運用可能とは とても言えない部分があることを意味することにも注意 — 特に,詳細が まだ標準~考査の過程を通して確定されていないときは。 ◎ Note that the CSSWG must still be consulted to ensure coordination across vendors and to ensure sanity review by the CSS experts from each vendor. Note also that rough interoperability still usually means painful lack of interop in edge (or not-so-edge) cases, particularly because details have not been ironed out through the standards review process.
何故?
標準~化を終える前に,当の特色機能を 3 つ以上の~browserが実装するほど十分に普及したならば、この条項は,出荷への圧力の解放を許容する。 また、ある特色機能がすでに野に放たれていて,~~多数の~websiteがそれに依存し始めた場合、それを “試験的” のまま留め置いても,誰の助けにもならない。 当の特色機能が今や事実上の標準と化していることを認めて,他者による接頭辞無し実装の出荷を許容した方が、作者が各~platformに適応可能な~codeを書くことを~~促す結果になる。 ◎ If a feature is sufficiently popular that three or more browsers have implemented it before it’s finished standardization, this clause allows releasing the pressure to ship. Also, if a feature has already escaped into the wild and sites have started depending on it, pretending it’s still “experimental” doesn’t help anyone. Allowing others to ship unprefixed recognizes that the feature is now de facto standardized and encourages authors to write cross-platform code.
3.2.3.1. 不安定な特色機能に対する~vendor接頭辞の付与
実装は、標準化過程にある`不安定$な特色機能を,製品~releaseにおいて~Webに公開するときは、当の特色機能に対し, `~vendor接頭辞付き$/接頭辞無し 構文の両者とも ~supportするべきである。 特色機能が安定化され,相互運用可能な挙動に合致するよう実装が更新されたときには、`~vendor接頭辞付き$構文の~supportは,除去されるべきである。 ◎ When exposing such a standards-track unstable feature to the Web in a production release, implementations should support both vendor-prefixed and unprefixed syntaxes for the feature. Once the feature has stabilized and the implementation is updated to match interoperable behavior, support for the vendor-prefixed syntax should be removed.
何故?
これが推奨されるのは、作者が[ すべての実装を対象にする接頭辞無し構文 ]を利用しつつ、[ 当の特色機能が 標準~化/~bug~~解消 の過程を通して確定されるに伴い、特定の実装に非互換性が生じたとき ]にも,必要に応じて回避できるようにするためである。 ◎ This is recommended so that authors can use the unprefixed syntax to target all implementations, but when necessary, can target specific implementations to work around incompatibilities among implementations as they get ironed out through the standards/bugfixing process.
接頭辞付き構文のみが~supportされる段階が無ければ、~vendor接頭辞付き構文のみを伴う~stylesheetが書かれる~riskも大幅に抑制される。 その結果,~UA~vendorは、当の特色機能が安定的になったとき,既存の内容を壊す~riskを低く抑えつつ,自身の接頭辞付き構文を退役させられるようになる。 それはまた,ときには、ある~vendorが — 内容が,別~vendorの接頭辞を有する特色機能の構文に依存していることに因り — その構文を~supportする羽目になることも,抑制する。 ◎ The lack of a phase where only the prefixed syntax is supported greatly reduces the risk of stylesheets being written with only the vendor-prefixed syntax. This in turn allows UA vendors to retire their prefixed syntax once the feature is stable, with a lower risk of breaking existing content. It also reduces the need occasionally felt by by some vendors to support a feature with the prefix of another vendor, due to content depending on that syntax.
`不安定$な特色機能を作者に促しているどの主体であれ、自身による それらの標準を,接頭辞無し構文により文書化するべきである。 加えて、実装~間の相違点を回避する以外のどの目的であれ,`~vendor接頭辞付き$構文の利用を奨励すべきでない。 ◎ Anyone promoting unstable features to authors should document them using their standard unprefixed syntax, and avoid encouraging the use of the vendor-prefixed syntax for any purpose other than working around implementation differences.
3.2.3.2. CSS の~open性を保全すること
~CSSの,技術としての~openな性向を保全するため、各~vendorは、自身が出荷するどの特色機能についても,他の実装者が自由に実装できるようにするべきである。 よって、各~vendorは、当の特色機能の標準~化を完了させるため,仕様を 編集する/~testする ための資源を供して、競争相手が当の特色機能を出荷し難くするような障害(例えば,~platform依存関係, 利用許諾上の制約)は避けるべきである。 ◎ In order to preserve the open nature of CSS as a technology, vendors should make it possible for other implementors to freely implement any features that they do ship. To this end, they should provide spec-editing and testing resources to complete standardization of such features, and avoid other obstacles (e.g., platform dependency, licensing restrictions) to their competitors shipping the feature.
3.3. 勧告候補~levelの特色機能の実装
仕様が勧告候補の段階に到達したなら、実装者は、勧告候補~levelの特色機能に対し,仕様に則って正しく実装されたことが実証できたなら、`接頭辞無し$実装を~releaseし,その特色機能の接頭辞付き変種の公開ingを避けるべきである。 ◎ Once a specification reaches the Candidate Recommendation stage, implementers should release an unprefixed implementation of any CR-level feature they can demonstrate to be correctly implemented according to spec, and should avoid exposing a prefixed variant of that feature.
実装~間にわたる CSS の相互運用性を確立し, 保守するため、~CSS-WGは、試験的でない~CSS~rendererが~CSS特色機能の接頭辞無し実装を~releaseする前に,その実装~報告を(および、必要なら,実装~報告に利用した~testcaseも併せて) W3C に提出することを要請する。 提出された~testcaseは、~CSS-WGによる考査と訂正の対象になる。 ◎ To establish and maintain the interoperability of CSS across implementations, the CSS Working Group requests that non-experimental CSS renderers submit an implementation report (and, if necessary, the testcases used for that implementation report) to the W3C before releasing an unprefixed implementation of any CSS features. Testcases submitted to W3C are subject to review and correction by the CSS Working Group.
~testcase/実装~報告 の提出-法についての更なる情報は、~CSS-WGの~website https://www.w3.org/Style/CSS/Test/ に見出せる。 質問があれば, public-css-testsuite@w3.org ~mailing-list宛に寄せられるべきである。 ◎ Further information on submitting testcases and implementation reports can be found from on the CSS Working Group’s website at https://www.w3.org/Style/CSS/Test/. Questions should be directed to the public-css-testsuite@w3.org mailing list.
4. 勧告候補~前に~releaseしても安全な例外
以下に挙げる特色機能は、当の仕様が勧告候補に到達する前に 広く~releaseされても安全なことが,~CSS-WGにより明示的かつ事前的( `proactive^en )に明白にされた: ◎ The following features have been explicitly and proactively cleared by the CSS Working Group for broad release prior to the spec reaching Candidate Recommendation:
- 次に挙げる,各種~propの~flow相対な等価 — 説明と 仕様を見よ ⇒# ~sizing~prop( `width^p, `height^p, 等々), ~border~prop, ~margin~prop, ~padding~prop ◎ The flow-relative equivalents of the sizing properties (width, height, etc.), the border properties, the margin and padding properties. See explanation and specification.
- 次に挙げる,各種~sizing~prop用の~keyword — 裁定と 仕様を見よ ⇒# `min-content$v, `max-content$v ◎ The min-content and max-content keywords of the sizing properties. See decision and specification.
- `conic-gradient$f ~gradient記法。 裁定を見よ。 ◎ The conic-gradient() gradient notation. See decision.
以下に挙げる特色機能は、当の仕様が勧告候補に到達する前に 広く~releaseされても安全なことが, ~CSS-WGにより明示的かつ事後的( `retroactive^en )に明白にされた: ◎ The following features have been explicitly and retroactively cleared by the CSS Working Group for broad release prior to the spec reaching Candidate Recommendation:
- 次に挙げる仕様~内にあるすべて ⇒# CSS Animations Level 1(和訳), CSS Transitions Level 1(和訳), CSS Transforms Level 1(和訳) ◎ Everything in CSS Animations Level 1, CSS Transitions Level 1, and CSS Transforms Level 1.
- `SELECTORS-4$r による,次に挙げる疑似類 ⇒# `dir()$ps, `lang()$ps, `focus-within$ps ◎ The :dir(), :lang(), and :focus-within pseudo-classes from [SELECTORS-4].
5. 索引
~INFORMATIVE5.1. 用語~索引
【この節は未訳。】5.2. 選択子~索引
【原文は無い。参考: `SELECTORS4$r の 選択子の概観。】5.3. ~at-rule索引
- `charset$at
- `font-face$at
- `import$at
- `media$at
- `supports$at
5.4. ~prop索引
【この節は未訳。参考:全~prop一覧】5.5. ~prop値~索引
【この節は未訳。】謝辞
§3.2.1. 試験運用と不安定な特色機能 の初期~草案を作成された, Florian Rivoal 氏に特別な謝意を。 ◎ Special thanks to Florian Rivoal for creating the initial draft of the §3.2.1 Experimentation and Unstable Features recommendations.