CSS 境界線およびボックス装飾モジュール レベル4

W3C 初回公開作業草案

この文書の詳細
このバージョン:
https://www.w3.org/TR/2025/WD-css-borders-4-20250722/
最新公開バージョン:
https://www.w3.org/TR/css-borders-4/
編集者草案:
https://drafts.csswg.org/css-borders-4/
履歴:
https://www.w3.org/standards/history/css-borders-4/
フィードバック:
CSSWG イシュートラッカー
仕様内インライン
編集者:
Elika J. Etemad / fantasai (Apple)
Lea Verou (招待 専門家)
(招待専門家)
Noam Rosenthal (Google)
前任編集者:
(W3C)
この仕様への編集提案:
GitHub 編集エディター

概要

このモジュールは、ページ上のボックスの境界線および装飾に関する CSS の機能を含みます。

CSS は、構造化文書(HTML や XML など)の画面や印刷物などでのレンダリングを記述する言語です。

この文書の位置付け

このセクションは、本書が公開された時点での文書の位置付けについて説明します。 現在の W3C 公開物一覧や本技術レポートの最新版は、W3C 標準および草案一覧で確認できます。

この文書は、CSS ワーキンググループによって勧告トラックを用いて初回公開作業草案として公開されました。 初回公開作業草案としての公開は、W3C およびそのメンバーによる承認を意味するものではありません。

この文書は草案であり、今後随時更新、置換、または他文書によって廃止される可能性があります。 本文書を進行中の作業以外のものとして引用するのは適切ではありません。

ご意見は、GitHub でイシューを提出(推奨)し、タイトルに「css-borders」と記載してください。例: “[css-borders] …コメント概要…”。 すべてのイシューやコメントはアーカイブされています。 または、(アーカイブされる) パブリックメーリングリスト www-style@w3.org へ送ることもできます。

この文書は2023年11月3日 W3Cプロセス文書に従って管理されています。

この文書は、W3C特許ポリシーの下で活動するグループによって作成されました。 W3C は、グループの成果物に関連してなされた公開特許開示一覧を維持しており、 そのページには特許開示の手順も記載されています。 個人が実際に特許の存在を知り、それが必須特許請求項を含むと考える場合は、 W3C特許ポリシー第6節に従って情報を開示する必要があります。

1. はじめに

この仕様は、CSS Backgrounds and Borders Module Level 3 [CSS3BG] の境界線およびボックス装飾に関する部分を拡張します。 現在は差分仕様となっており、 境界線およびボックス装飾に関するその他の機能については [CSS3BG] を参照してください。

追加された corner-*-shape および border-shape プロパティや、 border-*-radiusbox-shadow-* のロングハンドに対する論理ショートハンド、 border-limit および border-*-clip プロパティによる部分的な境界線について規定します。

Level 3 のテキストをこのドラフトに統合してください。

2. 境界線

境界線は、あらかじめ定義されたスタイル(実線、二重線、点線、擬似3D境界線など)か、画像として指定できます。前者の場合、さまざまなプロパティによってスタイル(border-style)、 色(border-color)、太さ(border-width)が定義されます。

2.1. 線の色:border-color プロパティ

名前: border-top-color, border-right-color, border-bottom-color, border-left-color, border-block-start-color, border-block-end-color, border-inline-start-color, border-inline-end-color
値: <color> | <image-1D>
初期値: currentcolor
適用対象: すべての要素(ルビベースコンテナおよびルビ注釈コンテナを除く)
継承: no
パーセンテージ: N/A
算出値: 算出された色または1次元画像関数
正規順序: 文法に従う
アニメーション型: 本文参照
論理プロパティグループ: border-color
名前: border-color
値: [ <color> | <image-1D> ]{1,4}
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

これらのプロパティは、border-style プロパティで指定された境界線の前景色を設定します。

<image-1D> で定義されるストライプは、対象となる側の境界線の形状に従い、 padding edge から外側へ向かって帯状に描画されます。 各ポイントでの境界線幅が、そのポイントにおけるストライプの total width を定義します。

各辺に複数色を使う例:
.foo {
  border: 30px solid;
  border-color: stripes(dodgerblue, skyblue) stripes(yellow, gold) stripes(lightgreen, limegreen) stripes(indianred, orange);
}

レンダリング例:

同じ border-color で border-style: dotted を指定した場合:

border-color は4つの border-*-color プロパティのショートハンドです。 4つの値はそれぞれ、上・右・下・左の境界線を設定します。 左が省略された場合は右と同じ、 下が省略された場合は上と同じ、 右も省略された場合は上と同じになります。 これはリスト項目ごとに個別に解決されます。

フロー相対 プロパティ border-block-start-colorborder-block-end-colorborder-inline-start-colorborder-inline-end-color は、物理的プロパティ border-top-colorborder-bottom-colorborder-left-colorborder-right-color に対応します。 このマッピングは、要素の writing-modedirectiontext-orientation に依存します。

名前: border-block-color, border-inline-color
値: <'border-top-color'>{1,2}
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

これら2つのショートハンドプロパティは、border-block-start-colorborder-block-end-color および border-inline-start-colorborder-inline-end-color をそれぞれ設定します。 1つ目の値がstart 側の色、 2つ目の値がend 側の色を表します。 1つだけ指定した場合、startend の両側に適用されます。

2.2. 線のパターン:border-style プロパティ

名前: border-top-style, border-right-style, border-bottom-style, border-left-style, border-block-start-style, border-block-end-style, border-inline-start-style, border-inline-end-style
値: <line-style>
初期値: none
適用対象: すべての要素(ルビベースコンテナおよびルビ注釈コンテナを除く)
継承: no
パーセンテージ: N/A
算出値: 指定キーワード
正規順序: 文法に従う
アニメーション型: 離散
論理プロパティグループ: border-style

フロー相対 プロパティ border-block-start-styleborder-block-end-styleborder-inline-start-styleborder-inline-end-style は、物理的プロパティ border-top-styleborder-bottom-styleborder-left-styleborder-right-style に対応します。 このマッピングは、要素の writing-modedirectiontext-orientation に依存します。

名前: border-block-style, border-inline-style
値: <'border-top-style'>{1,2}
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

これら2つのショートハンドプロパティは、border-block-start-styleborder-block-end-style および border-inline-start-styleborder-inline-end-style をそれぞれ設定します。 1つ目の値がstart 側のスタイル、 2つ目の値がend 側のスタイルを表します。 1つだけ指定した場合、startend の両側に適用されます。

2.3. 線の太さ:border-width プロパティ

名前: border-top-width, border-right-width, border-bottom-width, border-left-width, border-block-start-width, border-block-end-width, border-inline-start-width, border-inline-end-width
値: <line-width>
初期値: medium
適用対象: すべての要素(ルビベースコンテナおよびルビ注釈コンテナを除く)
継承: no
パーセンテージ: N/A
算出値: 絶対長さ、境界線幅として調整された値;border-style が none または hidden の場合は 0
正規順序: 文法に従う
アニメーション型: 算出値による
論理プロパティグループ: border-width

フロー相対プロパティ border-block-start-widthborder-block-end-widthborder-inline-start-widthborder-inline-end-width は、物理プロパティ border-top-widthborder-bottom-widthborder-left-widthborder-right-width に対応します。 このマッピングは、要素の writing-modedirectiontext-orientation に依存します。

