1. 序論
注記: 書字~modeの本式な序論は、 `css-writing-modes-4$r を見よ。 この~moduleは,その各種用語に馴染んでいると見做す。 ◎ Note: See [css-writing-modes-4] for a proper introduction to writing modes; this module assumes familiarity with its terminology.
書記体系が異なれば書かれる方向も異なるので、 様々な`書字~mode$が存在する — [ 左から右へ + 上から下へ ],[ 右から左へ + 上から下へ ],[ 下から上へ + 右から左へ ]等々。 それに応じて、 ~pageや行lの “始端” の様な論理的~概念から,行lの “上端” や段落の “左端~辺” の様な物理的~概念への対応付けも変わる。 ~layoutには,実際には書字~方向に相対的な側面もあるので、 ~pageが他の書記体系に翻訳されれば,~layoutも変わることになる。 それ以外の側面は、 内来的に~pageの物理-方位に相対的になる。 ◎ Because different writing systems are written in different directions, a variety of writing modes exist: left to right, top to bottom; right to left, top to bottom; bottom to top, right to left; etc. logical concepts like the “start” of a page or line map differently to physical concepts like the “top” of a line or “left edge” of a paragraph. Some aspects of a layout are actually relative to the writing directions, and thus will vary when the page is translated to a different system; others are inherently relative to the page’s physical orientation.
例えば、[ ~list, 見出し, 段落 ]は,~Englishでは概して左端に整列されるが、 実際には始端に整列される — ~Arabicでは,同じ構成子は右端に整列され、 多言語の文書では,両~書記体系に則って収容する必要があるので。 ◎ For example, lists, headings, and paragraphs are typically left-aligned in English; but actually they are start-aligned, because in Arabic the same constructs are right-aligned, and a multilingual document will need to accommodate both writing systems accordingly.
論理-構文を利用すれば,異なる書記体系にわたって働く~codeを書き易くなる例を、 次の~codeに示す: ◎ The following code examplifies how using logical syntax can help you write code that works across different writing systems:
<blockquote dir="auto">Quotation in English</blockquote> <blockquote dir="auto">اقتباس في العربية</blockquote>
blockquote { `text-align$p: start; /* ~Latinにおいては `left^v, ~Arabicにおいては `right^v ◎ left in latin, right in arabic */ `margin-inline-start$p: 0px; /* ~Latinにおいては `margin-left^p, ~Arabicにおいては `margin-right^p ◎ margin-left in latin, margin-right in arabic */ `border-inline-start$p: 5px solid gray; /* ~Latinにおいては `border-left^p, ~Arabicにおいては `border-right^p ◎ border-left in latin, border-right in arabic */ `padding-inline-start$p: 5px; /* ~Latinにおいては `padding-left^p, ~Arabicにおいては `padding-right^p ◎ padding-left in latin, padding-right in arabic */ }
文書は、 論理-, 物理- 両~propとも必要とするかもしれない。 一例として、 ~page上の~buttonたちの落影【 `box-shadow$p 】は全体を通して一貫でなければナラナイ — なので,その~offsetは、 視覚的な考慮点と物理-方向に基づいて選ばれ,書記体系に応じて変わることはない。 ◎ Documents might need both logical and physical properties. For instance the drop shadows on buttons on a page must remain consistent throughout, so their offset will be chosen based on visual considerations and physical directions, and not vary by writing system.
~CSSは元々,物理-座標のみで制御するよう設計されていた。 この~moduleは、 `~flow相対$な用語で~CSS~stylesheet内の宣言を表出できるようにするため, ~text~flowに相対的な等価物を導入する。 【 “~flow相対” は、 “~flowに相対的” の短縮形である。】 それは、 次を定義する: ◎ Since CSS was originally designed with only physical coordinates in its controls, this module introduces text-flow–relative equivalents so that declarations in a CSS style sheet can be expressed in flow-relative terms. It defines\
- 従来の, CSS2.1 の~propに等価になる,いくつかの新たな~propと値
- 新たな~propや値と従来のそれらとの対応付け
- それらの~propの~cascade法
- それらの構文を導出するための原則
将来の~CSS仕様では、 その~prop, およびその値の定義に,新旧 両 座標の集合を組入れるものと期待されているので、 この~moduleは,より新たな~CSS特能の`~flow相対$な変種の導入には立ち入らない。 ◎ Future CSS specifications are expected to incorporate both sets of coordinates in their property and value definitions, so this module will not track the introduction of flow-relative variants of newer CSS features.
`CSS Writing Modes^cite `§ 抽象-~box用語@~CSSWM#abstract-box$ は、 ~flow相対な用語から物理-用語へをどう対応付けるか定義している。 この対応付けは、[ `writing-mode$p, `direction$p, `text-orientation$p ]の`使用~値$に依存し,`~flow相対$な~keywordと~propの解釈を制御する。 ◎ CSS Writing Modes’ Abstract Box Terminology section defines how to map between flow-relative and physical terms. This mapping, which depends on the used values of writing-mode, direction, and text-orientation, controls the interpretation of flow-relative keywords and properties.
注記: `direction$p の`使用~値$は、 `text-orientation$p との相互作用に因り,[ `writing-mode$p, `text-orientation^p ]の`算出d値$に依存する。 ◎ Note: Due to its interaction with text-orientation: upright, the used direction depends on the computed values of writing-mode and text-orientation.
不安定なもの: ~Webに向けて(既定の~HTML~styleを正しく実装するために) `CSS Writing Modes@~CSSWM3$cite の実装を出荷するためには、 この~moduleを成す各部の実装が実質的に要求される — [ `§ ~flow相対な値@#directional-keywords$, `§ ~flow相対な~box~model~prop@#box$ ]は、 必要条件となる特能であり, 出荷を認可するものと~CSS~WGにて解決された。 (追加的な背景情報は、 `FPWD 公告@https://lists.w3.org/Archives/Public/www-style/2017Dec/0043.html$ を見よ。) ◎ Things That Are Unstable Since implementation of parts of this module is effectively required for shipping an implementation of CSS Writing Modes on the Web (in order to correctly implement the default HTML styles), the CSSWG resolved that the requisite features in § 2 Flow-Relative Values: block-start, block-end, inline-start, inline-end and § 4 Flow-Relative Box Model Properties are approved for shipping. (See FPWD announcement for additional background.)
しかしながら,少数の有意な~~未解決な課題がある: ◎ However, there are a few significant open issues:
- 各種 略式~prop上の `logical^v ~keyword — この~keyword名は変更されるか,または何らかの構文-~markerに置換されるかもしれないので。 (明瞭に満足できる仕組みが提案されなかった場合、 この特能は,この~levelから更なる開発~用に先送りされることになる — `1282$issue を見よ。) ◎ The logical keyword on shorthands, because the name of the keyword may change or it may be replaced by some other syntactic marker. (This feature will be deferred from this level for further development if there is no clearly satisfactory mechanism proposed, see Issue 1282.)
- ~flow相対な下位propは、 親~上の同名の~propを継承するのか,その前に物理的~propに対応付けられてから継承するのか。 ( `3029$issue を見よ。) ◎ Whether flow-relative longhands inherit from their namesake on the parent, or are mapped to a physical property and inherit from that property. (See Issue 3029.)
- `margin$p の様な略式~propは、 【構文解析-時に,物理的, 論理的】両~下位propの集合に展開されるのか, 【`logical^v ~keywordの有無に応じて】設定された方のみに展開されるのか。 ( `3030$issue を見よ。) ◎ Whether shorthands like margin expand to both sets of longhands, or only the ones that were set. (See Issue 3030.)
これらの課題について~comment/示唆/利用事例があれば歓迎する。 GitHub に~~提出するか, @csswg 宛に tweet するか, www-style@w3.org 宛に送信されたし。 ◎ Comments and suggestions are welcome on these issues. Please file them in GitHub, tweet them to @csswg, or send them to www-style@w3.org.
1.1. 値~定義
【 この節の内容は、 `~CSS日本語訳 共通~page@~CSScommon#values$に移譲。 】
2. ~flow相対な値: `block-start^v, `block-end^v, `inline-start^v, `inline-end^v
多くの~CSS~propは、 歴史的に`物理的$な `方向-~keyword@ 値( `top^v, `bottom^v, `left^v, `right^v )を受容している。 この仕様は、 `~flow相対$な`方向-~keyword$値 — `block-start^v, `block-end^v, `inline-start^v, `inline-end^v — を導入する。 ◎ Many CSS properties have historically accepted directional keyword values that are physical (top, bottom, left, right). This specification introduces directional keyword values that are flow-relative: block-start, block-end, inline-start, inline-end.
~propの効果は、 一次元にも二次元にもなり得る。 文脈的に一次元に拘束されるときは、 ~flow相対な~keywordは( `start^v または `end^v に )略語化される。 ◎ A property’s effect can be either 1-dimensional or 2-dimensional. When contextually constrained to one dimension, the flow-relative keywords are abbreviated (to start and end).
~CSS2の~propは、 ここにて,`~flow相対$な方向-~keywordも受容するよう定義し直される。 そのような値は、 対応する物理的な値に代えて利用できる。 複数の~keywordをとれるような~propに対しては、[ 物理的な値, ~flow相対な値 ]の組合nは,(将来の仕様にて指定されない限り)許容されない。 ◎ CSS Level 2 properties are here redefined to also accept flow-relative directional keywords. Such values can be used in place of the corresponding physical values. For properties that take multiple keywords, combinations of flow-relative and physical values are not allowed (unless otherwise specified in a future specification).
注記: より新たな~CSS仕様は、 ほとんどの事例で,`物理的$な値に[ 代えて/加えて ][ `~flow相対$な値/`行l相対$な値 ](順不同)を定義するものと期待される。 一般に,そのような相対的な値の対応付けは、 影響する対象が[ ~box自身ならば`包含塊$/ ~boxの内容ならば~box自身 ]の`書字~mode$を利用することが期待される。 そうであっても、 対応付け用に どの`書字~mode$を利用するかは,明示的に定義される必要がある。 ◎ Note: Newer CSS specifications are expected in most cases to define flow-relative or line-relative values instead of or in addition to any physical ones. In general, the mapping of such relative values are expected to use the writing mode of the containing block when affecting the box itself, and that of the box itself when affecting its contents. Regardless, which writing modes is used for the mapping needs to be explicitly defined.
2.2. `float^p, `clear^p ~prop用の~flow相対な値
◎名 `float!p, `clear!p ◎新値 `inline-start^v | `inline-end^v ◎算 指定された~keyword ◎表終これらの~prop上の対応付けには、 要素の`包含塊$の`書字~mode$が利用される。 ◎ The mapping on these properties uses the writing mode of the element’s containing block.
注記: これらの~propは、 CSS2 においては一次元であったが, 両~次元に拡げるよう計画されているので 【`CSS Page Floats@~CSSWG/css-page-floats/$cite】、 `~flow相対$な~keywordは,略語化されない。 ◎ Note: These properties are 1-dimensional in CSS2, but are planned to be expanded to two dimensions, and therefore are given unabbreviated flow-relative keywords.
2.3. `text-align^p ~prop用の~flow相対な値
◎名 `text-align!p ◎新値 `start^v | `end^v ◎算 指定された~keyword ◎表終これらの値は `css-text-3$r にて規範的に定義される。 ◎ These values are normatively defined in [css-text-3].
3. ~flow相対な~pageの分類
~CSSにおいては、 すべての~pageは,~UAにより 左~pageか右~page のいずれかに分類される。 `CSS2$r しかしながら、 いずれの~pageが見開きの最初になるかは, `~page進行$が右向きか左向きかに依存する。 ◎ In CSS, all pages are classified by user agents as either left pages or right pages. [CSS2] Which page is first in a spread, however, depends on whether the page progression is left-to-right or right-to-left.
何~pageかに分断するとき,所与の~pageを[ 見開きの左か右かでなく,~page進行において先に来させるか後に来させるか ]を制御することを許容するるため、 この~moduleは[ `page-break-after$p / `page-break-before$p ]~prop `CSS2$r 用に,次に挙げる~keywordを追加する: ◎ To allow control of page breaking to the page that is on the earlier or later side of a spread, rather than to the left or right side of a spread, this module introduces the following additional keywords for the page-break-after and page-break-before properties [CSS2]:
- `recto@v
- `~page進行$が[ 右向きの下では `right^v / 左向きの下では `left^v ]に等価。 ◎ Equivalent to right in left-to-right page progressions and left in right-to-left page progressions.
- `verso@v
- `~page進行$が[ 右向きの下では `left^v / 左向きの下では `right^v ]に等価。 ◎ Equivalent to left in left-to-right page progressions and right in right-to-left page progressions.
これらの値は、 指定d値に算出され,~~詳細は `css-break-3$r にて定義される。 【 `break-after$p / `break-before$p 】 ◎ These values are computed as specified and are further defined in [css-break-3].
作者は、 概して,~flow相対な配置を利用して~page番号を置くが、 ~headerの内容は,見開きのどちらの~pageがより先に来るかに依存する規約に従うことが多い。 ~flow相対な~page選択を~supportするため、 ~flow相対な次の`~page選択子$も追加される: ◎ Although authors typically place page numbers using physical placements, the contents of headers often follows conventions depending on which page in the spread is earlier. Therefore the following flow-relative page selectors are also added to support flow-relative page selection:
- `recto@ps
- `~page進行$が[ 右向きの下では `right$ps / 左向きの下では `left$ps ]に等価。 ◎ Equivalent to ':right' in left-to-right page progressions and ':left' in right-to-left page progressions.
- `verso@ps
- `~page進行$が[ 右向きの下では `left$ps / 左向きの下では `right$ps ]に等価。 ◎ Equivalent to ':left' in left-to-right page progressions and ':right' in right-to-left page progressions.
~flow相対な~page選択子の詳細度は、 `left$ps / `right$ps ~page選択子のそれに等しい。 ◎ The flow-relative page selectors have specificity equal to the ':left' and ':right' page selectors.
4. ~flow相対な~box~model~prop
多くの整形~効果では、 影響される[ 軸/方向 ]は,その値ではなく~prop名に符号化される。 そのような各~propの[ 方向-/軸 ]対応付けの種別(`~flow相対$か`物理的$か)は、 その `対応付け~logic@ と呼ばれる。 歴史的に,すべての~propは、 `物理的$な用語に符号化されていた — この仕様は、[ ~CSS2の`物理的$な各種~box~model~prop ]に等価な新たな~propとして,`~flow相対$な~propを導入する。 ◎ For many formatting effects, the axis or direction affected is encoded in the property name rather than in its value. The type of directional or axis mapping (flow-relative or physical) of each such property is called its mapping logic. Historically, all properties have been encoded in physical terms; this specification introduces new CSS properties that are flow-relative equivalents of CSS2’s physical box model properties.
注記: より新たな~CSS仕様は,ほとんどの事例で、 `物理的$な~propに[ 代わる/加えて ],[ `~flow相対$, または`行l相対$ ]な~propを定義するものと期待される。 ◎ Note: Newer CSS specifications are expected in most cases to define flow-relative or line-relative properties instead of or in addition to any physical ones.
~boxの各[ 側/次元 ]に等価な~styleを設定することにより互いに関係するような,並行な各種[ `~flow相対$な~prop, `物理的$な~prop ]が成す集合は(`略式~prop$は無視して)、 `論理-~prop~group@ を形成する (どの`下位prop$も,複数の`論理-~prop~group$に属することはない)。 例えば,次に挙げるものは、 それぞれ別の単独の`論理-~prop~group$を形成する ⇒# 各種 `padding-*^p ~prop/ 各種 `margin-*^p ~prop/ 各種 `border-*-style^p ~prop ◎ Each set of parallel flow-relative properties and physical properties (ignoring shorthand properties) related by setting equivalent styles on the various sides or dimensions of a box, forms a logical property group. For example, the padding-* properties form a single logical property group, the margin-* properties form a separate logical property group, the border-*-style properties form another logical property group, etc. (Each longhand property can belong to at most one logical property group.)
各`論理-~prop~group$の中では、[ `~flow相対$な~prop, それに対応する`物理的$な~prop ]は、 要素の自前の`書字~mode$の`算出d値$を利用して,~pairにされる。 各~propの`指定d値$は,別個であり続けるが、 ~pairにされた~propは,同じ`算出d値$を共有する。 この共有された値は、 両~propの宣言を 1 つのものとして一緒に`~cascade$することにより決定される — 言い換えれば、 ~pairを成す両~propの`算出d値$は,[ `~cascade$において,より高い優先度を伴って宣言された方の~prop ]の`指定d値$から導出される。 `CSS-CASCADE-3$r ◎ Within each logical property group, corresponding flow-relative and physical properties are paired using the element’s own computed writing mode. Although the specified value of each property remains distinct, paired properties share a computed value. This shared value is determined by cascading the declarations of both properties together as one; in other words, the computed value of both properties in the pair is derived from the specified value of the property declared with higher priority in the CSS cascade. [CSS-CASCADE-3]
注記: これには、 実装が,~CSS宣言~塊の中で 【名前が異なる下位propについても】 宣言どうしの順序を保守することが要求される — それは、 以前までは~CSS~cascade法に要求されていなかった。 また、 `論理-~prop~group$を成す[ `~flow相対$, `物理的$ ]な各~宣言を[ それらの`算出d値$を見出すために,一緒に~cascadeする ]ための前提条件として,[ `writing-mode$p, `direction$p, `text-orientation$p ]を算出することも要求される。 ◎ Note that this requires implementations to maintain relative order of declarations within a CSS declaration block, which was not previously required for CSS cascading. It also requires that writing-mode, direction, and text-orientation be computed as a prerequisite for cascading together the flow-relative and physical declarations of a logical property group to find their computed values.
例えば、 次の規則が与えられたとする: ◎ For example, given the following rule:
p { margin-inline-start: 1px; margin-left: 2px; margin-inline-end: 3px; }
段落( `p^e 要素)の[ `writing-mode$p の算出d値は `horizontal-tb$v, `direction$p の算出d値は `ltr$v ]になるならば、 段落の `margin-left$p の算出d値は `2px^v になる — この場合,[ `margin-inline-start$p, `margin-left$p ]が算出d値を共有することになり、 `margin-left^p の宣言が `margin-inline-start^p の宣言より後にあるので。 ◎ In a paragraph with computed writing-mode being horizontal-tb and computed direction being ltr, the computed value of margin-left is 2px, since for that writing-mode and direction, margin-inline-start and margin-left share a computed value, and the declaration of margin-left is after the declaration of margin-inline-start.\
代わりに `direction$p の算出d値は `rtl$v であったなら、 `margin-left$p の算出d値は `3px^v になる — その場合は,[ `margin-inline-end$p, `margin-left$p ]が算出d値を共有することになり、 `margin-inline-start^p の宣言が `margin-left^p の宣言より後にあるので。 ◎ However, if the computed direction were instead rtl, the computed value of margin-left is 3px, since margin-inline-end and margin-left share a computed value, and the declaration of margin-inline-end is after the declaration of margin-left.
算出d値を返す `CSSOM$r ~API( `getComputedStyle()^c など)は、 そのような~pairを成す各~個々の~propに対しては,同じ値を返すモノトスル。 ◎ [CSSOM] APIs that return computed values (such as getComputedStyle()) must return the same value for each individual property in such a pair.
注記: 【親ではなく,】 要素の自前の`書字~mode$に依存して,`~flow相対$な各~propを`物理的$な等価物に対応付けることで、 ~cascade法の計算は単純になり,作者が素直に選り分けれるような~modelを与える。 しかしながら、 多くの事例で問題になり得る — 例えば、 この論点を見よ。 作者は、[ 要素の`書字~mode$を親から変更するときに,対応付けの正しい挙動を得る ]ためには, 要素を入子にして利用する必要もあり得る。 ◎ Note: Depending on the element’s own writing mode for mapping every flow-relative property to its physical equivalent simplifies the cascading calculations and gives a straightforward model for authors to reason about. However, it is problematic in many cases, see for example this discussion. Authors may need to use nested elements to get the correct mapping behavior when changing an element’s writing mode from its parent.
各~propは、 親の対応する~propから継承する。 例えば、 `ltr$v ~box【 `direction$p が `ltr^v にされた~box】の`行内-始端$~marginは,~boxの右端~marginになるが、 この~boxの `margin-inline-start$p は,親の `margin-inline-start^p を継承することになる — 親は `rtl$v で,その `margin-inline-start^p は左端~marginになるとしても。 ◎ Inheritance of each property is from its corresponding property on the parent. For example, although the inline-start margin of anrtl box is its right margin, margin-inline-start on this box will inherit the margin-inline-start of an ltr parent even though that happens to be the parent’s left margin.
他が指定されない限り,[
論理-, 物理-
]両~下位propを包摂する`略式~prop$( `all$p など)は、
【それら下位prop用の値のうち】物理-下位prop用の値を最後に設定する。
例えば,
`all^p: `inherit^v
は `margin$p の下位propすべてを `inherit$v に設定するが、
物理-下位propは最後に設定されるので,
子の各~marginは親の対応する物理-下位propから継承することになる。
◎
Unless otherwise specified, shorthand properties that encompass both logical and physical longhands (such as the all shorthand) set their physical longhands last. For example, all: inherit will set all of the margin properties to inherit, but since the physical longhands are set last, the child’s margins will inherit from their physical counterparts in the parent.
【 “最後” とは、 次を意味するであろう: ~cascade法の目的においては、 略式~propの宣言を一連の下位prop宣言に展開したとするとき, それらの中で`最後@~CASCADE#cascade-order$に宣言されたものと扱われる。 】
4.1. 論理-縦幅, 論理-横幅: `[{min|max}-]{block|inline}-size^p ~prop
◎名 `block-size@p,`inline-size@p ◎値 `width$tp ◎初 `auto^v ◎適 `height$p / `width$p と同じ ◎ Same as height and width ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する[ `height$p / `width$p ]と同じ ◎ Same as height, width ◎順 文法に従う ◎ア 算出d値の型による ◎論 `size^p ◎表終
これらの各~propは[ `height$p / `width$p ]~propに対応する。 その対応付けは、 要素の `writing-mode$p に依存する。 ◎ These properties correspond to the height and width properties. The mapping depends on the element’s writing-mode.
◎名 `min-block-size@p,`min-inline-size@p ◎値 `min-width$tp ◎初 `0^v ◎適 `height$p / `width$p と同じ ◎ same as height and width ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する[ `min-height$p / `min-width$p ]と同じ ◎ Same as min-height, min-width ◎順 文法に従う ◎ア 算出d値の型による ◎論 `min-size^p ◎表終
これらの各~propは[ `min-height$p / `min-width$p ]~propに対応する。 その対応付けは、 要素の `writing-mode$p に依存する。 ◎ These properties correspond to the min-height and min-width properties. The mapping depends on the element’s writing-mode.
◎名 `max-block-size@p,`max-inline-size@p ◎値 `max-width$tp ◎初 `none^v ◎適 `height$p / `width$p と同じ ◎ same as height and width ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する[ `max-height$p / `max-width$p ]と同じ ◎ Same as max-height, max-width ◎順 文法に従う ◎ア 算出d値の型による ◎論 `max-size^p ◎表終
これらの各~propは[ `max-height$p / `max-width$p ]~propに対応する。 その対応付けは、 要素の `writing-mode$p に依存する。 ◎ These properties correspond to the max-height and max-width properties. The mapping depends on the element’s writing-mode.
4.2. ~flow相対な~margin: `margin-{block|inline}[-{start|end}]^p (略式)~prop
◎名 `margin-block-start@p,`margin-block-end@p,
`margin-inline-start@p,
`margin-inline-end@p ◎値 `margin-top$tp ◎初 `0^v ◎適 `margin-top$p と同じ ◎ Same as margin-top ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する `margin-*^p ~propと同じ ◎ Same as corresponding margin-* properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `margin$p ◎表終
これらの各~propは[ `margin-top$p / `margin-bottom$p / `margin-left$p / `margin-right$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the margin-top, margin-bottom, margin-left, and margin-right properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `margin-block@p,`margin-inline@p ◎値 `margin-top$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `margin-block-start$p, `margin-block-end$p ], [ `margin-inline-start$p, `margin-inline-end$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の~styleを表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the margin-block-start & margin-block-end and margin-inline-start & margin-inline-end, respectively. The first value represents the start edge style, and the second value represents the end edge style. If only one value is given, it applies to both the start and end edges.
4.3. ~flow相対な~offset: `inset[-{block|inline}[-{start|end}]]^p (略式)~prop
`~inset~prop@ とは、 次に挙げる~propの総称である 【~insetとは、 “内方への~offset” を意味する】 ⇒ 物理-~prop[ `top$p, `left$p, `bottom$p, `right$p ]とそれらに対応する~flow相対~prop[ `inset-block-start$p, `inset-block-end$p, `inset-inline-start$p, `inset-inline-end$p ], および略式~prop[ `inset-block$p, `inset-inline$p, `inset$p ] ◎ The top, left, bottom, right physical properties, their inset-block-start, inset-block-end, inset-inline-start, inset-inline-end flow-relative correspondents, and the inset-block, inset-inline, and inset shorthands, are collectively known as the inset properties.
◎名 `inset-block-start@p,`inset-block-end@p,
`inset-inline-start@p,
`inset-inline-end@p ◎値 `top$tp ◎初 `auto^v ◎適 `有位置$な要素 ◎ positioned elements ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する[ `top$p / `right$p / `bottom$p / `left$p ]と同じ ◎ Same as corresponding top/right/bottom/left properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `inset$p ◎表終
これらの各~propは[ `top$p / `bottom$p / `left$p / `right$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the top, bottom, left, and right properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `inset-block@p,`inset-inline@p ◎値 `top$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `inset-block-start$p, `inset-block-end$p ], [ `inset-inline-start$p, `inset-inline-end$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の~styleを表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the inset-block-start & inset-block-end and inset-inline-start & inset-inline-end, respectively. The first value represents the start edge style, and the second value represents the end edge style. If only one value is given, it applies to both the start and end edges.
◎名 `inset@p ◎値 `top$tp{1,4} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終この`略式~prop$は、 その[ `top$p, `right$p, `bottom$p, `left$p ]~propを設定する。 一連の成分~値は、 これらの`下位prop$を`時計回りに設定する$。 【!値は、 `margin$p に対するときと同じににアテガわれる】 ◎ This shorthand property sets the top, right, bottom, and left properties. Values are assigned to its sub-properties as for margin.
4.4. ~flow相対な~padding: `padding-{block|inline}[-{start|end}]^p (略式)~prop
◎名 `padding-block-start@p,`padding-block-end@p,
`padding-inline-start@p,
`padding-inline-end@p ◎値 `padding-top$tp ◎初 `0^v ◎適 `padding-top$p ~propと同じ ◎ Same as padding-top ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する `padding-*^p ~propと同じ ◎ Same as corresponding padding-* properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `padding$p ◎表終
これらの各~propは[ `padding-top$p / `padding-bottom$p / `padding-left$p / `padding-right$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the padding-top, padding-bottom, padding-left, and padding-right properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `padding-block@p,`padding-inline@p ◎値 `padding-top$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `padding-block-start$p, `padding-block-end$p ], [ `padding-inline-start$p, `padding-inline-end$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の~styleを表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the padding-block-start & padding-block-end and padding-inline-start & padding-inline-end, respectively. The first value represents the start edge style, and the second value represents the end edge style. If only one value is given, it applies to both the start and end edges.
4.5. ~flow相対な~border
4.5.1. ~flow相対な~border幅: `border-{block|inline}[-{start|end}]-width^p (略式)~prop
◎名 `border-block-start-width@p,`border-block-end-width@p,
`border-inline-start-width@p,
`border-inline-end-width@p ◎値 `border-top-width$tp ◎初 `medium^v ◎適 `border-top-width$p と同じ ◎ Same as border-top-width ◎継 されない ◎百 受容しない ◎算 対応する `border-*-width^p ~propと同じ ◎ Same as corresponding border-*-width properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `border-width$p ◎表終
これらの各~propは[ `border-top-width$p / `border-bottom-width$p / `border-left-width$p / `border-right-width$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the border-top-width, border-bottom-width, border-left-width, and border-right-width properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `border-block-width@p,`border-inline-width@p ◎値 `border-top-width$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `border-block-start-width$p, `border-block-end-width$p ], [ `border-inline-start-width$p, `border-inline-end-width$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の幅(太さ)を表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the border-block-start-width & border-block-end-width and border-inline-start-width & border-inline-end-width, respectively. The first value represents the start edge width, and the second value represents the end edge width. If only one value is given, it applies to both the start and end edges.
4.5.2. ~flow相対な~border~style: `border-{block|inline}[-{start|end}]-style^p (略式)~prop
◎名 `border-block-start-style@p,`border-block-end-style@p,
`border-inline-start-style@p,
`border-inline-end-style@p ◎値 `border-top-style$tp ◎初 `none^v ◎適 `border-top-style$p と同じ ◎ Same as border-top-style ◎継 されない ◎百 受容しない ◎算 対応する `border-*-style^p ~propと同じ ◎ Same as corresponding border-*-style properties ◎順 文法に従う ◎ア 離散的 ◎論 `border-style$p ◎表終
これらの各~propは[ `border-top-style$p / `border-bottom-style$p / `border-left-style$p / `border-right-style$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the border-top-style, border-bottom-style, border-left-style, and border-right-style properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `border-block-style@p,`border-inline-style@p ◎値 `border-top-style$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `border-block-start-style$p, `border-block-end-style$p ], [ `border-inline-start-style$p, `border-inline-end-style$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の~styleを表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the border-block-start-style & border-block-end-style and border-inline-start-style & border-inline-end-style, respectively. The first value represents the start edge style, and the second value represents the end edge style. If only one value is given, it applies to both the start and end edges.
4.5.3. ~flow相対な~border色: `border-{block|inline}[-{start|end}]-color^p (略式)~prop
◎名 `border-block-start-color@p,`border-block-end-color@p,
`border-inline-start-color@p,
`border-inline-end-color@p ◎値 `border-top-color$tp ◎初 `currentcolor$v ◎適 `border-top-color$p と同じ ◎ Same as border-top-color ◎継 されない ◎百 受容しない ◎算 対応する `border-*-color^p ~propと同じ ◎ Same as corresponding border-*-color properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `border-color$p ◎表終
これらの各~propは[ `border-top-color$p / `border-bottom-color$p / `border-left-color$p / `border-right-color$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the border-top-color, border-bottom-color, border-left-color, and border-right-color properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `border-block-color@p,`border-inline-color@p ◎値 `border-top-color$tp{1,2} ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `border-block-start-color$p, `border-block-end-color$p ], [ `border-inline-start-color$p, `border-inline-end-color$p ]を設定する。 2 個の値は、 順に[ `始端$, `終端$ ]辺の色を表現する。 値が 1 個だけ与えられた場合、 それが 2 個目の値にも利用される。 ◎ These two shorthand properties set the border-block-start-color & border-block-end-color and border-inline-start-color & border-inline-end-color, respectively. The first value represents the start edge color, and the second value represents the end edge color. If only one value is given, it applies to both the start and end edges.
4.5.4. ~flow相対な~border略式~prop: `border-{block|inline}[-{start|end}]^p ~prop
◎名 `border-block-start@p,`border-block-end@p,
`border-inline-start@p,
`border-inline-end@p ◎値 `border-top-width$tp || `border-top-style$tp || `color$t ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これらの各~propは[ `border-top$p / `border-bottom$p / `border-left$p / `border-right$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ◎ These properties correspond to the border-top, border-bottom, border-left, and border-right properties. The mapping depends on the element’s writing-mode, direction, and text-orientation.
◎名 `border-block@p,`border-inline@p ◎値 `border-block-start$tp ◎初 個々の~propを見よ ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎ア 個々の~propを見よ ◎順 文法に従う ◎表終
これら 2 つの`略式~prop$は、 順に,[ `border-block-start$p, `border-block-end$p ], [ `border-inline-start$p, `border-inline-end$p ]を同じ~styleに設定する。 ◎ These two shorthand properties set the border-block-start & border-block-end or border-inline-start & border-inline-end, respectively, both to the same style.
4.6. ~flow相対な隅の丸め: `border-{start|end}-{start|end}-radius^p ~prop
◎名 `border-start-start-radius@p,`border-start-end-radius@p,
`border-end-start-radius@p,
`border-end-end-radius@p ◎値 `border-top-left-radius$tp ◎初 `border-top-left-radius$p と同じ ◎ Same as border-top-left-radius ◎適 `border-top-left-radius$p と同じ ◎ Same as border-top-left-radius ◎継 されない ◎百 対応する物理-~propに対するときと同じ ◎ As for the corresponding physical property ◎算 対応する `border-*-radius^p ~propと同じ ◎ Same as corresponding physical border-*-radius properties ◎順 文法に従う ◎ア 算出d値の型による ◎論 `border-radius$p ◎表終
これらの各~propは[ `border-top-left-radius$p / `border-bottom-left-radius$p / `border-top-right-radius$p / `border-bottom-right-radius$p ]~propに対応する。 その対応付けは、 要素の[ `writing-mode$p, `direction$p, `text-orientation$p ]に依存する。 ~prop名を成す 1 個目の[ `start^css / `end^css ]は、 塊-軸の[ 始端/終端 ]どちら側かを与え、 2 個目のそれは,行内-軸のどちら側かを与える(すなわち, `border-<block>-<inline>-radius^p として~pattern化されている)。 ◎ These properties correspond to the border-top-left-radius, border-bottom-left-radius, border-top-right-radius, and border-bottom-right-radius properties. The mapping depends on the element’s writing-mode, direction, and text-orientation, with the first start/end giving the block axis side, and the second the inline-axis side (i.e. patterned as 'border-block-inline-radius').
4.7. 4 方向の略式~prop: `margin^p, `padding^p, `border-width^p, `border-style^p, `border-color^p 略式~prop
[ ~margin / ~padding / ~border ]用の略式~propは、 既定では,その各 物理的な下位prop用の値を設定するが、 作者は,~prop値の始めの所に `logical@v ~keyword値を指定して, 値を~flow相対な~propに対応付けるように指示できる。 ◎ The shorthand properties for margin, padding, and border set values for physical properties by default. But authors can specify the logical keyword at the beginning of the property value to indicate that the values map to the flow-relative properties instead of the physical ones.
この特能~用に提案された構文は, `論の最中@https://github.com/w3c/csswg-drafts/issues/1282$にあり、 ここに述べたものから,ほぼ~~確実に変更される。 この節は、 この草案~内にあり続ける — 代替になる論を促すため/ 影響される~propを文書化するため/ 最終的に選ばれる構文上の切替法が何であれ,その解釈に予期される影響iを指定するため。 ◎ The proposed syntax for this feature is under discussion and is almost guaranteed to change from what is described here. This section remains in the draft to promote discussion of alternatives, to document the affected properties, and to specify the expected impact on the interpretation of whatever syntactic switch is ultimately chosen.
次に挙げる略式~propは、 `logical$v ~keywordを受容する ⇒# `inset$p, `margin$p, `padding$p, `border-width$p, `border-style$p, `border-color$p, `scroll-padding$p, `scroll-margin$p ◎ The following [CSS2] shorthand properties accept the logical keyword: • inset • margin • padding • border-width • border-style • border-color • scroll-padding • scroll-margin
これらの~prop用の構文は、 ~~元の構文を次で表すなら: ◎ The syntax for these properties is effectively changed by replacing
`value-type^t{1,4}
それを,次のように~~拡張したものになる: ◎ with
`logical$v? `value-type^t{1,4}
`logical$v ~keywordが在るときの,後続する 1 〜 4 個の値は、 次に従って,~flow相対な下位propたちにアテガわれる: ◎ When the logical keyword is present in the value, the values that follow are assigned to its flow-relative longhands as follows:
- [ 2 個目/ 3 個目 ]の値が無い場合、 1 個目と同じ値とみなす。
- 4 個目の値が無い場合、 2 個目と同じ値とみなす。
- 4 個の値を順に[ `*-block-start^p, `*-inline-start^p, `*-block-end^p, `*-inline-end^p ]にアテガう。
次の例の 2 つの規則は等価になる: ◎ In the following example, the two rules are equivalent:
blockquote { margin: logical 1em 2em 3em 4em; } blockquote { margin-block-start: 1em; margin-inline-start: 2em; margin-block-end: 3em; margin-inline-end: 4em; }
謝辞
Cameron McCormack, David Baron, Oriol Brufau, Shinyu Murakami, Tab Atkins
変更点
- `以前の作業草案@~TR/2018/WD-css-logical-1-20180827/$ からの変更点: ◎ Changes since the previous Working Draft include:
- 諸々の細かな明確化。 ◎ Miscellaneous minor clarifications
- `2017年 5月 18日 最初の公な作業草案@~TR/2017/WD-css-logical-1-20170518/$ までの,それ以前の編集者草案からの変更点: ◎ Changes between the earlier Editors Drafts and the 18 May 2017 First Public Working Draft include:
- すべての~propは、 親ではなく要素~自身に指定された`書字~mode$を利用して,~cascadeするようにした。 ◎ Making all properties cascade using the writing mode specified on the element, not on its parent.
- `margin$p に類する略式~propの中での下位prop値の順序を, `inline-start^v が `inline-end^v より前になるようにした。 ◎ Making the ordering of longhands within margin-like shorthands put inline-start before inline-end.
- ~margin/~border/~padding用に[ `*-inline^p, `*-block^p ]略式~形を追加した。 ◎ Adding the *-inline and *-block shorthand forms for margins/borders/padding.
- 各種 `offset-*^p ~propを `inset-*^p に改称した上で、 論点となる課題を付与した。 ◎ Renaming the offset-* properties to inset-* and marking an issue for discussion.
- 序論~節を追加した。 ◎ Adding an Introduction section.
- 各種用語を CSS Writing Modes の現在のそれらに更新した。 ◎ Updating to current terminology of CSS Writing Modes.
- 諸々の注釈文を整理した。 ◎ Miscellaneous prose cleanup.
~privacyの考慮点
この仕様に対し報告された,新たな~privacyの考慮点は、無い。 ◎ No new privacy considerations have been reported on this specification.
~securityの考慮点
この仕様に対し報告された,新たな~privacyの考慮点は、無い。 ◎ No new security considerations have been reported on this specification.