1. 序論
◎非規範的~CSS~layout~algoは、 既定では,互いに重合しないよう,~boxたちを~sizeして位置する。 ◎ The CSS layout algorithms, by default, size and position boxes in relation to each other so that nothing overlaps.
この仕様は、 この前提に違反する いくつかの仕方を定義する — 必要なときは要素を周辺に移動して,他の内容と重合し得るような: ◎ This specification defines several ways to violate these assumptions when needed, moving elements around in ways that can make them overlap other content:
- `相対~位置決め$は、 ~boxを~lay-outされた所在から相対的に,視覚的にズラす。 ◎ Relative positioning, which visually shifts a box relative to its laid-out location.
- `張付き位置決め$は、 ~boxを~lay-outされた所在から相対的に — ~scroll可能な先祖が~scrollして~boxが視界から外れるとき,~boxを可視に保つように — 視覚的にズラす。 ◎ Sticky positioning, which visually shifts a box relative to its laid-out location in order to keep it visible when a scrollable ancestor would otherwise scroll it out of sight.
- `絶対~位置決め$は、 通常の~layoutをまるごと無視する。 それは、 ~boxを`~flow外$に引き抜いて,他の内容にかまうことなく,~boxをその`包含塊$に相対的に位置する。 ◎ Absolute positioning, which ignores normal layout entirely, pulling the element out of flow and positioning it relative to its containing block with no regard for other content.
- `固定d位置決め$は、 ~boxを絶対的に位置して,~boxが常に可視になるよう~boxを[ 表示域/~page~frame ]に固着させる。 ◎ Fixed positioning, which absolutely positions the box and affixes it to the viewport or page frame so that it is always visible.
これらの`位置決め~scheme$は、[ `position$p ~prop, 各種`~inset~prop$ ]により制御され, 強力だが誤利用し易くもある。 これらは,[ 標準な~layout規則では達成できない,数多くの興味を引く有用な~layout ]を許容するが、 適切に~careしないと,~pageの内容は[ ごちゃ混ぜに重合するよう~lay-outされ,利用-不能になる ]。 ◎ These positioning schemes, controlled by the position property and the inset properties, are powerful but easy to misuse. With appropriate care, they allow many interesting and useful layouts that couldn’t otherwise be achieved with standard layout rules; without, they allow a page to be laid out in an unusable overlapping jumble of content.
1.1. ~module間の相互作用
この~moduleは、 以下に挙げる `CSS2$r の各節にて定義された`位置決め~scheme$の特能を置換して, 拡張する。 ◎ This module replaces and extends the positioning scheme features defined in [CSS2] sections:
- `§ 包含塊@~CSS2J#containing-block-0$
- `§ 位置決め~scheme@~CSS2J#positioning-scheme$
- `§ 相対~位置決め@~CSS2J#relative-positioning$
- `§ 絶対~位置決め@~CSS2J#absolute-positioning$
- § `display^p, `position^p, `float^p の関係性
- `§ 通常~flow, 浮動体, 絶対~位置決めの比較@~CSS2J#comparison$
- `§ “包含塊” の定義@~CSS2J#containing-block-details$
- `§ 絶対的に位置された置換されない要素@~CSS2J#abs-non-replaced-width$
- `§ 絶対的に位置された置換d要素@~CSS2J#abs-replaced-width$
- `§ 絶対的に位置された置換されない要素@~CSS2J#abs-non-replaced-height$
- `§ 絶対的に位置された置換d要素@~CSS2J#abs-replaced-height$
この~moduleはまた、 `CSS-LOGICAL-1$r `§ ~flow相対な~offset@~CSSLOGICAL#position-properties$【!#inset-properties】 における各種 `inset-*^p ~propの定義を置換して,それに取って代わる。 ◎ It also replaces and supersedes the inset* property definitions in [CSS-LOGICAL-1] (CSS Logical Properties 1 § 4.3 Flow-relative Offsets: the inset-block-start, inset-block-end, inset-inline-start, inset-inline-end properties and inset-block, inset-inline, and inset shorthands).
1.2. 値~定義
【 この節の内容は `~CSS日本語訳 共通~page@~CSScommon#values$に移譲。 】
2. 位置決め~schemeの~~選択 : `position^p ~prop
◎名 `position@p ◎値 `static$v | `relative$v | `absolute$v | `sticky$v | `fixed$v ◎初 `static^v ◎適 すべての要素 — ただし, `table-column-group^v, `table-column^v は除く。 ◎ all elements except table-column-group and table-column ◎継 されない ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終`position$p ~propは、 どの `位置決め~scheme@ ( `positioning scheme^en )を利用して,~boxの位置を計算するかを決定する。 `static$v 以外の値は、 ~boxを `有位置な~box@ ( `positioned box^en )にして,~boxの子孫~用の `絶対~位置決め包含塊@ を確立させる。 各種 値の意味は: ◎ The position property determines which of the positioning schemes is used to calculate the position of a box. Values other than static make the box a positioned box, and cause it to establish an absolute positioning containing block for its descendants. Values have the following meanings:
- `static@v
- ~boxは`有位置な~box$にはならず、 その親`整形~文脈$の規則に則って~lay-outされる。 `~inset~prop$は適用されない。 ◎ The box is not a positioned box, and is laid out according to the rules of its parent formatting context. The inset properties do not apply.
- `relative@v
- ~boxは、 `static$v のときと同じに~lay-outされた上で,結果の位置から~offsetされる。 この~offset法は、 純粋に視覚的な効果であり,[ ~boxの子孫でない他の~box ]の~sizeや位置には影響しない — ~boxの先祖の`~scroll可能な~overflow区画$が増大することを除けば。 ◎ The box is laid out as for static, then offset from the resulting position. This offsetting is a purely visual effect, and, unless otherwise specified, does not affect the size or position of any other non-descendant box except insofar as it increases the scrollable overflow area of its ancestors.\
- この`位置決め~scheme$は、 `相対~位置決め@ ( `relative positioning^en )と呼ばれる。 ◎ This positioning scheme is called relative positioning.
- `sticky@v
- 次を除き, `relative$v に一致する ⇒ その~offsetは、 `最も近い~scrollport$(を当の~boxの`~inset~prop$で改変した結果)を基準に自動的に調整される — それは、 利用者が~scrollするに伴い, ~boxを その`包含塊$の中で~view内に保つよう試行する。 ただし,所与の軸に対応する両`~inset~prop$の値とも `auto$v になる場合、 その軸については調整されない。 ◎ Identical to relative, except that its offsets are automatically adjusted in reference to the nearest ancestor scroll container’s scrollport (as modified by the inset properties) in whichever axes the inset properties are not both auto, to try to keep the box in view within its containing block as the user scrolls.\
- この`位置決め~scheme$は、 `張付き位置決め@ ( `sticky positioning^en )と呼ばれる。 ◎ This positioning scheme is called sticky positioning.
- `absolute@v
- ~boxは、 `~flow外$に取り除かれる — ~boxは、 その[ 同胞/先祖 ]の~sizeや位置に影響iしなくなり,親の`整形~文脈$にも関与しなくなる。 ◎ The box is taken out of flow such that it has no impact on the size or position of its siblings and ancestors, and does not participate in its parent’s formatting context.
-
代わりに,~boxは、 もっぱら,[ ~boxの`絶対~位置決め包含塊$を~boxの`~inset~prop$により改変した結果 ]を基準に位置され, ~sizeされる — `§ 絶対~位置決め~layout~model$を見よ。 その結果,~boxは: ◎ Instead, the box is positioned and sized solely in reference to its absolute positioning containing block, as modified by the box’s inset properties, see § 4 Absolute Positioning Layout Model.\
- `~flow内$にある内容や他の`絶対的に位置され$た要素と重合し得る。 ◎ It can overlap in-flow content or other absolutely positioned elements, and\
- その【!is】`包含塊$を【!generate】確立した~boxの,`~scroll可能な~overflow区画$に含まれる。 ◎ is included in the scrollable overflow area of the box that generates is containing block.\
- この`位置決め~scheme$は、 `絶対~位置決め@ ( `absolute positioning^en )と呼ばれる。 【 `fixed$v にて述べるように、用語としてのこの語は,`固定d位置決め$も包摂していることに注意。】 ◎ This positioning scheme is called absolute positioning.
- `fixed@v
-
次を除いて `absolute$v と同じになる: ◎ Same as absolute, except\
- ~boxは`固定d位置決め包含塊$に相対的に位置され, ~sizeされる (通例的には、[ `連続的~媒体$においては`表示域$/`~paged媒体$においては`~page区画$ ]内で)。 ◎ the box is positioned and sized relative to a fixed positioning containing block (usually the viewport in continuous media, or the page area in paged media).\
-
~boxの位置は、 この矩形を基準に固定される: ◎ The box’s position is fixed with respect to this reference rectangle:\
- `表示域$に付されたときは、 文書が~scrollされても移動しない。 ◎ when attached to the viewport it does not move when the document is scrolled,\
- `~page区画$に付されたときは、 文書が~page割りされるとき,~boxは~pageごとに~~複製される。 ◎ and when attached to the page area is replicated on every page when the document is paginated.
- この`位置決め~scheme$は、 `固定d位置決め@ ( `fixed positioning^en )と呼ばれ,`絶対~位置決め$の一種と見なされる。 ◎ This positioning scheme is called fixed positioning and is considered a subset of absolute positioning.
-
作者は、 `fixed$v を媒体~依存な仕方で指定したいと望むこともあろう。 一例として,作者は、 ~screen上では~boxを`表示域$の上端に~~留めておきたいが, 印刷される各~page上では そうしたくないと求めることもあろう。 この 2 つの指定は、 次のように `media$at 規則を利用すれば分離できる: ◎ Authors may wish to specify fixed in a media-dependent way. For instance, an author may want a box to remain at the top of the viewport on the screen, but not at the top of each printed page. The two specifications may be separated by using an '@media' rule, as in:
@media screen { h1#first { position: fixed } } @media print { h1#first { position: static } }
`position$p 用の値[ `absolute$v / `fixed$v ]は ⇒# ~boxを`塊~化$させる。 `float$p の算出d値を `none^v にする。 ~boxが`独立な整形~文脈を確立する$よう強制する。 ◎ A position value of absolute or fixed blockifies the box, causes float to compute to none, and forces the box to establish an independent formatting context.
2.1. 有位置な~boxの包含塊
[ `static$v / `relative$v / `sticky$v ]`~box$用の`包含塊$は、 ~boxが関与する`整形~文脈$により定義される。 [ `absolute$v / `fixed$v ]`~box$用の`包含塊$は、 次に従って定義される: ◎ The containing block of a static, relative, or sticky box is as defined by its formatting context. For fixed and absolute boxes, it is defined as follows:
- `absolute$v の場合 ◎ If the box has position: absolute:
-
~boxの`包含塊$は、 先祖に`絶対~位置決め包含塊$を確立する~boxが: ◎ The containing block is established by\
-
在るならば、 それらのうち~boxに最も近い先祖 %先祖 に応じて,次の仕方で確立される: ◎ the nearest ancestor box that establishes an absolute positioning containing block, in the following way:
- %先祖 は`行内~box$でない場合 ⇒ %先祖 の`~padding辺$により形成される — 他が指定されない限り (例えば、 `CSS Grid Layout^cite `§ 包含塊が格子~容器により生成されているとき@~CSSGRID#abspos-items$ を見よ)。 ◎ If the ancestor is not an inline box, • the containing block is formed by the padding edge of the ancestor, unless otherwise specified (for example, see CSS Grid Layout 1 § 9.1 With a Grid Container as Containing Block).
-
%先祖 は`行内~box$である場合、 各~軸において,次に挙げる辺により形成される矩形になる:
- %先祖 を成す最初の`~box断片$の最も`始端$に来る`内容~辺$ — 同じ行l上に複数個の断片がある場合 (例:`双向性~並替ng@~CSSWM#bidi-box-model$に因り)、 最も`始端$に来るものが,最初の断片とされる。
- %先祖 を成す各`~box断片$の`内容~辺$のうち最も`終端$に来る辺
ここで、 始端, 終端は %先祖 の~boxの`書字~mode$に基づくとする。
◎ If the ancestor is an inline box, using the writing mode of that box, • the containing block is formed by forming a rectangle from the start-most content edges (in both axes) of the first box fragment of the ancestor, and the end-most content edges of the end-most box fragment(s) of the ancestor in each axis. If there are multiple fragments on the same line (e.g. due to bidi reordering), take the start-most fragment as the first fragment.~boxが複数~行lに断片化されるとき、 何が矩形を形成するために有用な包含塊になるか? `8284$issue ◎ What is a useful containing block to form when the box is fragmented across multiple lines? [Issue #8284]
注記: 断片化された`行内~box$により形成される`包含塊$は、 `CSS2$r には定義されていない。 ◎ Note: The containing block formed by a fragmented inline box was undefined in [CSS2].
- 無いならば、 `初期~包含塊$になる。 ◎ If no ancestor establishes one, the absolute positioning containing block is the initial containing block.
-
- 【 上述のように決定される`包含塊$は, “~boxの`絶対~位置決め包含塊$” とも称される — この句は、 ~boxがそれを確立したことではなく, ~boxは`絶対的に位置され$ている(かつ`固定的に位置され$ていない)前提を含意する。 】
- 注記: 要素に`絶対~位置決め包含塊$を確立させる~propには、 `position$p, `transform$p, `will-change$p, `contain$p, … などがある。 ◎ Note: Properties that can cause a box to establish an absolute positioning containing block include position, transform, will-change, contain…
- `fixed$v の場合 ◎ If the box has position: fixed:
-
~boxの`包含塊$は、 先祖に `固定d位置決め包含塊@ を確立する~boxが: ◎ The containing block is established by\
-
在るならば、 それらのうち最も近い先祖により — `絶対~位置決め包含塊$のときと同じ仕方で — 確立される。 ◎ the nearest ancestor box that establishes an fixed positioning containing block, with the bounds of the containing block determined identically to the absolute positioning containing block.
注記: 要素に`固定d位置決め包含塊$を確立させる~propには、 `transform$p, `will-change$p, `contain$p, … などがある。 ◎ Note: Properties that can cause a box to establish a fixed positioning containing block include transform, will-change, contain…
-
無いならば: ◎ If no ancestor establishes one, the fixed positioning containing block is:
-
`連続的~媒体$においては、 `~layout表示域$になる (その~sizeは、 `動的な表示域~size$に合致する)。 その結果、 `固定的に位置され$た~boxは,文書が~scrollされても移動しない。 ◎ in continuous media, the layout viewport (whose size matches the dynamic viewport size); as a result, fixed boxes do not move when the document is scrolled.
注記: この点に関しては、 `固定的な背景~画像@~CSSBG#background-attachment$ ( `background-attachment$p が `fixed^v にされたそれ)と同様になる。 ◎ Note: In this respect, they are similar to fixed background images (background-attachment: fixed).
- `~paged媒体$においては、 各~pageの`~page区画$になる。 その結果,`固定的に位置され$た`~box$は、 ~pageごとに~~複製される (例えば,印刷~previewのように,~pageが`表示域$を通して見える【呈示されている】場合でも、 ~page~boxのみを基準に固定される)。 ◎ in paged media, the page area of each page; fixed positioned boxes are thus replicated on every page. (They are fixed with respect to the page box only, and are not affected by being seen through a viewport; as in the case of print preview, for example.)
注記: その結果,`固定d位置決め$においては、[ `~layout表示域$/`~page区画$ ]の外側まで拡張する部分は,[ そこへは~scrollし得なくなる/印刷されなくなる ]。 ◎ Note: As a result, parts of fixed-positioned boxes that extend outside the layout viewport/page area cannot be scrolled to and will not print.
-
-
- 【 上述のように決定される`包含塊$は, “~boxの`固定d位置決め包含塊$” とも称される — この句は、 ~boxがそれを確立したことではなく,~boxは`固定的に位置され$ている前提を含意する。 】
位置決めが無ければ、 次の文書における各~要素の包含塊は: ◎ With no positioning, the containing blocks (C.B.) in the following document:
<!DOCTYPE html> <html> <head> <title>包含塊の~~説明</title> </head> <body id="body"> <div id="div1"> <p id="p1">最初の段落の~text...</p> <p id="p2">これは <em id="em1"> <strong id="strong1">2 番目の</strong> 段落の中の~text</em></p> </div> </body> </html>
次に従って確立される: ◎ are established as follows:
~boxを生成する要素 ◎ For box generated by | 要素の包含塊を確立するもの ◎ C.B. is established by |
---|---|
`html^e | 初期~包含塊(~UAに依存する) ◎ initial C.B. (UA-dependent) |
`body^v | `html^e |
`div1^v | `body^v |
`p1^v | `div1^v |
`p2^v | `div1^v |
`em1^v | `p2^v |
`strong1^v | `p2^v |
初期~包含塊は、 ~UAに依存する。
"`div1^v" を次のように位置した場合: ◎ If we position "div1":
#div1 { position: absolute; left: 50px; top: 50px }
その包含塊は、 もはや `body^v ではなく,`初期~包含塊$になる (他に有位置な先祖~boxは無いので)。 ◎ its containing block is no longer "body"; it becomes the initial containing block (since there are no other positioned ancestor boxes).
同様に, `em1^v も次のように位置した場合: ◎ If we position "em1" as well:
#div1 { position: absolute; left: 50px; top: 50px } #em1 { position: absolute; left: 100px; top: 100px }
包含塊の表tは: ◎ the table of containing blocks becomes:
~boxを生成する要素 ◎ For box generated by | 包含塊を確立するもの ◎ C.B. is established by |
---|---|
`html^e | 初期~包含塊 ◎ initial C.B. |
`body^v | `html^e |
`div1^v | 初期~包含塊 ◎ initial C.B. |
`p1^v | `div1^v |
`p2^v | `div1^v |
`em1^v | `div1^v |
`strong1^v | `em1^v |
`em1^v の位置決めにより、 その包含塊は最も近い有位置な先祖~box — すなわち, `div1^v が生成する~box — になる。 ◎ By positioning "em1", its containing block becomes the nearest positioned ancestor box (i.e., that generated by "div1").
2.1.1. 包含塊に対する更なる調整-法
`絶対的に位置され$た~box %~box の`包含塊$が実質的に占める矩形 %矩形 は、 いくつかの特能により,改められ得る。 これらは、 次に挙げる順序で適用される: ◎ Some features can alter the effective containing block rectangle of absolutely positioned boxes. These are applied in the following order, with earlier steps modifying the containing block that later steps see:
- %~box の`包含塊$が ある`格子~容器$により生成される場合、 %矩形 は[ %~box の`格子~配置~prop$により指定される`格子~区画$ ]に変更される。 `CSS-GRID-1$r `§ 包含塊が格子~容器により生成されているとき@~CSSGRID#abspos-items$ を見よ。 ◎ The grid-placement properties on an absolutely positioned box whose containing block is generated by a grid container can change the containing block rectangle to a specified grid area. See CSS Grid Layout 1 § 9.1 With a Grid Container as Containing Block.
- %矩形 は[ `position-area$p / `position-try$p ]~propにより指定される`位置~区画$に変更され得る。 `CSS-ANCHOR-POSITION-1$r ◎ The position-area and position-try properties can change the containing block rectangle to a specified area of an position-area grid. See CSS Anchor Positioning § 3.1 The position-area Property.
これらの効果を適用する前における`包含塊$は、 %~box の `元の包含塊@ と称される。 ◎ The element’s original containing block is its containing block before applying any of these effects.
2.2. 塗ng順序と積層~文脈
`z-index$p ~propは、 どの`有位置な~box$にも適用される。 `z-index$p が `auto@~CSS2J#valdef-z-index-auto$v のときは、 `有位置な~box$のうち: ◎ The z-index property applies to all positioned boxes. When z-index is auto:
- [ `固定的に位置され$た/`張付きに位置され$た ]ものは、 `積層~文脈$を形成する。 ◎ Fixed and sticky positioned boxes nonetheless form a stacking context.
- [ `相対的に位置され$た/`絶対的に位置され$た ]ものは、 `積層~文脈$を形成しない。 が、 新たな`積層~文脈$を生成したかのように塗られる — その子孫のうち[ `有位置$なもの/`積層~文脈$を形成するもの ]は[ 新たな`積層~文脈$の一部を成さず,現在の`積層~文脈$の一部を成す ]ことを除いて。 ◎ Relative and absolute positioned boxes do not form a stacking context, but are painted as if those elements did generated new stacking contexts, except that their positioned descendants and any would-be child stacking contexts take part in the current stacking context.
注記: `根~要素$は、 常に`積層~文脈$を形成する — `z-index$p に関わらず。 ◎ Note: The root element always forms a stacking context regardless.
[ `z-index$p, `積層~文脈$, 塗ng順序 ]についての詳細は、 `CSS2$r [ `§ 多層化された呈示@~CSS2J#layers$, `§ 積層~文脈についての詳しい記述@~CSS22/zindex.html$ ]を見よ。 ◎ See CSS2 § 9.9 Layered presentation and Appendix E: Elaborate description of Stacking Contexts for details about z-index, stacking contexts, and painting order.
3. 位置決め座標
`有位置な~box$の精確な所在は、 次に挙げる各種 `~inset~prop@ により制御される:
- `物理的$な`~inset~prop$ ⇒# `top$p, `right$p, `bottom$p, `left$p
- `~flow相対$な`~inset~prop$ ⇒# `inset-block-start$p, `inset-inline-start$p, `inset-block-end$p, `inset-inline-end$p
- 前項に挙げた~propの`略式~prop$ ⇒# `inset-block$p, `inset-inline$p, `inset$p
これらの`~inset~prop$の解釈は、 `位置決め~scheme$により変わる: ◎ The interpretation of these inset properties varies by positioning scheme:
- `絶対~位置決め$ ⇒ 包含塊からの~insetを表現する。 ◎ for absolute positioning, they represent insets from the containing block.
- `相対~位置決め$ ⇒ ~boxの元の~margin辺からの~insetを表現する。 ◎ for relative positioning, they represent insets from the box’s original margin edge.
- `張付き位置決め$ ⇒ `最も近い~scrollport$【!`~scrollport$】の辺からの~insetを表現する。 ◎ for sticky positioning, they represent insets from the scrollport edge.
3.1. ~box~inset: `top^p, `right^p, `bottom^p, `left^p, `inset-block-start^p, `inset-inline-start^p, `inset-block-end^p, `inset-inline-end^p ~prop
◎名 `top@p, `right@p, `bottom@p, `left@p, `inset-block-start@p, `inset-inline-start@p, `inset-block-end@p, `inset-inline-end@p ◎値 `auto$v | `length-percentage$t ◎初 `auto$v ◎適 `有位置$な要素 ◎継 されない ◎百 `包含塊$の~sizeを基準にする — 注釈文を見よ ◎ refer to size of containing block; see prose ◎算 ~keyword `auto$v / `length-percentage$t の算出d値 ◎順 文法に従う ◎ア 算出された値~型による ◎論 `inset$p ◎表終これらの`~inset~prop$は、 ~boxの対応している側からの “~inset” — 内方への~offset — を表現する(どの~propが上下左右どの側に対応するかは、 ~boxの自前の`書字~mode$に基づく — `CSS-WRITING-MODES-3$r `§ ~boxの抽象的な各種用語@~CSSWM#abstract-box$ を見よ)。 例えば, `top$p は、 上端~辺から下方への~insetを表現する。 `物理的$な~propと`~flow相対$な~propは、 `CSS-LOGICAL-1$r に定義されるように相互作用する。 各種 値の意味は: ◎ These inset properties represent an inward “inset” on the corresponding side of the box (with respect to the box’s own writing mode; see CSS Writing Modes 3 § 6 Abstract Box Terminology). For example, top represents a downward inset of the top edge. The physical and flow-relative properties interact as defined in [CSS-LOGICAL-1]. Values have the following meanings:
- `length$t
- ~insetは、 基準~辺からの固定的な距離になる。 ◎ The inset is a fixed distance from the reference edge.\
- 負な値も許容される。 ◎ Negative values are allowed.
- `percentage$t
- ~insetは、 対応する軸における`包含塊$の~size (例: `left$p / `right$p に対しては横幅, `top$p / `bottom$p に対しては縦幅) に相対的な百分率になる。 `張付きに位置され$た~box用の~insetは、 代わりに`最も近い~scrollport$【!関連な`~scrollport$】の~sizeに相対的になる。 ◎ The inset is a percentage relative to the containing block’s size in the corresponding axis (e.g. width for left or right, height for top and bottom). For sticky positioned boxes, the inset is instead relative to the relevant scrollport’s size.\
- 負な値も許容される。 ◎ Negative values are allowed.
- `auto@v
- 拘束されない~insetを表現する。 正確な意味は、 `位置決め~scheme$に依存する。 ◎ Represents an unconstrained inset; the exact meaning depends on the positioning scheme.
注記: `固定的に位置され$た要素~用の~insetに大き過ぎる値や負な値を利用すると、 要素は`表示域$の外側へ容易に移動され得る。 そうなった場合、 内容は,~scrollする その他の手段を通して到達できなくなる。 ◎ Note: For fixed positioned elements, using large values or negative values can easily move elements outside the viewport and make the contents unreachable through scrolling or other means.
3.2. ~box~inset略式~prop: `inset-block^p, `inset-inline^p, `inset^p ~prop
◎名 `inset-block@p, `inset-inline@p ◎値 `top$tp{1,2} ◎初 `auto$v ◎適 `有位置$な要素 ◎継 されない ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 文法に従う ◎ア 算出された値~型による ◎表終`inset-block$p ~propは[ `inset-block-start$p, `inset-block-end$p ]を, `inset-inline$p ~propは[ `inset-inline-start$p, `inset-inline-end$p ]を単独の宣言で設定するための`略式~prop$である。 2 個の成分~値は、 順に[ `始端$, `終端$ ]側を設定する。 2 個目の値が省略された場合の既定は、 1 個目の値と同じになる。 ◎ The inset-block and inset-inline properties are shorthand properties for setting inset-block-start + inset-block-end or inset-inline-start + inset-inline-end, respectively, in a single declaration. The first component value sets the start side, the second sets the end; if omitted, the second value defaults to the first.
◎名 `inset@p ◎値 `top$tp{1,4} ◎初 `auto$v ◎適 `有位置$な要素 ◎継 されない ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 文法に従う ◎ア 算出された値~型による ◎表終`inset$p ~propは、 すべての`~inset~prop$を単独の宣言で設定する`略式~prop$であり, 各~側を表現している下位propを`時計回りに設定する$ 【!exactly as the margin property does for its longhands】。 ◎ The inset property is a shorthand property that sets all of the inset properties in a single declaration, assigning values to the longhands representing each side exactly as the margin property does for its longhands.
注記: `inset$p ~prop値は、 既定では,対応する`物理的$な`下位prop$ — `top$p, `right$p, `bottom$p, `left$p — にアテガわれるが、 歴史的な理由から,これらには `inset-^p 接頭辞は無い。 この挙動は、 `margin$p など,他の “各~側に 4 個の値をアテガう” ~propに合致する。 ◎ By default, the inset property values are assigned to the corresponding physical longhand properties—top, right, bottom, and left—which for historical reasons do not have an inset- prefix. This matches the behavior of other "4 values assigned to sides" properties, such as margin.
このような~propを`~flow相対$な`下位prop$に解決するのを許容することは、 `CSS-LOGICAL-1$r にて論の最中にある。 ◎ Allowing properties such as this to resolve to the flow-relative longhands is under discussion in [CSS-LOGICAL-1].
たしかに、 `inset$p が どの `inset-*^p ~propにも展開されないのは, 軽く惑わすものになろうことは理解している。 ◎ Yes, we understand it’s a little confusing that inset doesn’t expand to any inset-* properties.
3.3. 相対~位置決め
`相対的に位置され$た~box %~box 用には、 `~inset~prop$は, %~box を — その~sizeは変更することなく — 対応する辺から内方へ移動する。 `left$p に対する【正な】値は, %~box を右へ移動させ、 `right$p に対する【正な】値は, %~box を左へ移動させる,等々。 %~box は,相対~位置決めにより[ 分割される/伸張される ]ことはないので、 所与の軸において互いに反対側の`~inset~prop$の`使用~値$は, 互いに反数になる(それらの和は 0 になる)ことが要求される — そのような 2 つの`~inset~prop$の`算出d値$が: ◎ For a relatively positioned box, the inset properties move the box inward from the respective edge, without changing its size. left moves the box to the right, right moves it to the left, etc. Since boxes are not split or stretched as a result of relative positioning opposing used values in a given axis must be negations of each other:
- どちらも `auto$v (`初期~値$)ならば ⇒ どちらも`使用~値$は 0 になる (すなわち,当の軸においては、 %~box は元の位置に居座る)。 ◎ If opposing inset properties in an axis both compute to auto (their initial values), their used values are zero (i.e., the boxes stay in their original position in that axis).
- 片方だけ `auto$v ならば ⇒ その方の`使用~値$が他方の算出d値の反数になる( %~box は指定された量だけズラされる)。 ◎ If only one is auto, its used value becomes the negation of the other, and the box is shifted by the specified amount.
- どちらも `auto$v でないならば ⇒ 位置は拘束され過ぎ — この場合、[ %~box の`包含塊$の`終端$と同じ側†における`~inset~prop$ ]の`算出d値$は無視され,その`使用~値$は[ もう片方の`~inset~prop$の使用~値 ]の反数になる。 († この終端は,`包含塊$の`書字~mode$に基づくので、 %~box の終端とは反対~側になる場合もあることに注意。) ◎ If neither is auto, the position is over-constrained; (with respect to the writing mode of its containing block) the computed end side value is ignored, and its used value becomes the negation of the start side.
次の 3 規則は等価であり、 どれも~boxを `1em^v だけ左へズラす: ◎ The following three rules are equivalent, and shift the box 1em to the left:
div.a8 { position: relative; direction: ltr; left: -1em; right: auto } div.a8 { position: relative; direction: ltr; left: auto; right: 1em } div.a8 { position: relative; direction: ltr; left: -1em; right: 5em }
[ `table-row-group$v / `table-header-group$v / `table-footer-group$v / `table-row$v ]`~box$に指定された~insetは、 ~boxのすべての内容に影響する — これには、 `~table~cell$のうち[ それが最初に~spanする~rowは,当の~boxに含まれるもの ]すべてが含まれるが, 他の`~table~cell$は含まれない。 ◎ If specified on a table-row-group, table-header-group, table-footer-group, or table-row box the shift affects all the contents of the box, including all table cells that originate in the affected row, but not those that don’t.
注記: `position$p は[ `table-column-group$v / `table-column$v ]~boxには適用されない — それらの~boxは、 `相対~位置決め$に影響されない。 ◎ Note: Since position does not apply to table-column-group or table-column boxes, they are not affected by relative positioning.
【 この例は、 この訳による追加。 】
閲覧中の~browserによる[ `table-row^v / `table-cell^v ]~boxに対する `relative$v の効果( 2 本目の~rowは右へ, 3 本目の~rowは左へズラされている):
この~cellが属する~rowは、 ズラされていない | 下へズラされた~cell — 3 本の~rowに~spanしていてるが,ズラされない~rowに属する | この~cellが属する~rowは、 ズラされていない |
この~cellは、 右へズラされる~rowに属する | 下へズラされた~cell — 2 本の~rowに~spanしているが,右へズラされる~rowに属する | |
この~cellは、 左へズラされる~rowに属する |
3.4. 張付き位置決め
`張付き位置決め$は、 次を除いて,`相対~位置決め$に類似する ⇒ 各~offsetは、 `最も近い~scrollport$を基準に,以下に従って自動的に計算される ◎ Sticky positioning is similar to relative positioning except the offsets are automatically calculated in reference to the nearest scrollport.
`張付きに位置され$た`~box$ %~box に対しては、 `~inset~prop$は,`最も近い~scrollport$の対応する辺からの~insetを表現する。 それは、 %~box の位置を拘束するために利用される `張付き~view矩形@ ( `sticky view rectangle^en )を定義する。 (この目的においては、 `auto$v 値は~inset 0 を表現する)。 所与の軸において,この結果の`張付き~view矩形$の~sizeが %~box の`~border~box$の~size未満になる場合、 当の軸における %~box の[ %~box の`包含塊$の`終端$と同じ側†にある辺 ]の実効~insetは,そうならなくなる所まで抑制される(場合によっては負になる)。 († この終端は,`包含塊$の`書字~mode$に基づくので、 %~box の終端とは反対~側になる場合もあることに注意。) ◎ For a sticky positioned box, the inset properties represent insets from the respective edges of the nearest scrollport, defining the sticky view rectangle used to constrain the box’s position. (For this purpose an auto value represents a zero inset.) If this results in a sticky view rectangle size in any axis less than the size of the border box of the sticky box in that axis, then the effective end-edge inset in the affected axis is reduced (possibly becoming negative) to bring the sticky view rectangle’s size up to the size of the border box in that axis (where end is interpreted relative to the writing mode of the containing block).
例えば,[ `最も近い~scrollport$の高さは `300px^v, `張付きに位置され$た~boxの`~border~box$の高さは `200px^v, ~boxの `top$p は `20px^v ]の場合、 `最も近い~scrollport$からの[ 上端~辺の~insetは `20px^v, 下端~辺の~insetは `0px^v ]になり,`張付き~view矩形$の高さとして `280px^v が得られる。 ◎ For example, if the nearest scrollport is 300px tall, the sticky box’s border box is 200px tall, and it has top: 20px, then the top-edge inset of the nearest scrollport is 20px, and the bottom-edge inset is 0px, yielding a sticky view rectangle that is 280px tall.
一方で,`最も近い~scrollport$の高さが `100px^v しかない場合、 下端~辺の実効~insetは, `-120px^v になり、 結果の`張付き~view矩形$は,`張付きに位置され$た~boxの`~margin~box$【`~border~box$?】を全部的に包含するまでに十分な高さ `200px^v になる。 ◎ But if the nearest scrollport were only 100px tall, then the effective bottom-edge inset becomes -120px, resulting in a sticky view rectangle that’s 200px tall, enough to fully contain the margin box of the sticky box.
%~box の各~側に対し:[ その側に対応する %~box の`~inset~prop$は `auto$v でない ]かつ[ その側に対応する %~box の`~border辺$は`張付き~view矩形$の対応する辺より外側に来る† ]ときは、 %~box を — `相対~位置決めに対するときと同じく@#relpos-insets$,視覚的に — その`位置~box$が[ `包含塊$に包含され続ける ]下で[ `張付き~view矩形$の内方へ,できるだけ多く入る(近付く)所 ]まで,ズラすモノトスル。 ◎ For each side of the box, if the corresponding inset property is not auto, and the corresponding border edge of the box would be outside the corresponding edge of the sticky view rectangle, then the box must be visually shifted (as for relative positioning) to be inward of that sticky view rectangle edge, insofar as it can while its position box remains contained within its containing block.\
【† %~box の各種~辺(~border辺や~margin辺)は包含塊を基準にする一方で,張付き~view矩形は~scrollportを基準にするので、 これらの位置関係は,~scrollされるに伴い変化することに注意。 】【 すなわち,~scrollされて %~box が`張付き~view矩形$の外側に出かかったときは、 できるだけ内側に留まろうとすることになる — その効果は、 `固定d位置決め$に似る。 】
%~box の `位置~box@ は、 %~box の各~側の`~margin$を[ %~box の`~margin辺$【`~border辺$?】から %~box の`包含塊$の対応する辺までの距離 ]以下に切り詰めたとするときの,`~margin~box$になる。 ◎ The position box is its margin box, except that for any side for which the distance between its margin edge and the corresponding edge of its containing block is less than its corresponding margin, that distance is used in place of that margin.
注記: `張付きに位置され$た要素のうち,[ `top$p 値は非 `auto$v, `bottom$p 値は `auto^v ]なるものは、 下へ押出されるのみであり,張付き位置決めにより上方へ~offsetすることは決してない。 ◎ Note: A sticky positioned element with a non-auto top value and an auto bottom value will only ever be pushed down by sticky positioning; it will never be offset upwards.
注記: 同じ容器~内に`張付きに位置され$た~boxが複数ある場合、 それぞれが独立に~offsetするので,それらは重合し得る。 ◎ Note: Multiple sticky positioned boxes in the same container are offset independently, and therefore might overlap.
3.4.1. 張付きに位置された~boxの~scroll位置
`張付きに位置され$た要素は、[ 自身, またはその子孫 ]の~scroll位置を~targetにしている演算の目的においては, その~offsetされた位置にあると見なすモノトスル。 ◎ For the purposes of any operation targeting the scroll position of a sticky positioned element (or one of its descendants), the sticky positioned element must be considered to be at its offsetted position.
例えば,利用者が[ `張付きに位置され$た要素 %要素 を~targetにしている~link ]を~clickした場合、 %要素 に`最も近い~scrollport$が現在~scrollされていて, %要素 が自身の初期~位置から~offsetされているならば、 当の`~scroll容器$は,[ `~scrollport$内で %要素 を欲される位置へ持ち込むために必要yな最小 ]だけ~scrollして戻されることになる ( %要素 を元の~offsetされてない位置まで すっかり戻すよう~scrollするのではなく)。 ◎ For example, if a user clicks a link targeting a sticky-positioned element, if the element’s nearest scrollport is currently scrolled such that the sticky positioned element is offset from its initial position, the scroll container will be scrolled back only the minimum necessary to bring it into its desired position in the scrollport (rather than scrolling all the way back to target its original, non-offsetted position).
3.5. 絶対(および固定d)位置決め
`絶対的に位置され$た~boxに対しては、 その`~inset~prop$は,その~sizingと位置決めの基準になる`包含塊$を実質的に指定された量だけ抑制する — 結果の矩形を指して, `~insetで改変された包含塊@ という。 (一義化するため、 絶対的に位置された~boxの実際の【抑制される前の】包含塊は, `絶対~位置の包含塊@ とも呼ばれる†。) ◎ For an absolutely positioned box, the inset properties effectively reduce the containing block into which it is sized and positioned by the specified amounts. The resulting rectangle is called the inset-modified containing block. (For disambiguation, the actual containing block of an absolutely positioned box can also be called the absolute-position containing block.)
【† “`元の包含塊$” と称したい所だが、 それには別の意味が定義されている。 】
3.5.1. ~insetの解決-法: “~insetで改変された包含塊”
各~軸に対し, 当の~box %~box の`包含塊$ %包含塊 の[ 始端, 終端 ]から抑制する量【言い換えれば、対応する`~inset~prop$の`使用~値$】は、 以下に従って決定される結果の[ %始端~inset, %終端~inset ](同順)で与えられる — 以下においては:
- ~sizeは、 一貫して,所与の軸における それらを表すとする。
- [ `始端~側^i / `終端~側^i ]は、 所与の軸における %~box の[ `始端$ / `終端$ ]側を指すとする。
- [ `始端~inset~prop^i / `終端~inset~prop^i ]は %~box の`~inset~prop$のうち[ `始端~側^i / `終端~側^i ]に対応する方を指すとする。
- %始端~inset ~LET `始端~inset~prop^i の`算出d値$ ◎ ↓
- %終端~inset ~LET `終端~inset~prop^i の`算出d値$ ◎ ↓
- %弱い方の~inset ~LET ε ◎ ↓
-
~IF[ %始端~inset ~NEQ `auto$v ]~OR[ %終端~inset ~NEQ `auto$v ]:
- ~IF[ %終端~inset ~EQ `auto$v ] ⇒# %終端~inset ~SET 0; %弱い方の~inset ~SET `終端~側^i
- ~ELSE( %始端~inset ~EQ `auto$v ) ⇒# %始端~inset ~SET 0; %弱い方の~inset ~SET `始端~側^i
-
~ELSE( %始端~inset, %終端~inset どちらも `auto$v ): ◎ If both inset properties in a given axis are auto, then,\
- %始端~静的~位置 ~LET `始端~側^i からの %~box の`静的~位置$ ◎ ↓
- %終端~静的~位置 ~LET `終端~側^i からの %~box の`静的~位置$ ◎ ↓
-
当の軸における %~box の`自己-整列~prop$に応じて: ◎ depending on the box’s self-alignment property in the relevant axis:
- `self-start$v 整列または,それに等価になる値 ⇒# %始端~inset ~SET %始端~静的~位置; %終端~inset ~SET 0 ◎ for self-start alignment or its equivalent • Set its start-edge inset property to the static position, and its end-edge inset property to zero.
- `self-end$v 整列または,それに等価になる値 ⇒# %始端~inset ~SET 0; %終端~inset ~SET %終端~静的~位置 ◎ for self-end alignment or its equivalent • Set its end-edge inset property to the static position, and its start-edge inset property to zero.
-
`center$v 整列に対しては: ◎ for center alignment
- %始端~距離 ~LET %始端~静的~位置 ~PLUS ( %~box の`静的~位置~矩形$の~size ~DIV 2 ) ◎ Let start distance be the distance from the center of its static-position rectangle to the start edge of its containing block, and\
- %終端~距離 ~LET %終端~静的~位置 ~PLUS ( %~box の`静的~位置~矩形$の~size ~DIV 2 ) ◎ end distance be the distance from the center of its static-position rectangle to the end edge of its containing block.\
- ~IF[ %始端~距離 ~LTE %終端~距離 ] ⇒# %始端~inset ~SET 0; %終端~inset ~SET %包含塊 の~size ~MINUS ( 2 ~MUL %始端~距離 ) ◎ If start distance is less than or equal to end distance, then set the start-edge inset property to zero, and set the end-edge inset property to (containing block size - 2 × |start distance|);\
- ~ELSE ⇒# %始端~inset ~SET %包含塊 の~size ~MINUS ( 2 ~MUL %終端~距離 ); %終端~inset ~SET 0 ◎ otherwise, set the end-edge inset property to zero and the start-edge inset property to (containing block size - 2 × |end distance|).
上の規則においては、 整列~値のうち: ◎ For the rules above,\
- `~overflow整列$ 【 `overflow-position$t 】は、 無視するとするとする。 ◎ ignore overflow alignment,\
- `normal$v は、 `start$v として扱うとする。 ◎ and treat normal as start\
- [ `基底線~整列$【 `baseline-position$t 】/ `stretch$v ]は、 その~fallback整列として扱うとする。 ◎ and any baseline or stretch alignment value as its fallback alignment.
-
~IF[ %弱い方の~inset ~EQ ε ] ⇒ %弱い方の~inset ~SET [ `始端~側^i, `終端~側^i ]のうち, %包含塊 の`終端$と同じ側にある方 ◎ ↓
【 %包含塊 と %~box の`書字~mode$が一致しない場合、[ `始端~側^i / `終端~側^i ]は, %包含塊 の[ `始端$/`終端$ ]と反対~側になり得ることに注意。 】
-
~IF[ %始端~inset ~PLUS %終端~inset ~GT %包含塊 の~size ]:
- ~IF[ %弱い方の~inset ~EQ `始端~側^i ] ⇒ %始端~inset ~SET %包含塊 の~size ~MINUS %終端~inset (負になり得る)
- ~ELSE( %弱い方の~inset ~EQ `終端~側^i ) ⇒ %終端~inset ~SET %包含塊 の~size ~MINUS %始端~inset (負になり得る)
所与の軸における `弱い方の~inset@ は、 %弱い方の~inset に応じて[ `始端~側^i ならば `始端~inset~prop^i / `終端~側^i ならば `終端~inset~prop^i ]を指す。
◎ If these adjustments result in an effective containing block size in any axis less than zero, then the weaker inset in the affected axis is reduced (possibly becoming negative) to bring that size up to zero.\ ↑↑In the case that only one inset is auto, that is the weaker inset;\ ↑otherwise the weaker inset is the inset of the end edge (where end is interpreted relative to the writing mode of the containing block). - ~Assert: %始端~inset ~PLUS %終端~inset ~LTE %包含塊 の~size
- ~RET ( %始端~inset, %終端~inset )
注記: `絶対的に位置され$た~boxは、 `~insetで改変された包含塊$の中で — `§ 絶対~位置決め~layout~model$にて述べるように — ~sizeされ位置される。 ◎ Note: Sizing and positioning of the absolutely positioned box into this inset-modified containing block is as described in § 4 Absolute Positioning Layout Model.
所与の軸において,~boxの`自己-整列~prop$が `normal$v の場合、 その軸における`弱い方の~inset$の`解決d値$は, その軸において[ `~insetで改変された包含塊$の対応する辺 ]と[ `~layout@#abspos-layout$した後における,~boxの`~margin~box$の対応する辺 ]が合致するために必要yな値になる (他の場合の`~inset~prop$の`解決d値$は、 通常通り`使用~値$(上による結果の %始端~inset, %終端~inset )になる)。 ◎ If its self-alignment property in an axis is normal, then the resolved value of its weaker inset in that axis is the value necessary to match that edge of its inset-modified containing block to the corresponding edge of its margin box after layout. (Otherwise the resolved value is the used value described above.)
3.5.2. 静的~位置と “静的~位置~矩形” の計算-法
所与の~box %~box の所与の軸における`~inset~prop$が どちらも `auto$v である場合、 %~box は,その`静的~位置~矩形$に整列することにより `静的~位置@ ( `static position^en )に解決される。 %~box の `静的~位置~矩形@ ( `static-position rectangle^en )は、[ %~box の `position$p が `static^v であったとする場合に, ( %~box の実際の`包含塊$とは独立に) %~box が関与することになる`整形~文脈$ ]から導出される`整列~容器$である。 `静的~位置$は、[ `static^v であった場合における %~box の位置 ]の近似を表現する。 ◎ When both inset properties in a given axis are auto, they are resolved into a static position by aligning the box into its static-position rectangle, an alignment container derived from the formatting context the box would have participated in if it were position: static (independent of its actual containing block). The static position represents an approximation of the position the box would have had if it were position: static.
【 `静的~位置$を見出すために利用される`包含塊$(`静的~位置~用の包含塊$など)は, ~boxの`包含塊$と同じになるとは限らないが、 ~layout~algoの中など,`静的~位置$を数量-~offsetとして解釈する必要がある所では、 通例的に,[ ~boxの`包含塊$ (言い換えれば、実際の~layout用の包含塊) の各~辺から~boxの同じ側の辺まで ]の内方への~offset(~inset)と見なされる (~boxの辺が包含塊の外側に位置する場合、負になる)。 例えば, “上端からの静的~位置” と記された所では、 包含塊の上端~辺から`静的~位置~矩形$の上端~辺までの~insetを表す。 】
- 塊~layout ◎ Block Layout
- `塊~levelの~box$の`静的~位置$は、 `CSS2$r にて`定義される@#_css2-static-position$。 `静的~位置~矩形$は、 ~boxの`静的~位置~用の包含塊$の[ `行内-軸$における始端から終端まで【!between the inline-axis sides】~spanする厚さ【塊~size】 0 の矩形 ]になり,その`塊-始端$からの`静的~位置$に位置する。 【!see ~CSS2J#abs-non-replaced-height】 ◎ The static positions of a block-level box are defined in [CSS2] Chapter 10. The static-position rectangle is a zero-thickness rectangle spanning between the inline-axis sides of the box’s static-position containing block and positioned at its block-start static position (see CSS2§10.6.4).
- 注記: 塊~layoutにおける`静的~位置~矩形$は、 `仮の~box$ `CSS2$r【!`CSS2.1, § 10.3.7@~CSS2J#abs-non-replaced-width$】 の位置に対応する。 `CSS2$r の下では,`~box整列~prop$は無いので、 `静的~位置~矩形$の中での`絶対的に位置され$た~boxの整列には,常に[ `塊-始端$/`行内-始端$ ]が利用される。 ◎ Note: In block layout the static-position rectangle corresponds to the position of the “hypothetical box” described in CSS2.1§10.3.7. Since it has no alignment properties, CSS2.1 always uses a block-start inline-start alignment of the absolutely-positioned box within the static-position rectangle.
- 行内~layout ◎ Inline Layout
- `行内~levelの~box$の`静的~位置$は、 `CSS2$r にて`定義される@#_css2-static-position$。 `静的~位置~矩形$は、 `行l~box$の[ `行-上面$と`行-下面$ ]の合間に~spanする,`仮の~box$を包含していた厚さ【行内~size】 0 の矩形になり,その`行内-始端$からの`静的~位置$に位置する。 【!see CSS2§10.3.7 ~CSS2J#abs-non-replaced-width】 ◎ The static positions of an inline-level box are defined in [CSS2] Chapter 10. The static-position rectangle is a zero-thickness rectangle spanning between the line-over/line-under sides of the line box that would have contained its “hypothetical box” (see CSS2§10.3.7); and positioned at its inline-start static position.
- `~flex~layout$ ◎ Flex Layout
- `~flex容器$の子の`静的~位置~矩形$は、[ `交叉-軸$においては`~flex容器$の`内容~辺$/ `主-軸$においては`~flex容器$の仮の位置【?】の`外縁~辺$ ]に対応する。 `§ ~flex容器の子の静的~位置@~CSSFLEX#abspos-items$ `CSS-FLEXBOX-1$r を見よ。 ◎ The static-position rectangle of the child of a flex container corresponds to the content edges of the flex container in the cross axis, and to the outer edges of its hypothetical position in the main axis. See static position of a flex container child in [CSS-FLEXBOX-1].
- `格子~layout$ ◎ Grid Layout
- `格子~容器$の子の`静的~位置~矩形$は、 既定では,格子~容器の`内容~辺$に対応する。 しかしながら,その`格子~容器^も~boxの実際の`包含塊$を確立する場合、 `格子~配置~prop$により指定される`格子~区画$が,代わりに`静的~位置~矩形$を確立する。 `§ 格子~容器の子の静的~位置@~CSSGRID#static-position$ `CSS-GRID-1$r を見よ。 ◎ By default, the static-position rectangle of the child of a grid container corresponds to the content edges of the grid container. However, if that grid container also establishes the box’s actual containing block, then the grid area specified by the grid-placement properties establishes its static-position rectangle instead. See the static position of a grid container child in [CSS-GRID-1].
~boxの[ `静的~位置$, `静的~位置~矩形$ ]を見出すときは: ◎ Finding the static position and the static position rectangle\
-
~boxの( `position$p に加えて)[ `float$p, `clear$p ]~propは、 いずれも,各自の`初期~値$をとるものと見做す。 その帰結として、 ~boxの `display$p ~prop用にも異なる仮の値が要求され得ると見做す。 【 `CSS2$r § `display^p, `position^p `float^p の関係性を見よ。】 ◎ assumes that both float and clear (as well as position) have their initial values, and can consequently require assuming a different hypothetical value for display as well.\
`静的~位置~用の包含塊@ とは、[ 当の要素が これらの条件~下にあったとするとき,生成される~box ]の`包含塊$である。 この~boxは、 `CSS2$r においては, `仮の~box@ ( `hypothetical box^en )と称される。 ◎ (The containing block the element would have had under these conditions is the static-position containing block.)\
【 `仮の~box$は、 この訳による追加 ( `§ 通常~flowの静的~位置@#_css2-static-position$ にて利用される)。 】
- 各種`~box整列~prop$は、 ~boxに効果を及ぼす所では, `静的~位置~用の包含塊$を実質的な`包含塊$として利用する — 整列~用の[ 軸, 方向 ]を解決するときに,その`書字~mode$を利用することも含めて。 ◎ To the extent the box alignment properties have an effect, they use the static-position containing block as the effective containing block, including using its writing mode for resolving alignment axes and directions.\
- ~boxが`固定的に位置され$る場合、 その`包含塊$は,`表示域$に代えて`初期~包含塊$になるものと見做す。 ◎ Additionally, the containing block of fixed positioned elements is assumed to be the initial containing block instead of the viewport,\
- すべての`~scroll容器$は、 各自の`初期~scroll位置$に~scrollされていると見做すベキである。 【 “ベキ” とされているのは、例外的な事例もあるからと思われる。】 ◎ and all scroll containers should be assumed to be scrolled to their initial scroll position.\
- ~boxの~marginに対する `auto^v は、 すべて 0 として扱う。 ◎ Lastly, all auto margins on the box itself are treated as zero.
`上端~層$を成す【各~要素が生成する】~boxは、 その`静的~位置~矩形$として,常に`初期~包含塊$を利用する。 ◎ Boxes in the top layer always use the initial containing block as their static-position rectangle.
3.5.3. 絶対的に位置された要素の断片化-法
`断片~化~flow$において`絶対的に位置され$た~boxは、 `断片化~分断$をすべて無視する下で,~boxの`包含塊$に相対的に位置される (当の~flowは連続的であったかのように)。 ~boxは、 後続して,いくつかの`断片化~容器$に分断されてもヨイ/され得る。 ◎ In a fragmented flow, an absolutely positioned box is positioned relative to its containing block ignoring any fragmentation breaks (as if the flow were continuous). The box may subsequently be broken over several fragmentation containers.
`~paged媒体$において`絶対的に位置され$た内容のうち,その位置が[ ~lay-outされている~page(現在の~page)以外の~page/ 印刷するためにすでに描画された現在の~page ]内に解決されるものは、【!printers】[ 現在の~page/後続な~page ]に配置しても, まるごと省略してもヨイ。 ◎ For absolutely positioned content in paged media that resolves to a position on a page other than the page being laid out (the current page), or resolves to a position on the current page that has already been rendered for printing, printers may place the content: • on the current page, • on a subsequent page, or • may omit it altogether.
注記: 何~pageかに分割される`塊~level$の要素の横幅は、 ~pageごとに異なり得るので,機器に特有な制限sがあり得る。 ◎ Note: A block-level element that is split over several pages can have a different width on each page, and there may be device-specific limits.
~UAは、 `固定的に位置され$た~boxの内容は~page割りしないモノトスル。 ◎ User agents must not paginate the content of fixed-positioned boxes.
注記: ~UAは、 不可視な内容を他の仕方で印刷するかもしれない。 `§ ~page~boxの外側にある内容@~CSSPAGE#content-outside-box$ `CSS-PAGE-3$r を見よ。 ◎ Note: User agents might print invisible content in other ways. See CSS Paged Media 3 § 3.2 Content outside the page box.
4. 絶対~位置決め~layout~model
`絶対~位置決め$は、 ~box %~box を`~flow外$に取り出すことに加え, %~box を その`包含塊$内に — 以下に与える `絶対~位置決め~layout~model@ に則って — ~lay-outする(包含塊の最終的な~sizeが決定された後に): ◎ Absolute positioning not only takes a box out of flow, but also lays it out in its containing block (after the final size of the containing block has been determined) according to the absolute positioning layout model:
-
%~box の`~insetで改変された包含塊$を計算する — `§ 絶対(および固定d)位置決め@#abspos-insets$を見よ。 ◎ First, its inset-modified containing block is calculated, defining its available space. (See § 3.5 Absolute (and Fixed) Positioning.)\
この結果が %~box に`可用な空間$を定義する。 これは常に,`確定的$な~sizeになる — `絶対~位置決め$には,`包含塊$の~sizeには影響しないので。 ◎ Because an absolutely positioned box does not affect the size of its containing block, its available space is always definite.
-
前~段で得られた`可用な空間$を基準に, %~box の~size(横幅, 縦幅)を — `§ 絶対的に位置された~boxの自動的な~size@#abspos-auto-size$ に従う下で — 次の結果として解決する ⇒ `max^op( `min^op( %~box の`選好d~size$, %~box の`最大~size$ ), %~box の`最小~size$ )
ただし:
- 最大~sizeが無い場合は無限大と見做す。
- 最小~sizeが無い場合は 0 と見做す。
- 百分率は、 `包含塊$の元の~sizeを基準に解決する。
- %~box の~marginに対する値 `auto^v を計算する — `§ 絶対的に位置された~boxの自動~margin@#abspos-margins$を見よ。 ◎ Then, the value of any auto margins are calculated, see § 4.2 Auto Margins of Absolutely-Positioned Boxes.
-
%~box の`~margin~box$を`~insetで改変された包含塊$の中で — %~box の`自己-整列~prop$に定義されるとおりに — 整列する。 ◎ Lastly, its margin box is aligned within the inset-modified containing block as defined by its self-alignment properties.
この目的においては、 【%~box の`自己-整列~prop$/ %~box の`整列~容器$の`既定の整列~prop@~CSSALIGN#default-alignment$に】[ `safe$v, `unsafe$v ]どちらも指定されなかった場合, %~box は,それらの “~~中間” ~levelの安全~度で整列される 【[縦, 横]各~軸ごとに】:
- %~box が その[ `元の包含塊$, `~insetで改変された包含塊$ ]を囲う最小な矩形 %矩形 より大きい場合、 %~box は %矩形 の始端へ整列される。
- 他の場合, %~box が %矩形 を~overflowする場合、 %~box は,そうならなくなるために必要yなだけズラされる。
- 他の場合、 %~box は,その`~insetで改変された包含塊$の中で `unsafe$v に基づいて整列される。
4.1. 絶対的に位置された~boxの自動的な~size
`絶対的に位置され$た~box %~box の所与の軸 %軸 における`自動的~size$は、 %~box の`~insetで改変された包含塊$を基準に (`~margin$に対する `auto^v は 0 と扱う下で) 解決される† — それは: ◎ The automatic size of an absolutely positioned box is resolved against its inset-modified containing block as follows (treating auto margins as zero):
-
~OR↓ が満たされるならば %~box の`伸張して収まる~size$になる:
- %自己-整列~値 ~EQ `stretch$v
- ~AND↓ ⇒# %自己-整列~値 ~EQ `normal$v, %~box は`置換され$ない, %~box は`~table包装~box$でない, %~box の %軸 における`~inset~prop$はどちらも `auto$v でない
ここで, %自己-整列~値 は、 %~box の %軸 における`自己-整列~prop$の値とする。
◎ If its self-alignment property in the relevant axis is stretch ◎ Or if it is normal and the box is non-replaced, not a table wrapper box, and has no auto inset in the relevant axis • Its automatic size is its stretch-fit size. - ~ELSE_ %~box の`内容が収まる~size$になる。 ◎ Otherwise • Its automatic size is its fit-content size.
【† すなわち、[ 伸張して収まる~size/内容が収まる~size ]を計算するときには、 `可用な空間$として %~box の`~insetで改変された包含塊$を利用し, %~box の`~margin~prop$に対する値 `auto^v は 0 として扱う。 】
ただし, %~box が縦横比を伴う場合、 `縦横比に依存する軸$における`自動的~size$は,代わりに`最大-内容~size$として解決される。 両~軸とも`自動的~size$にされたときの`縦横比に依存する軸$は、[ ~insetが片方の軸に限り `auto$v の場合は その軸/ ~ELSE_ `塊-軸$ ]になる。 `縦横比に依存しない軸$における`自動的~size$は、 上述したとおりに決定される。 ◎ However, if the box has an aspect-ratio, then an automatic size in the ratio-dependent axis is instead resolved as a max-content size. When both axes have an automatic size, if only one axis has an auto inset then that axis is the ratio-dependent axis, else the block axis is the ratio-dependent axis. An automatic size in the ratio-determining axis is determined as above.
`絶対的に位置され$た~boxの`自動的な最小~size$は常に 0 になるとする。 ◎ The automatic minimum size of an absolutely-positioned box is always zero.
注記: ~form~controlのうち,~resizeできるもの (かつ,画像などの`置換され$る要素を直に表現していないもの) は、 ここでは,`置換され$ないものとして扱うことが期待される。 ~HTMLにおいては、 `<input type=image>@~HEinput#image-button-state-(type=image)$c 以外の~form~controlが,`置換され$ないものとして扱われる。 ◎ Note: To the extent that form controls can be resized (and are not directly representing replaced elements such as images), they are expected to be treated as non-replaced here. In HTML, all form controls other than <input type=image> are treated as non-replaced.
4.2. 絶対的に位置された~boxの自動~margin
`絶対的に位置され$た~box %~box の`~margin$に対する【算出d値】 `auto^v は、 各~軸ごとに,以下に従って解決する — 以下における[ ~size/~margin/~inset~prop ]は,関連な軸における それらを指すとする: ◎ ↓
- %~box の始端, 終端どちらかの`~inset~prop$は `auto$v の場合 ⇒ 0 になる ◎ If either inset property in the relevant axis is auto, then any auto margins resolve to zero.
-
他の場合 — 以下における %残りの空間 は[ %~box の`~insetで改変された包含塊$の~sizeから %~box の使用~sizeを引いた結果 ]とする:
-
両~marginとも `auto^v の場合:
- [ 当の軸は %~box の`包含塊$の(`書字~mode$に基づく)`行内-軸$である ]かつ[ %残りの空間 は負である ]場合 ⇒ 始端~marginは 0 になり,終端~marginは %残りの空間 になる
- 他の場合 ⇒ 両~marginとも %残りの空間 の半分になる
- 片方の~marginだけ `auto^v の場合 ⇒ その~marginが %残りの空間 になる
-
5. 旧- 絶対~位置決め~layout~model
この節は、 新たな `§ 絶対~位置決め~layout~model$ により置換されているが, 比較~用にここに保全されている【 CSS2 による定義と同じ】。 `横組み$かつ,~boxの`自己-整列$は `normal$v である下では、 どちらの~modelからも,同じ結果が得られるベキである。 ◎ This section is being replaced with the new § 4 Absolute Positioning Layout Model section. It is preserved here for comparison: both models should yield the same result in horizontal writing modes when the box’s self-alignment is normal.
以下の各 下位~節では、 `絶対的に位置され$た要素に対し,関係する各種(当の下位~節に挙げる)~propの`算出d値$から`使用~値$を得る方法を,次を通して定義する:
- 不定を表す算出d値 `auto^v を,当の下位~節に与える等式により拘束される下で 確定的な長さに解決する
- 非 `auto^v 値により拘束され過ぎになる事例を取扱う
【 見通しを良くするため,この訳では、 この節に定義される各種~algoにおける原文の場合分けを一部 組み替えて, 同じ結果を得るように改変している。 加えて、 一部の節の~algoは,他の節の~algoを利用するよう簡素化している。 】
5.1. 絶対的に位置された置換されない要素の横幅
この節では、 関係する各種~propの値を次の変数で表す:
- %W = `width$p
- %L = `left$p
- %R = `right$p
- %B = `bottom$p
- %mL = `margin-left$p
- %mR = `margin-right$p
これらの変数の値は、 初期~時には,対応する~propの`算出d値$に設定されているとする。 結果の`使用~値$は、 次の等式による拘束を満たさなければならない:
- ( %L ~PLUS %W ~PLUS %R ) ~PLUS ( %mL ~PLUS %mR ) ~PLUS %BP = `包含塊$の横幅
- %BP は、 次に挙げる~propの`算出d値$の総和を表す(常に確定的) ⇒# `border-left-width$p, `padding-left$p, `padding-right$p, `border-right-width$p
以下に現れる, “%X について等式を解く” という句は、[ 上に挙げた変数のうち, %X 以外の変数は どれも非 `auto^v 値に解決されている ]ことの表明, および %X の値を[ %X について上の等式を解いた結果 ]に設定することを意味する。
◎ The constraint that determines the used values for these elements is: ◎ left + margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right + right = width of containing block-
~IF[ %L ~EQ `auto^v ]~OR[ %R ~EQ `auto^v ]:
- ~IF[ %mL ~EQ `auto^v ] ⇒ %mL ~SET 0
- ~IF[ %mR ~EQ `auto^v ] ⇒ %mR ~SET 0
-
~IF[ %W ~EQ `auto^v ] ⇒ %W ~SET `内容が収まる~size$
-
~IF[ %L ~EQ `auto^v ]~AND[ %R ~EQ `auto^v ]:
- %D ~LET `静的~位置~用の包含塊$を確立している要素の `direction$p ~propの値
- ~IF[ %D ~EQ `ltr^v ] ⇒ %L ~SET 左端からの`静的~位置$
- ~ELSE( %D ~EQ `rtl^v ) ⇒ %R ~SET 右端からの`静的~位置$
- ~IF[ %L ~EQ `auto^v ] ⇒ %L について等式を解く
- ~ELSE( %R ~EQ `auto^v ) ⇒ %R について等式を解く
- ~RET
- ~Assert: [ %L ~NEQ `auto^v ]~AND[ %R ~NEQ `auto^v ]
-
~IF[ %W ~EQ `auto^v ]:
- ~IF[ %mL ~EQ `auto^v ] ⇒ %mL ~SET 0
- ~IF[ %mR ~EQ `auto^v ] ⇒ %mR ~SET 0
- %W について等式を解く
- ~RET
- %D ~LET 包含塊の `direction$p ~propの値
-
( %mL, %mR ) に応じて:
-
( `auto^v, `auto^v ):
- %m ~LET ( %mL ~PLUS %mR ) について等式を解いた結果
- ~IF[ %m ~GTE 0 ] ⇒ ( %mL, %mR ) ~SET ( %m ~DIV 2, %m ~DIV 2 ) 【これは、~boxを横方向に中央寄せにする。】
- ~ELIF[ %D ~EQ `ltr^v ] ⇒ ( %mL, %mR ) ~SET ( 0, %m )
- ~ELSE( %D ~EQ `rtl^v ) ⇒ ( %mL, %mR ) ~SET ( %m, 0 )
- ( `auto^v, 非 `auto^v ) ⇒ %mL について等式を解く
- ( 非 `auto^v, `auto^v ) ⇒ %mR について等式を解く
- ( 非 `auto^v, 非 `auto^v ) (この事例は拘束され過ぎ) ⇒ %D に応じて ⇒# `ltr^v ならば( %R の値は無視して) %R について等式を解く/ `rtl^v ならば( %L の値は無視して) %L について等式を解く
-
5.2. 絶対的に位置された置換d要素の横幅
`auto^v 値をとる %W を`置換d要素の~sizing$に従って解決した上で、 `前節@#abs-non-replaced-width$を適用する。 ◎ If height and width both have computed values of auto and the element also has an intrinsic width, then that intrinsic width is the used value of width. ◎ If height and width both have computed values of auto and the element has no intrinsic width, but does have an intrinsic height and intrinsic ratio; or if width has a computed value of auto, height has some other computed value, and the element does have an intrinsic ratio; then the used value of width is: ◎ (used height) * (intrinsic ratio) ◎ If height and width both have computed values of auto, the element has an intrinsic ratio but no intrinsic height or width, and the containing block’s width does not itself depend on the replaced element’s width, then the used value of width is calculated from the constraint equation used for block-level, non-replaced elements in normal flow. ◎ Otherwise, if width has a computed value of auto, and the element has an intrinsic width, then that intrinsic width is the used value of width. ◎ Otherwise, if width has a computed value of auto, but none of the conditions above are met, and then the used value of width becomes 300px. If 300px is too wide to fit the device, user agents should use the width of the largest rectangle that has a 2:1 ratio and fits the device instead. ◎ After establishing the width, in order to position the replaced element, apply the following rules as appropriate. • If both left and right have the value auto, and if the direction property of the element establishing the static-position containing block is ltr, set left to the static position and solve for right; else if direction is rtl, set right to the static position and solve for left. • If left is auto and right is not auto, replace any auto on margin-left or margin-right with 0, then solve for left. • If right is auto and left is not auto, replace any auto on margin-left or margin-right with 0, then solve for right. • If at this point both margin-left and margin-right are still auto, solve the equation under the extra constraint that the two margins must get equal values, unless this would make them negative, in which case when the direction of the containing block is ltr (rtl), set margin-left (margin-right) to 0 and solve for margin-right (margin-left). • If at this point there is an auto remaining, solve the equation for that value. • If at this point the values are over-constrained, ignore the value for either left (in case the direction property of the containing block is rtl) or right (in case direction is ltr) and solve for that value.
5.3. 絶対的に位置された置換されない要素の縦幅
この節では、 関係する各種~propの値を次の変数で表す:
- %H = `height$p
- %T = `top$p
- %B = `bottom$p
- %mT = `margin-top$p
- %mB = `margin-bottom$p
これらの変数の値は、 初期~時には,対応する~propの`算出d値$に設定されているとする。 結果の`使用~値$は、 次の等式による拘束を満たさなければならない:
- ( %T ~PLUS %H ~PLUS %B ) ~PLUS ( %mT ~PLUS %mB ) ~PLUS %BP = `包含塊$の縦幅
- ここで, %BP は、 次に挙げる~propの`算出d値$の総和を表す(常に確定的) ⇒# `border-top-width$p, `padding-top$p, `padding-bottom$p, `border-bottom-width$p
以下に現れる, “〜について等式を解く” という句の意味は、 `§ 横幅@#abs-non-replaced-width$のそれと同様とする。
◎ For absolutely positioned elements, the used values of the vertical dimensions must satisfy this constraint: ◎ top + margin-top + border-top-width + padding-top + height + padding-bottom + border-bottom-width + margin-bottom + bottom = height of containing block-
~IF[ %T ~EQ `auto^v ]~OR[ %B ~EQ `auto^v ]:
- ~IF[ %mT ~EQ `auto^v ] ⇒ %mT ~SET 0
- ~IF[ %mB ~EQ `auto^v ] ⇒ %mB ~SET 0
- ~IF[ %H ~EQ `auto^v ] ⇒ %H ~SET `§ 塊~整形~文脈の根に対する自動~縦幅@~CSS2J#root-height$に基づいて得られる値
-
~IF[ %T ~EQ `auto^v ]~AND[ %B ~EQ `auto^v ] ⇒ %T ~SET 上端からの`静的~位置$
- ~IF[ %T ~EQ `auto^v ] ⇒ %T について等式を解く
- ~ELSE( %B ~EQ `auto^v ) ⇒ %B について等式を解く
- ~RET
- ~Assert: [ %T ~NEQ `auto^v ]~AND[ %B ~NEQ `auto^v ]
-
~IF[ %H ~EQ `auto^v ]
- ~IF[ %mT ~EQ `auto^v ] ⇒ %mT ~SET 0
- ~IF[ %mB ~EQ `auto^v ] ⇒ %mB ~SET 0
- %H について等式を解く
- ~RET
-
( %mT, %mB ) に応じて:
-
( `auto^v, `auto^v ):
- %m ~LET ( %mT ~PLUS %mB ) について等式を解いた結果
- ( %mT, %mB ) ~SET ( %m ~DIV 2, %m ~DIV 2 ) 【これは、~boxを縦方向に中央寄せにする。】
- ( `auto^v, 非 `auto^v ) ⇒ %mT について等式を解く
- ( 非 `auto^v, `auto^v ) ⇒ %mB について等式を解く
- ( 非 `auto^v, 非 `auto^v ) (この事例は拘束され過ぎ) ⇒ ( %B の値は無視して) %B について等式を解く
-
5.4. 絶対的に位置された置換d要素の縦幅
`auto^v 値をとる %H を`置換d要素の~sizing$に従って解決した上で、 `前節@#abs-non-replaced-height$を適用する。 ◎ If height and width both have computed values of auto and the element also has an intrinsic height, then that intrinsic height is the used value of height. ◎ Otherwise, if height has a computed value of auto and the element has an intrinsic ratio then the used value of height is: ◎ (used width) / (intrinsic ratio) ◎ Otherwise, if height has a computed value of auto and the element has an intrinsic height, then that intrinsic height is the used value of height. ◎ Otherwise, if height has a computed value of auto, but none of the conditions above are met, then the used value of height must be set to the height of the largest rectangle that has a 2:1 ratio, has a height not greater than 150px, and has a width not greater than the device width. ◎ After establishing the height, in order to position the replaced element, apply the following rules as appropriate. • If both top and bottom have the value auto, replace top with the element’s static position. • If bottom is auto, replace any auto on margin-top or margin-bottom with 0. • If at this point both margin-top and margin-bottom are still auto, solve the equation under the extra constraint that the two margins must get equal values. • If at this point there is only one auto remaining, solve the equation for that value. • If at this point the values are over-constrained, ignore the value for bottom and solve for that value.
5.X. 通常~flowの静的~位置
【 この節(この訳による追加)は、 上の各~節にて利用される定義を `CSS2$r から抜き出したものである。 】
~boxの`静的~位置$は、 概ね,~boxが通常~flowに置かれた【`~flow内$にあった】とするときの位置を指す。 より精確には、 `静的~位置~用の包含塊$の各~辺から,`仮の~box$の同じ側にある`~margin辺$までの距離【~inset】として与えられる。 【すなわち、仮の~boxが,`静的~位置~矩形$を与える。】 これらの~offsetは、 仮の~boxが包含塊をはみ出すときは,はみ出した側において負になる。 ◎ For the purposes of this section and the next, the term "static position" (of an element) refers, roughly, to the position an element would have had in the normal flow. More precisely: ◎ The static-position containing block is the containing block of a hypothetical box that would have been the first box of the element if its specified position value had been static and its specified float had been none.\ (Note that due to the rules in section 9.7 this hypothetical calculation might require also assuming a different computed value for display.) ◎ The static position for left is the distance from the left edge of the containing block to the left margin edge of a hypothetical box that would have been the first box of the element if its position property had been static and float had been none. The value is negative if the hypothetical box is to the left of the containing block. ◎ The static position for right is the distance from the right edge of the containing block to the right margin edge of the same hypothetical box as above. The value is positive if the hypothetical box is to the left of the containing block’s edge.
しかしながら,~UAは、 `仮の~box$の寸法を実際に計算せずに,確からしい位置を推測してかまわない。 ◎ But rather than actually calculating the dimensions of that hypothetical box, user agents are free to make a guess at its probable position.
【 すなわち、 “仮の” ~layoutを実際に遂行することなく。 】【 CSS2 においては,このように述べられているが、 `§ 自動的な~insetの解決-法@#staticpos-rect$の記述に従うなら,`仮の~box$は[ `塊~levelの~box$であるならば塊~size( CSS2 においては縦幅)は 0 / `行内~levelの~box$であるならば行内~size( CSS2 においては横幅)は 0 ]と見なされることになる。 】
6. 通常~flow, 浮動体, 位置決めの比較
◎非規範的【 この節の内容は未訳。 】
謝辞
この仕様に~~貢献された次の方々に: ◎ This module would not have been possible without input and support from many helpful people. Thanks to\
Rossen Atanassov, Bert Bos, Oriol Brufau, Tantek Çelik, Arron Eicholz Sylvain Galineau, John Jansen, Chris Jones, Ian Kilpatrick, Anton Prowse.
変更点
【 変更-箇所の引用は省略する。 】
- `2023年 4月 3日 作業草案@~TR/2023/WD-css-position-3-20230403/$ からの有意な変更点 ◎ The following significant changes were made since the 3 April 2023 Working Draft:
- `絶対的に位置され$た~boxの整列は、[ 既定では、 当の~boxは,その`包含塊$に拘束される ]よう調整した。 `§ 絶対~位置決め~layout~model$ を見よ。 ( `10316$issue ) ◎ Adjusted alignment of absolutely positioned boxes to, by default, constrain the box to its containing block. See § 4 Absolute Positioning Layout Model. (Issue 10316)
- `上端~層$を成す~box【!top layer boxes】の`静的~位置~矩形$は、 `初期~包含塊$になるものと指定した。 ( `9939$issue ) ◎ Specified the static-position rectangle of top layer boxes to be the initial containing block. (Issue 9939)
- `固定d位置決め包含塊$は、 `連続的~媒体$においては,`~layout表示域$に対応することを明確化した。 ( `6453$issue ) ◎ Clarified that the fixed positioning containing block corresponds to the layout viewport (specifically) in continuous media. (Issue 6453)
- `2023年 2月 17日 作業草案@~TR/2023/WD-css-position-3-20230217/$ からの有意な変更点 ◎ The following significant changes were made since the 17 February 2023 Working Draft:
- `複数~行に断片化された行内~boxにより形成される包含塊@#def-cb$を[ 各~軸において,すべての断片の最も終端にある辺 ]を利用するよう更新した。 しかしながら、 この提案された定義は,依然として論の最中にある。 ( `8284$issue ) ◎ Updated the containing block formed by inline boxes fragmented across multiple lines to use the endmost edge of all the fragments in each axis; this proposed definition is still under discussion, however. (Issue 8284)
- `2022年 9 月 1日 作業草案@~TR/2022/WD-css-position-3-20220901/$ からの有意な変更点: ◎ The following significant changes were made since the 01 September 2022 Working Draft:
- `§ 塗ng順序と積層~文脈@#stacking$ を追加した。 `張付きに位置され$た~boxは、 常に`積層~文脈$を形成するものと定義した。 ( `1053$issue ) ◎ Added § 2.2 Painting Order and Stacking Contexts and defined sticky-positioned boxes to always form a stacking context. (Issue 1053)
- `張付き位置決め$を[ ~scroll演算~用には,その~offsetされた位置決めを利用する ]よう更新した。 ( `7930$issue ) ◎ Updated sticky positioning to using its offsetted positioning for scroll operations. (Issue 7930)
- 双向性を織り込む下での[ `包含塊$を形成している断片化された行内~boxの辺 ]に関して, `CSS2$r からの[ 不正/多義的 ]な翻訳を修正した。 ( `7917$issue ) ◎ Fixed incorrect/ambiguous translation from CSS2 regarding the edges of a fragmented inline box forming a containing block in the presence of bidi. (Issue 7917)
- 断片化された行内~boxの辺により形成される`包含塊$を `Blink^en 実装に合致するよう定義した ( `609$issue ) 一方で、 何を行うのが最善かについて論点( `8284$issue )を開いた。 ◎ Defined the containing block formed by edges of a fragmented inline box to match the Blink implementation (Issue 609) while opening up a discussion on what’s the best thing to do (Issue 8284)
- `静的~位置~用の包含塊$の定義を `CSS2$r から取込んだ。 ◎ Imported the definition of static-position containing block from CSS2.
- `静的~位置$を計算するとき利用される`書字~mode$を明確化した。 ( `7599$issue, `7612$issue ) ◎ Clarified writing modes used to calculate static positions. (Issue 7599, Issue 7612)
- `絶対~位置決め$の目的においては,~HTML~form~controlを`置換され$ない要素として扱うことについて、 注記を追加した。 ( `6789$issue ) ◎ Added a note about treating HTML form controls as non-replaced elements for the purpose of absolute positioning. (Issue 6789)
- `position$p における “~animation型” 行の重複を正した。 ( `6846$issue ) ◎ Corrected duplicate, conflicting “Animation type” lines for position. (Issue 6846)
- “等価な整列” について明確化した。 ( `6607$issue ) ◎ Clarified “equivalent alignment”. (Issue 6607)
- `2021年 12 月 16日 作業草案@~TR/2021/WD-css-position-3-20211216/$ からの有意な変更点は: ◎ The following significant changes were made since the 16 December 2021 Working Draft:
- `静的~位置$, `静的~位置~矩形$ の概念的な定義を,実際の用法と一貫するよう修正した。 ◎ Fixed conceptual definitions of static position and static-position rectangle to be consistent with their actual usage.
- `絶対~位置決め$は、 当の~boxが`独立な整形~文脈$を確立するよう強制するものと明示的に定義した (以前まで `CSS-DISPLAY-3$r にて注記されたとおり)。 ( `7124$issue ) ◎ Explicitly defined that absolute positioning forces the box to establish an independent formatting context (as previously noted in [CSS-DISPLAY-3]). (Issue 7124)
- `2020年 5月 19日 作業草案@~TR/2020/WD-css-position-3-20200519/$ からの有意な変更点は: ◎ The following significant changes were made since the 19 May 2020 Working Draft:
- [ 縦横比を伴う, `置換され$ない, `絶対的に位置され$た~box ]の自動的~sizingを定義した。 ( `5151$issue ) ◎ Defined automatic sizing of non-replaced absolutely-positioned boxes with an aspect ratio. (Issue 5151
- 自動~marginの解決を`有位置な~box$の`自動的~size$と揃えた。 `CSS2$r ( `5374$issue, `5077$issue, `5327$issue ) ◎ Aligned resolution of auto margins and automatic sizes of positioned boxes with [CSS2]. (Issue 5374, Issue 5077, Issue 5327)
- `2016年 5月 17日 作業草案@~TR/2016/WD-css-position-3-20160517/$ からの有意な変更点は: ◎ The following significant changes were made since the 17 May 2016 Working Draft:
- 仕様~全体を書き直した — 編集上の明確さ, 技術的な精度, [ `CSS-ALIGN-3$r, `CSS-WRITING-MODES-3$r, `CSS-BREAK-3$r, `CSS-DISPLAY-3$r ]との互換性を得るため。 ◎ Rewrote the whole spec for editorial clarity, technical precision, and compatibility with [CSS-ALIGN-3], [CSS-WRITING-MODES-3], [CSS-BREAK-3], and [CSS-DISPLAY-3].
~privacyの考慮点
この仕様が導入する新たな~privacy考慮点は無い。 ◎ This specification introduces no new privacy considerations.
~securityの考慮点
攻撃者が任意な~CSSを注入-可能な場合、 有位置な~layoutは[ ~pageを成す他の任意な要素に~~重ねるように,攻撃者が制御する要素を位置すること ]を より容易にするので,~pageの利用者を騙すことになりかねない。 (この攻撃には、 多くの道がある — 負な `margin$p, `transform$p, 等々。 作者は、 ~pageの どこかに他者による任意な~CSSを適用させないこと。) ◎ If an attacker is able to inject arbitrary CSS, positioned layout can make it easier to position elements the attacker has control of over arbitrary other elements of the page, potentially tricking users of the page. (There are many routes to this attack: negative margin, transform, etc. Don’t let people apply arbitrary CSS to bits of your page.)
`position$p 用の値 `fixed$v は、 ~modal~dialogを模倣することを~pageに許容し得る。 それは、 利用者を[ ~UAとヤリトリしている下で,敏感な情報を手入力している ]かのように~~錯覚させ, その情報は~pageに捕捉されることにもなりかねない。 ~UAは、[ 自身の~native~dialogは,~pageが模倣し得ない仕方で位置される ]ことを確保するモノトスル — 特に,少なくとも一部の~dialogは、[ ~web内容を塗れるような “有位置な画素” ]の外側に来るように。 ◎ position: fixed can allow a page to emulate modal dialogs, potentially tricking a user into thinking they’re interacting with the user agent and entering in sensitive information that they page can then capture. User agents must ensure that their native dialogs are positioned in ways that the page cannot emulate; in particular, that at least some of the dialog is outside the "poisoned pixels" that web content can paint to.