名前: border-block-width, border-inline-width
値: <'border-top-width'>{1,2}
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

これら2つのショートハンドプロパティは、border-block-start-widthborder-block-end-width および border-inline-start-widthborder-inline-end-width をそれぞれ設定します。 1つ目の値がstart側の幅、 2つ目の値がend側の幅です。 1つだけ指定した場合、startend 両側に適用されます。

2.4. 境界線ショートハンドプロパティ

名前: border-top, border-right, border-bottom, border-left, border-block-start, border-block-end, border-inline-start, border-inline-end
値: <line-width> || <line-style> || <color>
初期値: 個別プロパティを参照
適用対象: すべての要素(ルビベースコンテナおよびルビ注釈コンテナを除く)
継承: no
パーセンテージ: N/A
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

フロー相対プロパティ border-block-startborder-block-endborder-inline-startborder-inline-end は、物理 プロパティ border-topborder-bottomborder-leftborder-right に対応します。 このマッピングは、要素の writing-modedirectiontext-orientation に依存します。

名前: border-block, border-inline
値: <'border-block-start'>
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

これら2つのショートハンドプロパティは、border-block-startborder-block-end または border-inline-startborder-inline-end を同じスタイルに設定します。

3.

3.1. 角のサイズ指定:border-*-*-radius プロパティ

名前: border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius
値: <length-percentage [0,∞]>{1,2}
初期値: 0
適用対象: すべての要素(詳細は本文参照)
継承: no
パーセンテージ: 対応するborder boxの次元を参照
算出値: 計算済み<length-percentage>値のペア
正規順序: 文法に従う
アニメーション型: 算出値による
論理プロパティグループ: border-radius

フロー相対プロパティ border-start-start-radiusborder-start-end-radiusborder-end-start-radiusborder-end-end-radius は、物理プロパティ border-top-left-radiusborder-bottom-left-radiusborder-top-right-radiusborder-bottom-right-radius に対応します。 このマッピングは、要素の writing-modedirectiontext-orientation に依存し、 最初の start/end がブロック軸側、 2番目がインライン軸側を意味します (つまり 'border-block-inline-radius' のパターン)。

3.2. 角のサイズ指定ショートハンド:border-radius および border-*-radius ショートハンドプロパティ

3.2.1. 一辺の角サイズ指定: border-top-radiusborder-right-radiusborder-bottom-radiusborder-left-radiusborder-block-start-radiusborder-block-end-radiusborder-inline-start-radiusborder-inline-end-radius ショートハンド

名前: border-top-radius, border-right-radius, border-bottom-radius, border-left-radius, border-block-start-radius, border-block-end-radius, border-inline-start-radius, border-inline-end-radius
値: <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
初期値: 0
適用対象: すべての要素(詳細は本文参照)
継承: no
パーセンテージ: 対応するborder boxの次元を参照
算出値: 個別プロパティを参照
正規順序: 文法に従う
アニメーション型: 個別プロパティを参照

border-*-radius ショートハンドは、関連する側の2つの border-*-*-radius ロングハンドプロパティを設定します。スラッシュの前後に値が指定されている場合、スラッシュの前は水平半径、スラッシュの後は垂直半径を設定します。 スラッシュがない場合は、両方の半径に同じ値を設定します。 半径の2つの値は、 border-top-radius では左上・右上、 border-right-radius では右上・右下、 border-bottom-radius では左下・右下、 border-left-radius では左上・左下、 border-block-start-radius では start-start・start-end、 border-block-end-radius では end-start・end-end、 border-inline-start-radius では start-start・end-start、 border-inline-end-radius では start-end・end-end の順で指定します。 2番目の値が省略された場合は、1番目の値がコピーされます。

3.2.2. すべての角を一度に指定: border-radius ショートハンド

名前: border-radius
値: <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?
初期値: 0
適用対象: すべての要素。ただし、border-collapsecollapse の場合は table 要素を除く
継承: no
パーセンテージ: n/a
算出値: 指定通り
正規順序: 文法に従う
アニメーション型: 個別プロパティを参照

[CSS3BG] を参照。

3.3. 角の形状指定:corner-shape プロパティ

デフォルトでは、0以外の border-radius の値は、 対象の角を丸める四分の一楕円の 角形状 を定義し、 その角の border-radius で定義される コーナー領域 を埋めます。 しかし場合によっては、他の 角形状 が求められることもあります。 corner-shape プロパティ(およびそのロングハンド)は、 ボックスが border-radius の値で定義される領域に対して使う 角形状 を正確に指定します。

さまざまな 角形状 は、 すべて スーパー楕円 の異なるパラメータとして表現できます。 スーパー楕円は楕円を一般化したもので、 パラメータ `k` を変えることで、正方形・楕円・ノッチの間のすべての形状を表現できます。

スーパー楕円はどのように機能しますか?

単位円は次の式で定義されます:

x 2 + y 2 = 1

この式を満たす点 (x, y) 全体が円を構成します。 楕円はこれをX軸またはY軸方向に拡大することで得られます。

スーパー楕円の式では、2 の指数部分を変数に置き換えます。 この仕様では 2K の形で記載します:

x 2 K + y 2 K = 1

この式の Ksuperellipse() の引数です。

K は任意の値を取ることができ、 K を 1 にすると通常の円・楕円となり、 他の値ではスーパー楕円曲線の全ファミリーを定義します:

(スーパー楕円に関する多くの文献では x K のようなより単純な形で表記されます。 ここでは x 2 K の形を採用しており、 すべての値が有効で、対称形は正負で表せるなど、 範囲が直感的になるようになっています。 0 が「中間」のベベル(直線)、 など。)

完全な表現と補間を可能にするため、 corner-shape プロパティ群はスーパー楕円のパラメータを superellipse() 関数で直接指定したり、 よく使われるパラメータを表すキーワードでも指定できます。 詳細は <corner-shape-value> 定義を参照してください。

3.3.1. corner-shape ショートハンド

名前: corner-shape
値: <corner-shape-value>{1,4}
初期値: round
適用対象: border-radius が適用できるすべての要素
継承: no
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

corner-shape プロパティは、 border-radius で指定された領域内におけるボックスの角の形状を指定します。

<corner-shape-value> = round | scoop | bevel | notch | square | squircle |
                       <superellipse()>
superellipse() = superellipse(<number [-∞,∞]> | infinity | -infinity)
round
角形状 は凸な楕円の4分の1です。 superellipse(1) と同等です。

注: これは corner-shape プロパティの初期値であり、 corner-shape が導入される前の border-radius の挙動と同じです。

squircle
角形状 は「スクイークル」の4分の1であり、 roundsquare の中間の凸曲線です。 superellipse(2) と同等です。
square
角形状 は凸な90度の角です。 superellipse(infinity) と同等です。

注: これは border-radius: 0 で得られる「通常」の直角コーナーと見た目は同じですが、 corner-shape の他の値とのアニメーションが滑らかに行えます。

bevel
角形状 は直線の対角線であり、凸でも凹でもありません。 superellipse(0) と同等です。
scoop
角形状 は凹な四分の一楕円です。 superellipse(-1) と同等です。
notch
角形状 は凹な90度の角です。 superellipse(-infinity) と同等です。
superellipse(K)
角形状 はスーパー楕円の4分の1です。 引数 Kスーパー楕円パラメータ であり、 指数 2K を用いてスーパー楕円を定義します。

