このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

position-try-order

Baseline 2026
Newly available

Since February 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

position-try-orderCSS のプロパティで、アンカー位置指定要素の位置を、初期の位置設定ではなく利用可能な位置試行代替案を使用して設定するための、さまざまな代替オプションを指定することができます。

メモ: position-try 一括指定プロパティを使用すると position-try-orderposition-try-fallbacks の値を単一の宣言で指定することができます。

構文

css
/* キーワード */
position-try-order: normal;
position-try-order: most-height;
position-try-order: most-width;
position-try-order: most-block-size;
position-try-order: most-inline-size;

/* グローバル値 */
position-try-order: inherit;
position-try-order: initial;
position-try-order: revert;
position-try-order: revert-layer;
position-try-order: unset;

position-try-order プロパティは、キーワード値 normal または <try-size> のどちらかで指定します。

normal

デフォルト。要素が最初に表示される際、位置指定の代替オプションは一切試行されません。

<try-size>

様々な試行サイズ代替オプションを定義します。これらは、アンカー位置指定された要素が最初にレンダリングされる際に適用すべき試行代替案を決定する基準を指定します。利用できる値は以下の通りです。

most-height

要素の包含ブロックに、最大の高さを与える配置試行代替オプションが適用されます。

most-width

要素の包含ブロックに、最大の幅を与える配置試行代替オプションが適用されます。

most-block-size

要素の包含ブロックに、ブロック方向の最大のサイズを与える配置試行代替オプションが適用されます。

most-inline-size

要素の包含ブロックに、インライン方向の最大のサイズを与える配置試行代替オプションが適用されます。

解説

position-try-order プロパティは、位置指定要素がスクロールされる時ではなく、最初に表示される時に位置指定試行代替オプションを利用するという点で、他の位置指定試行機能とは焦点が若干異なります。例えば、要素をデフォルトの初期位置よりも高さや幅に余裕のある領域に初期表示したい場合などに有用です。

ブラウザーは利用できる位置指定試行代替オプションを検査し、指定されたサイズにおいてアンカー位置指定要素に最大の空間を与えるものを探します。その後、そのオプションを適用し、要素の初期スタイル設定を上書きします。

要素に割り当てる初期位置よりも広い幅/高さを提供する試行代替オプションが利用できない場合、位置指定の試行オプションは適用されません。実質的に、position-try-ordernormal に設定された場合と同様の挙動となります。

アンカー機能と位置指定の詳細情報については、CSS アンカー位置指定モジュールとオーバーフロー時の代替オプションと条件付き非表示ガイドを参照してください。

公式定義

初期値normal
適用対象絶対位置指定された要素
継承なし
計算値指定通り
アニメーションの種類離散値

形式文法

position-try-order = 
normal |
<try-size>

<try-size> =
most-width |
most-height |
most-block-size |
most-inline-size

基本的な position-try-order の使い方

個のデモは position-try-order の効果を示します。

HTML

この HTML には、アンカーと位置指定要素となる 2 つの <div> 要素と、position-try-order の様々な値を選択することができるラジオボタンが含まれている <form> が含まれています。

html
<div class="anchor">⚓︎</div>

<div class="infobox">
  <p>これは情報ボックスです。</p>
</div>

<form>
  <fieldset>
    <legend>試行順序を選択</legend>
    <div>
      <label for="radio-normal">normal</label>
      <input
        type="radio"
        id="radio-normal"
        name="position-try-order"
        value="normal"
        checked />
    </div>
    <div>
      <label for="radio-most-height">most-height</label>
      <input
        type="radio"
        id="radio-most-height"
        name="position-try-order"
        value="most-height" />
    </div>
  </fieldset>
</form>

CSS

この CSS では、アンカーに anchor-name が指定されており、大きな margin が設定されてビューポートの上部中央に配置されます。

css
.anchor {
  anchor-name: --my-anchor;
  margin: 90px auto;
}

次に、--custom-bottom というカスタム位置指定オプションを指定します。これにより要素はアンカーの下に配置され、適切なマージンが適用されます。

css
@position-try --custom-bottom {
  top: anchor(bottom);
  bottom: unset;
  margin-top: 10px;
}

最初に要素をアンカー要素の上に配置し、次に position-try 一括指定を使用してカスタム位置オプションを適用します。これにより position-try-order プロパティも normal に設定されます。

css
.infobox {
  position: fixed;
  position-anchor: --my-anchor;

  bottom: anchor(top);
  margin-bottom: 10px;
  justify-self: anchor-center;

  position-try: normal --custom-bottom;
}

JavaScript

最後に、いくつかの JavaScript を記述します。これによりラジオボタンに change イベントハンドラーが設定され、新しい値が選択されると、その値が情報ボックスの position-try-order プロパティに適用されます。

js
const infobox = document.querySelector(".infobox");
const form = document.forms[0];
const radios = form.elements["position-try-order"];

for (const radio of radios) {
  radio.addEventListener("change", setTryOrder);
}

function setTryOrder(e) {
  const tryOrder = e.target.value;
  infobox.style.positionTryOrder = tryOrder;
}

結果

順序オプション most-height を選択してみてください。これにより、--custom-bottom が位置試行代替オプションとして適用され、要素がアンカーの下に配置されます。これは、アンカーの下に上よりももっと縦の空間があるために発生します。

仕様書

Specification
CSS Anchor Positioning Module Level 1
# position-try-order-property

ブラウザーの互換性

関連情報