CSSツール

無料 CSS stretchサイジングジェネレーター

ブロック、フレックス、グリッド、絶対配置レイアウトでのfill-availableサイジングのためのstretchキーワードCSSを生成します。

ツールを読み込み中...

CSS stretchサイジングジェネレーターとは

CSSのstretchキーワード(Chrome 138+)は、fill-availableサイズ指定のための標準値であり、ベンダープレフィックス付きの-webkit-fill-availableや-moz-availableを置き換えます。width: stretchを設定すると、要素はマージンボックスサイジングを使用して利用可能なスペースを埋めるようにサイズ調整されます。つまり、要素のマージンボックスが包含ブロック内に収まります。これは、コンテンツボックスサイジングを使用するwidth: 100%とは異なり、パディング、ボーダー、マージンがある場合にオーバーフローすることがよくあります。stretchはブロック、フレックス、グリッド、絶対配置のレイアウトコンテキストで動作します。

クイックアンサー

width: stretchまたはheight: stretchを使用して、標準のfill-availableサイズ指定を実現します。width: 100%とは異なり、stretchはマージンボックスサイジングを使用するため、パディングやボーダーがオーバーフローの原因になりません。-webkit-fill-availableや-moz-availableを単一の標準化されたキーワードに置き換えます。Chrome 138+、Firefox 130+、Safari 18.2+。

Last updated: 2026-05-30

制限事項

  • stretchはまだすべてのブラウザでサポートされているわけではありません。Chrome 138+、Firefox 130+、Safari 18.2+がサポートしています。古いブラウザ向けに、ベンダープレフィックス付きのフォールバック(-webkit-fill-available、-moz-available)とwidth: 100%のフォールバックを維持してください。
  • stretchはブロック、フレックス、グリッド、絶対配置のdisplayを持つ要素でのみ機能します。インライン要素、テーブルセル、置換要素(明示的なサイズ指定のないimg、video、iframe)はstretchサイズ指定をサポートしません。
  • フレックスおよびグリッドコンテキストでは、stretchが配置プロパティと予期せぬ相互作用を起こす可能性があります。align-self: stretchとwidth: stretchを持つフレックスアイテムは、競合するサイズ指示を生成する可能性があります。サイズ指定プロパティのstretchキーワードが配置のstretchより優先されます。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. レイアウトコンテキストを選択します。stretchの動作はブロック、フレックス、グリッド、絶対配置要素で若干異なります。
  2. 伸縮させたい軸(width、height、または絶対配置の場合はinset: 0による両方)を選択します。
  3. 選択したコンテキストにおいて、stretchがマージン、パディング、包含ブロックとどのように相互作用するかを説明するレイアウト固有の注意事項を確認します。
  4. 生成されたCSSをコピーし、既存のwidth: 100%パターンやベンダープレフィックス付きのfill-available宣言を置き換えます。

主な用途

  • パディングやボーダーが原因で親からはみ出してしまうinputやselect要素のwidth: 100%を置き換えます。stretchはマージンボックスサイジングを使用するため、ボックス全体がコンテナ内に収まります。
  • -webkit-fill-availableや-moz-availableを標準のstretchキーワードに置き換えて、クロスブラウザでのfill-availableサイズ指定を標準化します。
  • 絶対配置された要素を、明示的なtop/right/bottom/left値なしで位置指定された祖先の端まで引き伸ばします。

用途

使用例

オーバーフローしない全角入力フィールド

検索フォームにpadding: 8px 12pxとborder: 2pxの入力フィールドがあります。width: 100%を使用すると、入力フィールドがコンテナから両側28pxずつはみ出します。width: stretchに変更すると、マージンボックスがコンテナ内に収まり、入力フィールドがフォームの境界線に沿ってきれいに収まります。

ベンダープレフィックス付きfill-availableからの移行

レガシースタイルシートがwidth: -webkit-fill-availableと-moz-availableのフォールバックを使用しています。両方をwidth: stretchに置き換えます。標準キーワードは同じように動作し、Chrome 138+、Firefox 130+、Safari 18.2+でサポートされています。フォールバック宣言は古いブラウザバージョン用に残しておくことができます。

よくあるミス

  • stretchがブロックレイアウトでwidth: 100%とまったく同じように動作すると期待する。100%はコンテンツボックスサイジングを使用し、要素自体のパディングやボーダーを無視しますが、stretchはマージンボックスサイジングを使用します。ほとんどの場合、入力フィールドやフォーム要素ではstretchが望ましい動作です。
  • フレックスコンテナがalign-items: stretchの場合にフレックスアイテムでstretchを使用する。アイテムのstretchキーワードはコンテナのstretch配置をオーバーライドし、予期しないサイズ調整を引き起こす可能性があります。
  • stretchがインラインレイアウトコンテキストで機能すると思い込む。stretchはブロック、フレックス、グリッド、絶対配置のdisplayタイプを持つ要素にのみ適用されます。インライン要素はstretchを無視し、固有の幅にフォールバックします。

検証

  1. DevToolsで要素を検査し、計算されたwidthまたはheightが期待されるfill-availableサイズと一致することを確認します。パディングとボーダーが適用されていても、要素がコンテナからはみ出さないようにしてください。
  2. ビューポートまたはコンテナをリサイズし、すべてのサイズで要素が利用可能なスペースを埋めるように伸縮することを確認します。width: 100%のリファレンスと並べて比較し、狭いビューポートでの違いを確認します。

FAQ

CSS stretchサイジングジェネレーターのFAQ

stretchはパディングとボーダーの観点でwidth: 100%とどう違いますか?

width: 100%は包含ブロックのコンテンツボックス幅に対する相対値で、その上にパディングとボーダーが追加されるため、要素はコンテナからはみ出します。stretchはマージンボックスが利用可能なスペースを埋めるようにサイズ調整されるため、パディングとボーダーは全体から差し引かれ、要素はコンテナ内に収まります。これにより、stretchは特にフォーム要素において、ほとんどの開発者がwidth: 100%に期待する動作を実現します。

stretchはhorizontal-tb以外の書字方向でも機能しますか?

はい。stretchは要素の書字方向を尊重します。縦書きモード(vertical-rl、vertical-lr)では、width: stretchはインライン軸(垂直方向)に沿って伸縮し、height: stretchはブロック軸(水平方向)に沿って伸縮し、書字方向に一致します。これにより、stretchは固定ピクセルやパーセンテージでのサイズ指定よりも書字方向に対応したものになります。

stretchと新しいfill-availableキーワードの違いは何ですか?

fill-availableとstretchは同じ値で名前が異なるだけです。CSS仕様では当初fill-availableが提案されましたが、実装前にstretchに改名されました。stretchが正式な名前です。どちらもサポートブラウザでは同じ内在サイズ計算に解決されますが、前方互換性が保証されているのはstretchのみです。

関連ツール

その他のcssツール

こちらもお試しください

こちらもお試しください