§ 3.3 角の形状指定:corner-shape プロパティ の注で スーパー楕円の数学的定義やKの意味を解説しています。 § 3.3.3 角の形状のレンダリング でスーパー楕円の計算と描画の詳細を参照してください。

右上の角における異なる superellipse() の値:infinity, 1, 0, -1, -infinity

注: border-radius が指定されていない(または0に設定されている)場合、 コーナー領域 もゼロサイズとなり、 corner-shape は効果を持ちません。

corner-shapeoverflow のルールを変更しません。 ただし角の形状が異なるだけで、 要素は通常通り形状付きボーダーでクリッピングされます。

corner-shape で指定された曲線はボーダーの外側の縁を定義します。 ボーダーの内側の縁は外側の曲線に従い (必ずしもスーパー楕円曲線で表現できるわけではない)、 ほぼ一定距離で外縁をトレースします (または2つのボーダーエッジの border-width が異なる場合には直線的に変化します)。

corner-shapebox-shadow の描画や、 overflow clip edge をボックスから拡張する際の形状にも影響しますが、 それらは内側ボーダーエッジのように corner-shape のパスに必ずしも従いません。 代わりに、corner-shape のパスを軸方向にスケールします。

3.3.2. corner-*-shape ショートハンドおよびロングハンド

名前: corner-top-left-shape, corner-top-right-shape, corner-bottom-right-shape, corner-bottom-left-shape, corner-start-start-shape, corner-start-end-shape, corner-end-start-shape, corner-end-end-shape
値: <corner-shape-value>
初期値: round
適用対象: border-radius が適用できるすべての要素
継承: no
パーセンテージ: n/a
算出値: 対応する superellipse() の値
正規順序: 文法に従う
アニメーション型: スーパー楕円補間 を参照
論理プロパティグループ: corner-shape

corner-*-*-shape ロングハンドプロパティは、指定した角の形状を設定します。

フロー相対ロングハンド (corner-start-start-shape など) は、要素の writing-modedirectiontext-orientation に応じて、 物理ロングハンド (corner-top-left-shape など) に対応します。 最初の start/end がブロック軸側、 2番目がインライン軸側となります (corner-block-inline-shape のパターン)。

名前: corner-top-shape, corner-right-shape, corner-bottom-shape, corner-left-shape, corner-block-start-shape, corner-block-end-shape, corner-inline-start-shape, corner-inline-end-shape
値: <corner-shape-value>{1,2}
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
正規順序: 文法に従う

corner-*-shape などのショートハンドは、関連する側の2つの corner-*-*-shape プロパティを設定します。 1つのみ値を指定した場合、2番目の値は同じ値になります。

物理ショートハンド(corner-top-shape など)では、 値は左右または上下の順(プロパティに応じて)です。 つまり、corner-top-shape: round square と書くと corner-top-left-shape: round; corner-top-right-shape: square; となります。

論理ショートハンド(corner-block-start-shape など)では、 値は常にもう一方の軸の start/end の順です。 つまり、corner-block-start-shape: round square と書くと corner-start-start-shape: round; corner-start-end-shape: square; となります。

3.3.3. corner-shape のレンダリング

角が成形された要素をレンダリングする際、要素のパスは borderoutlinebox-shadowoverflow-clip-margin などに基づき、オフセットされる必要があります。

ボーダーやアウトラインをレンダリングする場合、オフセットは要素の形状のカーブに沿って調整されますが、box-shadowoverflow-clip-margin のオフセットは軸に沿って調整されます。

Adjusting corner shapes
ボーダーはカーブに整列し、シャドウやクリップは軸に整列します。

要素 element外側輪郭 は、border contour path であり、 element とその border edge から得られます。

要素 element内側輪郭 は、border contour path であり、 element とその padding edge から得られます。

要素border は、その 外側輪郭内側輪郭 の間の領域に描画されます。

要素outline は、外側輪郭 に沿って used outline-width および outline-offset で描画されます。 その具体的な描画方法は実装依存です。

要素overflow 領域は、 内側輪郭 によって形作られます。 要素overflow clip edge は、border contour pathelementelementpadding edge、 および elementused overflow-clip-margin を使う)によって形状が決まります。

要素 の 'box shadow' の各シャドウは、 border contour pathelementelementborder edge、 シャドウの used box-shadow-spread)によって形状が決まります。

要素 elementborder contour path を、 edge targetEdge とオプションの数値 spread(デフォルト0)から計算するには:
  1. outerLeft, outerTop, outerRight, outerBottomelementunshaped border edge とする。

  2. topLeftHorizontalRadius, topLeftVericalRadius, topRightHorizontalRadius, topRightVerticalRadius, bottomRightHorizontalRadius, bottomRightVerticalRadius, bottomLeftHorizontalRadius, bottomLeftVerticalRadiuselement border edge の半径とし、 elementopposite corner scale factor でスケールする。

  3. topLeftShape, topRightShape, bottomRightShape, bottomLeftShapeelementcomputed corner-*-shape 値とする。

  4. targetLeft, targetTop, targetRight, targetBottomunshaped targetEdge とする。

  5. path を新しいパス [SVG2] とする。

  6. Add corner to pathpathrectangle (outerRight - topRightHorizontalRadius, outerTop, topRightHorizontalRadius, topRightVerticalRadius)targetEdge、0、targetTop - outerTopouterRight - targetRighttopRightShape で実行。

  7. Add corner to pathpathrectangle (outerRight - bottomRightHorizontalRadius, outerBottom - bottomRightVerticalRadius, bottomRightHorizontalRadius, bottomRightVerticalRadius)targetEdge、1、outerRight - targetRightouterBottom - targetBottombottomRightShape で実行。

  8. Add corner to pathpathrectangle (outerLeft, outerBottom - bottomLeftVerticalRadius, bottomLeftHorizontalRadius, bottomLeftVerticalRadius)targetEdge、2、outerBottom - targetBottomtargetLeft - outerLeftbottomLeftShape で実行。

  9. Add corner to pathpathrectangle (outerLeft, outerTop, topLeftHorizontalRadius, topLeftVericalRadius)targetEdge、3、targetLeft - outerLefttargetTop - outerToptopLeftShape で実行。

  10. spread が 0 でない場合:

    1. path1 + (spread * 2) / (targetEdge), 1 + (spread * 2) / (targetEdge高さ) でスケールする。

    2. path-spread, -spread だけ平行移動する。

    注: これにより、結果のパスは元のパスと同じ形状だが、指定された spread に合わせてスケールされる。

  11. path を返す。

パス path、矩形 cornerRect、矩形 trimRect、 数値 orientationstartThicknessendThicknesscurvature が与えられたときの add corner to path の手順:

  1. cornerRect が空、または curvature が ∞ の場合:

    1. innerQuadtrimRectclockwise quad とする。

    2. pathinnerQuad[(orienation + 1) % 4] に線を引いて拡張する。

    3. 終了。

  2. cornerQuadcornerRectclockwise quad とする。

  3. curvature が -∞ の場合:

    1. pathcornerQuad[0] から cornerQuad[3] まで(trimRect でトリム)、線を引いて拡張する。

    2. pathcornerQuad[3] から cornerQuad[2] まで(trimRect でトリム)、線を引いて拡張する。

    3. 終了。

  4. clampedNormalizedHalfCornernormalized superellipse half corner ( clamp(curvature, -1, 1) ) とする。

  5. equivalentQuadraticControlPointXclampedNormalizedHalfCorner * 2 - 0.5 とする。

  6. curveStartPointaligned corner pointcornerQuad[orienation]、ベクトル (equivalentQuadraticControlPointX, 1 - equivalentQuadraticControlPointX)、startThicknessorientation + 1 )で求める。

  7. curveEndPointaligned corner pointcornerQuad[(orientation + 2) % 4]、ベクトル (equivalentQuadraticControlPointX - 1, -equivalentQuadraticControlPointX)、endThicknessorientation + 3 )で求める。

  8. alignedCornerRectrectanglecurveStartPoint および curveEndPoint を含む)とする。

  9. projectionToCornerRecttransformation matrix(alignedCornerRectx座標, alignedCornerRecty座標) で平行移動し、 (alignedCornerRect, alignedCornerRect高さ) でスケールし、 (0.5, 0.5) で平行移動し、90deg * orientation で回転し、(-0.5, -0.5) で平行移動したもの)とする。

  10. K0.5abs(curvature) とする。

  11. 0 から 1 までの各 T について:

    1. ATK とする。

    2. B1 - (1 - T)K とする。

    3. normalizedPoint を、curvature が正なら (A, B)、負なら (B, A) とする。

    4. absolutePointnormalizedPointprojectionToCornerRect を適用したものとする。

    5. absolutePointtrimRect 内にあれば、pathabsolutePoint を通して拡張する。

    注: ユーザーエージェントは、例えばベジェ曲線を連結して使うなど、レンダリング精度とパフォーマンスのバランスのためこのアルゴリズムを近似してもよい。

originalPoint、2成分ベクトル offsetFromControlPoint、数値 thickness、数値 orientation が与えられたときの aligned corner point の計算方法:

  1. lengthhypot(offsetFromControlPoint.x, offsetFromControlPoint.y) とする。

  2. offsetFromControlPoint90deg * orientation だけ回転し、thickness でスケールする。

  3. originalPointoffsetFromControlPoint.x / length, offsetFromControlPoint.y / length だけ平行移動し、結果を返す。

clockwise quad は、rectangle rect について、四辺形を次の点で構成したもの: (rectx座標, recty座標), (rectx座標 + rect, recty座標), (rectx座標 + rect, recty座標 + rect高さ), (rectx座標, recty座標 + rect高さ)。

3.3.4. 対向する半径の制約

凹型の corner-shape 値(superellipse parameter が負)がある場合、対角の角同士が重なってしまうことがあります。

次の例は、制約がなければ角が重なってしまいます。

div {
  corner-shape: scoop;
  border-top-left-radius: 80%;
  border-bottom-right-radius: 80%;
}

これを防ぐため、4つの半径は重なりを防ぐよう制約されます。 これは、対向する角それぞれについて hull ポリゴンを計算し、両方の角に適用したときポリゴンが交差しなくなる最大の縮小率を求めて実現します。

要素 elementopposite corner scale factor を計算するには:
  1. rectelementborder box とする。

  2. topRightHullnormalized inner corner hullelementcomputed corner-top-right-shape、 矩形 (rect - elementcomputed 横方向 border-top-right-radius, 0, rectcomputed border-top-right-radius ) で求める。

  3. bottomRightHullnormalized inner corner hullelementcomputed corner-bottom-right-shape、 (0.5, 0.5) を中心に90度回転、 矩形 (rect - elementcomputed 横方向 border-bottom-right-radius, rect高さ - elementcomputed 縦方向 border-bottom-right-radius , elementcomputed border-bottom-right-radius ) で求める。

  4. bottomLeftHullnormalized inner corner hullelementcomputed corner-bottom-right-shape、 (0.5, 0.5) を中心に180度回転、 矩形 (0, rect高さ - elementcomputed 縦方向 border-bottom-left-radius, elementcomputed border-bottom-left-radius ) で求める。

  5. topLeftHullnormalized inner corner hullelementcomputed corner-top-left-shape、 (0.5, 0.5) を中心に270度回転、 (0, 0, elementcomputed border-top-left-radius ) で求める。

  6. scaleFactorA を、topLeftHullbottomRightHull の両方をその最初の点を原点としてスケーリングしたとき、ポリゴンが交差しなくなる最大の値とする。

  7. scaleFactorB を、topRightHullbottomLeftHull の両方をその最初の点を原点としてスケーリングしたとき、ポリゴンが交差しなくなる最大の値とする。

  8. min(1, scaleFactorA, scaleFactorB) を返す。

3.3.5. 角形状の補間

<corner-shape-value> は常に superellipse()superellipse パラメータ 変数で表現できるため、2つの <corner-shape-value> を補間する場合は superellipse パラメータ 自体を補間します。 log2 を使うため、直線的補間だと凹型コーナーの補間速度が凸型コーナーよりかなり速くなってしまいます。 それを調整するために、superellipse 補間 の式は、superellipse パラメータ を 0~1 の値に変換する方法とその逆を示します。

normalized superellipse half cornersuperellipse パラメータ s から計算するには、s で分岐し最初に一致するものを返します:
-∞

0 を返す。

1 を返す。

その他
  1. k0.5abs(s) とする。

  2. convexHalfCorner0.5k とする。

  3. s が 0 未満の場合、1 - convexHalfCorner を返す。

  4. convexHalfCorner を返す。

normalized inner corner hullsuperellipse パラメータ curvature から計算するには:
  1. curvature が 0 以上なら « (1, 1), (1, 0), (0, 1) » の三角形を返す。

  2. axisLineA(1, 0) から (1, 1) の線分とする。

  3. axisLineB(0, 1) から (1, 1) の線分とする。

  4. normalizedHalfCornernormalized superellipse half cornercurvature)で求める。

  5. halfCornerPoint(normalizedHalfCorner, 1 - normalizedHalfCorner) とする。

  6. lineFromCenterToHalfCorner(0, 0) から halfCornerPoint の線分とする。

  7. tangentLinehalfCornerPointlineFromCenterToHalfCorner に垂直な線分とする。

  8. intersectionAaxisLineAtangentLine の交点とする。

  9. intersectionBaxisLineBtangentLine の交点とする。

  10. 点 « (1, 1), (1, 0), intersectionA, intersectionB, (0, 1), (1, 1) » の五角形を返す。

superellipse パラメータ s を 0~1 の補間値へ補間するには、normalized superellipse half corners)を返す。

<number [0,1]> interpolationValuesuperellipse パラメータ に戻すには、interpolationValue で分岐する:
0

-∞ を返す。

0.5

0 を返す。

1

∞ を返す。

その他
  1. convexHalfCornerinterpolationValue とする。

  2. interpolationValue が 0.5 未満なら convexHalfCorner を 1 - interpolationValue に設定。

  3. kln(0.5) / ln(convexHalfCorner) とする。

  4. slog2(k) とする。

  5. interpolationValue が 0.5 未満なら -s を返す。

  6. s を返す。

3.4. 角形状ショートハンド:corners プロパティ

このプロパティの正確な名前と構文を決定すること。[Issue #11623]

4. 部分的な境界線

実装準備未了

このセクションは実装準備がまだできていません。 アイデアを記録し議論を促進するためにこのリポジトリに存在します。

このセクションの何かを実装しようとする前に、CSSWG(www-style@w3.org)へご連絡ください。

CSS の境界線は伝統的に全体のボーダーエッジを覆います。ただし、時には境界線の一部を非表示にすることが有用な場合もあります。

これを行うための2つの提案があります: 2つめは GCPM から、1つめはより分かりやすく再構成した案です。 名前はひどいもので、既知の課題であり、提案を歓迎します。 これをクリッピングとして考えると問題があります: 点線ボーダーの場合、常に完全な点を描画したいので点の一部だけ描画しては困ります。 したがってクリップではなく描画制限であるべきです。

4.1. 部分的な境界線:border-limit プロパティ

名前: border-limit
値: all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]>
初期値: all
適用対象: すべての要素。ただし、border-collapsecollapse の場合は table 要素を除く
継承: no
パーセンテージ: border-box に対する割合
算出値: 指定通り
正規順序: 文法に従う
アニメーション型: 離散

デフォルトでは境界線全体が描画されます。ただしボーダーの描画を一部だけに制限することもできます。キーワードでどの部分かを指定し、長さや割合でどれくらいかを指定します。

all
境界線全体を描画します。
sides
辺は(border-radius で定義される)角部分を含まずに描画されます。長さやパーセンテージは各辺の中心から測定します:50% は中央 50% のみを描画します。デフォルトは辺全体が描画されます。
corners
角部分が描画され、指定があれば辺方向に指定距離分も描画されます。長さは角エリアの最も近い端から測定、パーセンテージは border box の絶対的な角から測定します。
left
right
left/right(垂直)側は辺と角全体を描画。top/bottom(水平)側は指定部分(left/right 部分)を描画。距離の測り方は corners と同じ。
top
bottom
top/bottom(水平)側は辺と角全体を描画。left/right(垂直)側は指定部分(top/bottom 部分)を描画。距離の測り方は corners と同じ。

次の例は辺の中央50%のみ描画します。

div {
  border: solid;
  border-limit: sides 50%;
}

次の例は角の曲線部分のみ描画します。

div {
  border: solid;
  border-radius: 1em 2em;
  border-limit: corners;
}

次の例は上側ボーダーの左端4em分のみ描画します。

div {
  border-top: solid;
  border-limit: left 4em;
}

次の例は各角の最初の10pxのみ描画します:

div {
  border: solid;
  border-limit: corners 10px;
}

次の例は角の曲線部分と、その両側に5px分だけ描画します:

div {
  border: solid;
  border-radius: 5px;
  border-limit: corners 5px;
}

次の例は角の曲線部分と、辺の中央40%以外を描画します。

div {
  border: solid;
  border-radius: 5px;
  border-limit: corners 30%;
}

4.2. border-clip プロパティ

名前: border-clip, border-clip-top, border-clip-right, border-clip-bottom, border-clip-left
値: normal | [ <length-percentage [0,∞]> | <flex> ]+
初期値: normal
適用対象: すべての要素
継承: no
パーセンテージ: border-edge side の長さに対する割合
算出値: normal、または絶対長または指定通りのパーセンテージのリスト
正規順序: 文法に従う
アニメーション型: 算出値による

これらのプロパティは各辺のボーダーをボーダーエッジに沿って分割します。最初の部分は表示、2番目は非表示、3番目は表示…のように交互になります。部分は長さ・割合・柔軟長さ(fr 単位、[CSS3GRID] 参照)で指定できます。 normal は分割せず通常通り表示することを意味します。

border-clip は4つの個別プロパティのショートハンドです。

リストされた部分がボーダーより短い場合、残りのボーダーは指定された柔軟長さに比例して配分されます。柔軟長さがなければ末尾に 1fr を指定したものとみなします。

リストされた部分がボーダーより長い場合、指定された部分が終わるまで全て表示されます。このとき柔軟長さは全て0になります。

水平ボーダーでは左から右、垂直ボーダーでは上から下の順に部分を並べます。

実際の分割は、すべての柔軟長さを0としてボーダー部分をレイアウトし、残りを柔軟長さに比例配分します。

border-clip: 10px 1fr 10px;
border-clip-top: 10px 1fr 10px;
border-clip-bottom: 10px 1fr 10px;
border-clip-right: 5px 1fr 5px;
border-clip-left: 5px 1fr 5px;

最初の部分を0長にすることで、前の例の逆パターンを簡単に作れます:

border-clip-top: 0 10px 1fr 10px;
border-clip-bottom: 0 10px 1fr 10px;
border-clip-right: 0 5px 1fr 5px;
border-clip-left: 0 5px 1fr 5px;
border: thin solid black;
border-clip: 0 1fr; /* 境界線を非表示に */
border-clip-top: 10px 1fr 10px; /* 特定のボーダーだけ表示 */
border-clip-bottom: 10px 1fr 10px;
border-top: thin solid black;
border-bottom: thin solid black;
border-clip-top: 10px;
border-clip-bottom: 10px;
border-top: thin solid black;
border-clip: 10px;

このレンダリング:

A sentence consists of words¹.
¹ Most often.
は次のスタイルシートで実現できます:
@footnote {
  border-top: thin solid black;
  border-clip: 4em;
}
border: 4px solid black;
border-clip-top: 40px 20px 0 1fr 20px 20px 0 1fr 40px;

この例では、上ボーダーの両端に40pxの可視部分ができます。その内側には最低20pxの不可視部分があり、その内側にそれぞれ20pxの可視・不可視部分が交互に出現します。

赤い部分は説明用で、実際のUAでは表示されません。

border: 4px solid black;
border-clip-top: 3fr 10px 2fr 10px 1fr 10px 10px 10px 1fr 10px 2fr 10px 3fr;

この例では可視部分のほとんどが柔軟長さで指定されています。要素の幅が変わるとこれらの長さも変化します。次は 1fr = 10px の場合のレンダリング例です:

次は 1fr = 30px の場合のレンダリング例です:

赤い部分は説明用で、実際のUAでは黒色で表示されます。

5. ドロップシャドウ

5.1. シャドウの色指定:box-shadow-color プロパティ

名前: box-shadow-color
値: <color>#
初期値: currentcolor
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: リスト。各項目は算出済みの色
正規順序: 文法に従う
アニメーション型: 算出値による

box-shadow-color プロパティは一つ以上のドロップシャドウの色を定義します。 プロパティにはカンマ区切りのシャドウ色リストを指定できます。

「レイヤー化・レイアウト・その他の詳細」の章で、 box-shadow-color が 他のカンマ区切りのドロップシャドウプロパティとどのように連携して各ドロップシャドウレイヤーを構成するか説明しています。

5.2. シャドウのオフセット:box-shadow-offset プロパティ

名前: box-shadow-offset
値: [ none | <length>{2} ]#
初期値: none
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: リスト。各項目は none または要素のボックスからの (横・縦)オフセットのペア
正規順序: 文法に従う
アニメーション型: 算出値による。 補間時に none は非 none 値との間で 0 0 として扱う

box-shadow-offset プロパティは一つ以上のドロップシャドウのオフセットを定義します。 プロパティにはカンマ区切りのリストを指定できます。 その各項目は none(シャドウなし)か、横・縦のオフセットペア(両方とも <length> 値)を指定します。

none
シャドウは描画されません。 このシャドウに対応する他の box-shadow プロパティ値は効果を持ちません。
1st <length>
シャドウの横方向のオフセットを指定します。 正の値はボックスの右側、負の値は左側にシャドウを描画します。
2nd <length>
シャドウの縦方向のオフセットを指定します。 正の値は下方向、負の値は上方向にシャドウをずらします。

「レイヤー化・レイアウト・その他の詳細」の章で box-shadow-offset が 他のカンマ区切りのドロップシャドウプロパティとどのように連携してドロップシャドウレイヤーを構成するか説明しています。

5.3. シャドウのぼかし:box-shadow-blur プロパティ

名前: box-shadow-blur
値: <length [0,∞]>#
初期値: 0
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: リスト。各項目は <length>
正規順序: 文法に従う
アニメーション型: 算出値による

box-shadow-blur プロパティは一つ以上のドロップシャドウのぼかし半径を定義します。 プロパティにはカンマ区切りの <length> 値リストを指定できます。

負の値は無効です。 ぼかし値が 0 の場合、シャドウの縁は鋭くなります。 値が大きいほどシャドウの縁がよりぼやけます。 詳細はShadow Blurring参照。

「レイヤー化・レイアウト・その他の詳細」の章で box-shadow-blur が 他のカンマ区切りのドロップシャドウプロパティとどのように連携してドロップシャドウレイヤーを構成するか説明しています。

5.4. シャドウの広がり:box-shadow-spread プロパティ

名前: box-shadow-spread
値: <length>#
初期値: 0
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: リスト。各項目は <length>
正規順序: 文法に従う
アニメーション型: 算出値による

box-shadow-spread プロパティは一つ以上のドロップシャドウの広がり距離を定義します。 プロパティにはカンマ区切りの <length> 値リストを指定できます。

正の値はシャドウを指定半径分だけ全方向に拡大します。 負の値はシャドウを収縮させます。 詳細はShadow Shape参照。

注:インナーシャドウの場合、シャドウを拡張(シャドウ領域を広げる)することはシャドウの輪郭形状を縮小することを意味します。

「レイヤー化・レイアウト・その他の詳細」の章で box-shadow-spread が 他のカンマ区切りのドロップシャドウプロパティとどのように連携してドロップシャドウレイヤーを構成するか説明しています。

5.5. シャドウの位置指定:box-shadow-position プロパティ

名前: box-shadow-position
値: [ outset | inset ]#
初期値: outset
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: リスト。各項目はキーワードのいずれか
正規順序: 文法に従う
アニメーション型: 算出値による

box-shadow-position プロパティは一つ以上のドロップシャドウの位置を定義します。 プロパティにはカンマ区切りの outsetinset キーワードのリストを指定できます。

outset
ドロップシャドウを外側 box-shadowにします。 つまり、ボックスがキャンバス上に浮かんでいるかのようにキャンバス上に影を落とします。
inset
ドロップシャドウを内側 box-shadowにします。 つまり、キャンバスがボックスに切り抜かれて背後にずらされたかのように、ボックスの中に影を落とします。

「レイヤー化・レイアウト・その他の詳細」の章で box-shadow-position が 他のカンマ区切りのドロップシャドウプロパティとどのように連携してドロップシャドウレイヤーを構成するか説明しています。

5.6. ドロップシャドウショートハンド:box-shadow プロパティ

名前: box-shadow
値: <spread-shadow>#
初期値: none
適用対象: すべての要素
継承: no
パーセンテージ: N/A
算出値: 個別プロパティを参照
正規順序: 文法に従う
アニメーション型: 個別プロパティを参照

box-shadow プロパティはボックスに一つ以上のドロップシャドウを付与します。 プロパティにはカンマ区切りのシャドウリストを(前面から背面の順で)指定します。

各シャドウは <spread-shadow> で指定し、 box-shadow-offset と、必要に応じて box-shadow-blurbox-shadow-spreadbox-shadow-colorbox-shadow-position を指定します。 長さを省略した場合は 0、色を省略した場合はオフセットが none の場合は transparent、 それ以外の場合は currentcolor となります。

<spread-shadow> = <'box-shadow-color'>? && [ <'box-shadow-offset'> [ <'box-shadow-blur'> <'box-shadow-spread'>? ]? ] && <'box-shadow-position'>?

5.7. レイヤー・レイアウトその他詳細

ドロップシャドウは box-shadow-* プロパティから構成されるcoordinated value list で宣言されます。 これは coordinating list property group を形成し、 box-shadow-offsetcoordinating list base property となります。 CSS Values 4 § A Coordinating List-Valued Properties 参照。

シャドウ効果は前面から背面に適用されます: 最初のシャドウが最前面、その後ろに他のシャドウが重なります。 シャドウはレイアウトに影響せず、他のボックスやテキスト、またはそれらのシャドウと重なったり重ねられたりします。 スタッキングコンテキストと描画順の観点では、 要素の外側 box-shadowはその要素の背景の直下に描画され、 内側シャドウは背景の直上(ボーダーやボーダーイメージの下、もしあれば)に描画されます。

特に指定のない限り、ドロップシャドウは principal box のみに適用されます。 対象ボックスが複数フラグメントを持つ場合、 シャドウは box-decoration-break で指定されたとおりに適用されます。

シャドウはスクロールを発生させたり、スクロール可能領域のサイズを増加させたりしません。

外側シャドウは、collapseボーダーモデルにおける内部テーブル要素には影響しません。 collapseボーダーモデルで単一のボーダーエッジに対してシャドウが定義されており、 そのエッジが複数のボーダー太さを持つ場合 (例:ある行だけボーダーが太いテーブル、または rowspanning セルが他のセルと異なるボーダー太さを持つ場合)、 シャドウの正確な位置と描画は未定義です。

6. 境界線の形状指定

corner-shapeborder-radius は境界線の装飾性をある程度表現できますが、 いずれもボーダーが矩形であるという前提で動作します。

border-shape 関数は、 任意の基本形状を利用して ボーダーのパスを指定できるようにし、これらの機能を拡張します。

6.1. border-shape プロパティ

名前: border-shape
値: none | [ <basic-shape> <geometry-box>?]{1,2}
初期値: none
適用対象: すべての要素
継承: no
パーセンテージ: 指定した <geometry-box>、未指定ならborder boxに対する比率
算出値: リスト。各項目は算出済みの色
正規順序: 文法に従う
アニメーション型: 算出値による

border-shape プロパティは、単一の <basic-shape> または2つの <basic-shape> を指定でき、それぞれ1つまたは2つのパスを生成します。 単一パスのボーダーシェイプバリアントは、 要素の既存の border プロパティを使って、指定した <basic-shape> が解決するパスに線を描きます。 二重パスのボーダーシェイプバリアントは、その2つのパス間の領域をボーダー領域として塗りつぶします。

border-shape プロパティは border-radiuscorner-shape と互換性がありません。 要素の 算出値border-shapenone でない場合、 border-radius は無視され、0 として扱われます。corner-shape も暗黙的に無視されます(これは border-radius と組み合わせてのみ機能します)。

box-shadow は内側・外側両方のボーダーパスに従います。

border-shape はジオメトリやレイアウトには影響せず、 既存のborder-width プロパティで計算されます。

border-shape はボックス内の内容のフローには影響しません。 注:作者は border-shapeshape-inside を組み合わせて、ボックスの装飾とテキストの流れ制御を同時に行うことも可能です。

内側の border-shape は要素の overflow コンテンツを border-radius と同様にクリップします。 詳細は corner clipping を参照。

置換要素のクリップにどう影響するか?

塗りの色・ストロークの色・ストローク幅は、それぞれ border-color および border-width プロパティから取得されます。

これを詳述すること。上書き可能にすべき?

border-style についてはどうするか?任意の形状にはそのまま適用できない。

プライバシーに関する考慮事項

この仕様について新たなプライバシー上の考慮事項は報告されていません。

セキュリティに関する考慮事項

この仕様について新たなセキュリティ上の考慮事項は報告されていません。

変更点

[CSS3BG] 以降の追加

謝辞

このモジュールの先行仕様である [CSS1][CSS21]、 および [CSS3BG] に多大な貢献をされた方々に加え、 編集者は特に本 Level 4 に対する提案やフィードバックをいただいた Tab Atkins、 Noam Rosenthal、 Håkon Wium Lie、 Oriol Brufau の各氏に感謝します。

適合性

文書の規約

適合要件は説明的な表明と RFC 2119 の用語の組み合わせで表現されています。本文の規範部分で使われるキーワード「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」は RFC 2119 の説明に従って解釈されます。 ただし可読性のため、これらの語がすべて大文字で記載されているわけではありません。

本仕様の本文は、明示的に非規範であると示された節、例、注記を除き、すべて規範的です。[RFC2119]

本仕様の例は「for example」で導入されるか、class="example" によって規範本文から分離されています。例:

これは情報的な例の例です。

情報的な注記は「Note」で始まり、class="note" によって規範本文と区別されます。例:

注:これは情報提供のための注記です。

助言(advisements)は特に注意を促すための規範セクションであり、<strong class="advisement"> で区別されます。例:UA はアクセシブルな代替手段を提供しなければなりません。

適合クラス

本仕様への適合は次の3つのクラスで定義されます:

style sheet
CSS スタイルシート
renderer
UA(スタイルシートの意味を解釈して文書を描画するもの)
authoring tool
UA(スタイルシートを生成するツール)

スタイルシートは、本モジュールで定義された構文を用いるすべての記述が汎用 CSS 文法および各機能の個別文法に従って有効であれば、本仕様に適合します。

レンダラーは、スタイルシートを該当仕様に従って解釈することに加え、本仕様で定義された機能をすべて正しくパースし描画すれば適合と見なされます。ただしデバイスの制約により正確に描画できない場合でも非適合とはなりません(例:モノクロモニタ上で色を描画する必要はありません)。

オーサリングツールは、汎用 CSS 文法および本モジュール各機能の個別文法に従った構文的に正しいスタイルシートを生成し、本モジュールに記載されたスタイルシートの他の適合要件も満たしていれば、本仕様に適合します。

部分実装

作者がフォワード互換のパースルールを使ってフォールバック値を指定できるように、CSS レンダラーはサポートがない at-rule、プロパティ、プロパティ値、キーワード、その他構文要素を無効として扱い(かつ適切に無視)しなければなりません。特に、UA はサポートされていない構成要素値を選択的に無視して、単一の複数値プロパティ宣言内でサポートされる値だけを採用することを行ってはなりません。もし任意の値が無効(サポート外)と判断される場合、その宣言全体が無視されます。

不安定・独自機能の実装

将来の安定した CSS 機能との衝突を避けるため、CSSWG は不安定機能や独自拡張の実装に関して ベストプラクティス に従うことを推奨します。

非実験的実装

仕様が Candidate Recommendation(CR)段階に達した場合、非実験的実装が可能となり、実装者は CR レベルの機能を仕様に従って正しく実装していることが示せる場合、プレフィックスなしでリリースするべきです。

CSS の実装間の相互運用性を確立・維持するため、CSS ワーキンググループは非実験的な CSS レンダラーが実装レポート(および必要に応じてそのテストケース)を W3C に提出することを求めています。提出されたテストケースは CSS WG によってレビュー・修正されることがあります。

テストケースや実装レポートの提出に関する詳細は CSS WG のウェブサイト https://www.w3.org/Style/CSS/Test/ を参照してください。質問は public-css-testsuite@w3.org へ。

索引

本仕様で定義される用語

参照で定義される用語

参考文献

規範的参照

[CSS-BOX-4]
Elika Etemad. CSS Box Model Module Level 4. 4 August 2024. WD. URL: https://www.w3.org/TR/css-box-4/
[CSS-BREAK-4]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 4. 18 December 2018. FPWD. URL: https://www.w3.org/TR/css-break-4/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 13 January 2022. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-COLOR-4]
Chris Lilley; Tab Atkins Jr.; Lea Verou. CSS Color Module Level 4. 24 April 2025. CRD. URL: https://www.w3.org/TR/css-color-4/
[CSS-COLOR-5]
Chris Lilley; et al. CSS Color Module Level 5. 18 March 2025. WD. URL: https://www.w3.org/TR/css-color-5/
[CSS-DISPLAY-4]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 4. 19 December 2024. FPWD. URL: https://www.w3.org/TR/css-display-4/
[CSS-GRID-2]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 2. 26 March 2025. CRD. URL: https://www.w3.org/TR/css-grid-2/
[CSS-IMAGES-4]
Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images Module Level 4. 17 February 2023. WD. URL: https://www.w3.org/TR/css-images-4/
[CSS-MASKING-1]
Dirk Schulze; Brian Birtles; Tab Atkins Jr.. CSS Masking Module Level 1. 5 August 2021. CRD. URL: https://www.w3.org/TR/css-masking-1/
[CSS-OVERFLOW-3]
Elika Etemad; Florian Rivoal. CSS Overflow Module Level 3. 29 March 2023. WD. URL: https://www.w3.org/TR/css-overflow-3/
[CSS-OVERFLOW-4]
David Baron; Florian Rivoal; Elika Etemad. CSS Overflow Module Level 4. 21 March 2023. WD. URL: https://www.w3.org/TR/css-overflow-4/
[CSS-RUBY-1]
Elika Etemad; et al. CSS Ruby Annotation Layout Module Level 1. 31 December 2022. WD. URL: https://www.w3.org/TR/css-ruby-1/
[CSS-SHAPES-1]
Alan Stearns; Rossen Atanassov; Noam Rosenthal. CSS Shapes Module Level 1. 12 June 2025. CRD. URL: https://www.w3.org/TR/css-shapes-1/
[CSS-SHAPES-2]
CSS Shapes Module Level 2. Editor's Draft. URL: https://drafts.csswg.org/css-shapes-2/
[CSS-TEXT-4]
Elika Etemad; et al. CSS Text Module Level 4. 29 May 2024. WD. URL: https://www.w3.org/TR/css-text-4/
[CSS-TRANSFORMS-1]
Simon Fraser; et al. CSS Transforms Module Level 1. 14 February 2019. CR. URL: https://www.w3.org/TR/css-transforms-1/
[CSS-UI-4]
Florian Rivoal. CSS Basic User Interface Module Level 4. 16 March 2021. WD. URL: https://www.w3.org/TR/css-ui-4/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 12 March 2024. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 3. 10 December 2019. REC. URL: https://www.w3.org/TR/css-writing-modes-3/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 30 July 2019. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[CSS21]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS2/
[CSS3BG]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 11 March 2024. CRD. URL: https://www.w3.org/TR/css-backgrounds-3/
[DOM]
Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/
[GEOMETRY-1]
Simon Pieters; Chris Harrelson. Geometry Interfaces Module Level 1. 4 December 2018. CR. URL: https://www.w3.org/TR/geometry-1/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SVG2]
Amelia Bellamy-Royds; et al. Scalable Vector Graphics (SVG) 2. 4 October 2018. CR. URL: https://www.w3.org/TR/SVG2/

参考情報の参照

[CSS-LOGICAL-1]
Rossen Atanassov; Elika Etemad. CSS Logical Properties and Values Level 1. 27 August 2018. WD. URL: https://www.w3.org/TR/css-logical-1/
[CSS1]
Håkon Wium Lie; Bert Bos. Cascading Style Sheets, level 1. 13 September 2018. REC. URL: https://www.w3.org/TR/CSS1/
[CSS3GRID]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 1. 26 March 2025. CRD. URL: https://www.w3.org/TR/css-grid-1/

プロパティ索引

名前 初期値 適用先 継承 パーセンテージ アニメーション型 正規順序 算出値 論理プロパティグループ
border-block <'border-block-start'> 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-color <'border-top-color'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-end <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-end-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-block-end-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-end-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-block-end-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-block-start <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-start-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-block-start-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-start-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-block-start-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-block-style <'border-top-style'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-block-width <'border-top-width'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-bottom <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-bottom-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-bottom-left-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-bottom-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-bottom-right-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-bottom-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-bottom-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-clip normal | [ <length-percentage [0,∞]> | <flex> ]+ normal すべての要素 いいえ border-edge 側の長さに対する割合 算出値による 文法に従う normal、または絶対長さや指定どおりのパーセンテージのリスト
border-clip-bottom normal | [ <length-percentage [0,∞]> | <flex> ]+ normal すべての要素 いいえ border-edge 側の長さに対する割合 算出値による 文法に従う normal、または絶対長さや指定どおりのパーセンテージのリスト
border-clip-left normal | [ <length-percentage [0,∞]> | <flex> ]+ normal すべての要素 いいえ border-edge 側の長さに対する割合 算出値による 文法に従う normal、または絶対長さや指定どおりのパーセンテージのリスト
border-clip-right normal | [ <length-percentage [0,∞]> | <flex> ]+ normal すべての要素 いいえ border-edge 側の長さに対する割合 算出値による 文法に従う normal、または絶対長さや指定どおりのパーセンテージのリスト
border-clip-top normal | [ <length-percentage [0,∞]> | <flex> ]+ normal すべての要素 いいえ border-edge 側の長さに対する割合 算出値による 文法に従う normal、または絶対長さや指定どおりのパーセンテージのリスト
border-color [ <color> | <image-1D> ]{1,4} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-end-end-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-end-start-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-inline <'border-block-start'> 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-color <'border-top-color'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-end <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-end-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-inline-end-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-end-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-inline-end-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-inline-start <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-start-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-inline-start-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-start-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-inline-start-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-inline-style <'border-top-style'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-inline-width <'border-top-width'>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-left <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-left-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-left-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-left-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-left-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-limit all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]> all すべての要素。ただし border-collapse が collapse の table 要素を除く いいえ border-box に対する割合 離散 文法に従う 指定通り
border-radius <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? 0 すべての要素。ただし border-collapse が collapse の table 要素を除く いいえ 該当なし 個別プロパティ参照 文法に従う 指定通り
border-right <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-right-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-right-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-right-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-right-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
border-shape none | [ <basic-shape> <geometry-box>?]{1,2} none すべての要素 いいえ 指定された <geometry-box> に対する割合、未指定なら border box に対する割合 算出値による 文法に従う リスト、各項目は算出された色
border-start-end-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-start-start-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-top <line-width> || <line-style> || <color> 個別プロパティ参照 ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
border-top-color <color> | <image-1D> currentcolor ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 本文参照 文法に従う 算出された色および/または一次元イメージ関数 border-color
border-top-left-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-top-radius <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 個別プロパティ参照 文法に従う 個別プロパティ参照
border-top-right-radius <length-percentage [0,∞]>{1,2} 0 すべての要素(本文参照) いいえ border box の対応する寸法を参照 算出値による 文法に従う 算出された <length-percentage> 値のペア border-radius
border-top-style <line-style> none ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 離散 文法に従う 指定されたキーワード border-style
border-top-width <line-width> medium ルビベースコンテナおよびルビ注釈コンテナを除くすべての要素 いいえ 該当なし 算出値による 文法に従う 絶対長さ、border width にスナップ;border-style が none または hidden の場合は 0 border-width
box-shadow <spread-shadow># none すべての要素 いいえ 該当なし 個別プロパティ参照 文法に従う 個別プロパティ参照
box-shadow-blur <length [0,∞]># 0 すべての要素 いいえ 該当なし 算出値による 文法に従う リスト、各項目は <length>
box-shadow-color <color># currentcolor すべての要素 いいえ 該当なし 算出値による 文法に従う リスト、各項目は算出された色
box-shadow-offset [ none | <length>{2} ]# none すべての要素 いいえ 該当なし 算出値による、 none を非 none 値と補間する際は 0 0 として扱う 文法に従う リスト、各項目は none または要素のボックスからの(横・縦)オフセットのペア
box-shadow-position [ outset | inset ]# outset すべての要素 いいえ 該当なし 算出値による 文法に従う リスト、各項目はキーワードのいずれか
box-shadow-spread <length># 0 すべての要素 いいえ 該当なし 算出値による 文法に従う リスト、各項目は <length>
corner-block-end-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-block-start-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-bottom-left-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-bottom-right-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-bottom-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-end-end-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-end-start-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-inline-end-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-inline-start-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-left-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-right-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-shape <corner-shape-value>{1,4} round border-radius が適用され得るすべての要素 いいえ 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照
corner-start-end-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-start-start-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-top-left-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-top-right-shape <corner-shape-value> round border-radius が適用され得るすべての要素 いいえ 該当なし superellipse 補間を参照 文法に従う 対応する superellipse() 値 corner-shape
corner-top-shape <corner-shape-value>{1,2} 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法に従う 個別プロパティ参照

課題索引

Level 3 の文言をこの草案に統合する。
このプロパティの正確な名前と構文を決定する。 [Issue #11623]
これを行うための2つの提案があります: 2つ目は GCPM からのもので、1つ目はそれをより読みやすく再構成しようとした試みです。 名前は適切でないことが判明しており、既知の問題であり、提案は受け入れられています。 これをクリッピングと考えると問題があります: 点線のボーダーがある場合、常に完全な点を描画したいので点の一部だけを描画しては困ります。 したがってこれはクリップではなく描画の制限であるべきです。
これが置換要素のクリッピングにどのように影響するべきか?
これを詳述する。おそらく上書き可能にするべきか?
border-style についてどうするか?任意の形状にそのまま適用できるわけではない。