diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/css/flex | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/web/css/flex')
-rw-r--r-- | files/ja/web/css/flex/index.html | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/files/ja/web/css/flex/index.html b/files/ja/web/css/flex/index.html new file mode 100644 index 0000000000..d4feca1e55 --- /dev/null +++ b/files/ja/web/css/flex/index.html @@ -0,0 +1,294 @@ +--- +title: flex +slug: Web/CSS/flex +tags: + - CSS + - CSS Flexible Boxes + - CSS Property + - Reference + - 'recipe:css-shorthand-property' +translation_of: Web/CSS/flex +--- +<div>{{CSSRef}}</div> + +<p><span class="seoSummary"><strong><code>flex</code></strong> は <a href="/ja/docs/Web/CSS">CSS</a> の<a href="/ja/docs/Web/CSS/Shorthand_properties">一括指定プロパティ</a>で、フレックス<em>アイテム</em>をフレックスコンテナーの領域に収めるために、どのように伸長・収縮させるかを指定します。</span></p> + +<div>{{EmbedInteractiveExample("pages/css/flex.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Constituent_properties" name="Constituent_properties">構成するプロパティ</h2> + +<p>このプロパティは以下の CSS プロパティの一括指定です。</p> + +<ul> + <li>{{cssxref("flex-grow")}}</li> + <li>{{cssxref("flex-shrink")}}</li> + <li>{{cssxref("flex-basis")}}</li> +</ul> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="brush:css no-line-numbers notranslate">/* キーワード値 */ +flex: auto; +flex: initial; +flex: none; + +/* 単位がない数値を1つ指定: flex-grow */ +flex: 2; + +/* 幅または高さを1つ指定: flex-basis */ +flex: 10em; +flex: 30%; +flex: min-content; + +/* 値を2つ指定: flex-grow | flex-basis */ +flex: 1 30px; + +/* 値を2つ指定: flex-grow | flex-shrink */ +flex: 2 2; + +/* 値を3つ指定: flex-grow | flex-shrink | flex-basis */ +flex: 2 2 10%; + +/* グローバル値 */ +flex: inherit; +flex: initial; +flex: unset; +</pre> + +<p><code>flex</code> プロパティは1つ、2つ、3つの値を取ることがあります。</p> + +<ul> + <li><strong>値1つの構文:</strong> 値は以下のうちの1つです。 + + <ul> + <li><code><number></code>: この場合は <code>flex: <number> 1 0</code> と解釈されます。 <code><a href="#<'flex-shrink'>"><flex-shrink></a></code> の値は 1 と想定され、 <code><a href="#<'flex-basis'>"><flex-basis></a></code> の値は <code>0</code> と想定されます。</li> + <li>キーワード: <code><a href="#none">none</a></code>, <code><a href="#auto">auto</a></code>, <code>initial</code> のいずれか。</li> + </ul> + </li> + <li><strong>値2つの構文:</strong> + <ul> + <li>1つ目は次の値でなければなりません。 + <ul> + <li>{{cssxref("<number>")}} であり、 <code><a href="#<'flex-grow'>"><flex-grow></a></code> として解釈される。</li> + </ul> + </li> + <li>2つ目は次の値でなければなりません。 + <ul> + <li>{{cssxref("<number>")}}: <code><a href="#<'flex-shrink'>"><flex-shrink></a></code> として解釈される。</li> + <li>{{cssxref("width")}} として有効な値: <code><a href="#<'flex-basis'>"><flex-basis></a></code> として解釈される。</li> + </ul> + </li> + </ul> + </li> + <li><strong>値3つの構文:</strong> 値は以下の順序でなければなりません。 + <ol> + <li>最初の値は単位なしの {{cssxref("<number>")}} でなければならず、 <code><a href="#<'flex-grow'>"><flex-grow></a></code> として解釈されます。</li> + <li>2つ目の値は単位なしの {{cssxref("<number>")}} でなければならず、 <code><a href="#<'flex-grow'>"><flex-shrink></a></code> として解釈されます。</li> + <li>3つ目の値は {{cssxref("width")}} として有効な値でなければならず、 <code><a href="#<'flex-basis'>"><flex-basis></a></code> として解釈されます。</li> + </ol> + </li> +</ul> + +<h3 id="Values" name="Values">値</h3> + +<dl> + <dt><code>initial</code></dt> + <dd>アイテムは <code>width</code> および <code>height</code> プロパティによって大きさが決められます。コンテナーに合うように最小サイズまで収縮しますが、フレックスコンテナーの空き領域を埋めるために伸長することはありません。これは "<code>flex: 0 1 auto</code>" と同等です。</dd> + <dt id="auto"><code>auto</code></dt> + <dd>アイテムは <code>width</code> および <code>height</code> プロパティによって大きさが決められますが、フレックスコンテナーの空き領域を埋めるために伸長したり、コンテナーに合うように最小サイズまで収縮したりします。これは "<code>flex: 1 1 auto</code>" と同等です。</dd> + <dt id="none"><code>none</code></dt> + <dd>アイテムは <code>width</code> および <code>height</code> プロパティによって大きさが決められます。大きさは完全に固定で、フレックスコンテナーに連動して収縮したり伸長したりすることはありません。これは"<code>flex: 0 0 auto</code>" と同等です。</dd> + <dt id="<'flex-grow'>"><code><'flex-grow'></code></dt> + <dd>フレックスアイテムの {{cssxref("flex-grow")}} を定義します。負の値は無効とみなされます。省略時の既定値は <code>1</code> です。 (初期値は <code>0</code>)</dd> + <dt id="<'flex-shrink'>"><code><'flex-shrink'></code></dt> + <dd>フレックスアイテムの {{cssxref("flex-shrink")}} を定義します。負の値は無効とみなされます。省略時の既定値は <code>1</code> です。 (初期値は <code>1</code>)</dd> + <dt id="<'flex-basis'>"><code><'flex-basis'></code></dt> + <dd>フレックスアイテムの {{cssxref("flex-basis")}} を定義します。希望サイズが <code>0</code> ならば、フレキシビリティとして解釈されないように単位をつけなければなりません。省略時の既定値は <code>1</code> です。 (初期値は <code>auto</code>)</dd> +</dl> + +<h2 id="Description" name="Description">解説</h2> + +<p>多くの場合、 <code>flex</code> には <code>auto</code>, <code>initial</code>, <code>none</code>, または単位のない正の数を設定してください。これらの値の効果を確認するには、以下のフレックスコンテナーの大きさを変更してみてください。</p> + +<div id="flex"> +<pre class="hidden brush: html notranslate"><div class="flex-container"> + <div class="item auto">auto</div> + <div class="item auto">auto</div> + <div class="item auto">auto</div> +</div> + +<div class="flex-container"> + <div class="item auto">auto</div> + <div class="item initial">initial</div> + <div class="item initial">initial</div> +</div> + +<div class="flex-container"> + <div class="item auto">auto</div> + <div class="item auto">auto</div> + <div class="item none">none</div> +</div> + +<div class="flex-container"> + <div class="item initial">initial</div> + <div class="item none">none</div> + <div class="item none">none</div> +</div> + +<div class="flex-container"> + <div class="item four">4</div> + <div class="item two">2</div> + <div class="item one">1</div> +</div> +</pre> + +<pre class="hidden brush: css notranslate">* { + box-sizing: border-box; +} + +.flex-container { + background-color: #F4F7F8; + resize: horizontal; + overflow: hidden; + display: flex; + margin: 1em; +} + +.item { + margin: 1em; + padding: 0.5em; + width: 110px; + min-width: 0; + background-color: #1B5385; + color: white; + font-family: monospace; + font-size: 13px; +} + +.initial { + flex: initial; +} + +.auto { + flex: auto; +} + +.none { + flex: none; +} + +.four { + flex: 4; +} + +.two { + flex: 2; +} + +.one { + flex: 1; +} +</pre> + +<p>{{EmbedLiveSample("flex", 1200, 370, "", "", "example-outcome-frame")}}</p> + +<p>既定ではフレックスアイテムは最小コンテンツサイズよりも収縮することはありません。これを変更するには、 {{cssxref("min-width")}} または {{cssxref("min-height")}} を設定してください。</p> +</div> + +<h2 id="Formal_definition" name="Formal_definition">公式定義</h2> + +<p>{{cssinfo}}</p> + +<h2 id="Formal_syntax" name="Formal_syntax">形式文法</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Setting_flex_auto" name="Setting_flex_auto">flex: auto の設定</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html notranslate"><div id="flex-container"> + <div class="flex-item" id="flex">Flex box (click to toggle raw box)</div> + <div class="raw-item" id="raw">Raw box</div> +</div> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css notranslate">#flex-container { + display: flex; + flex-direction: row; +} + +#flex-container > .flex-item { + flex: auto; +} + +#flex-container > .raw-item { + width: 5rem; +} +</pre> + +<div class="hidden"> +<pre class="brush: js notranslate">var flex = document.getElementById("flex"); +var raw = document.getElementById("raw"); +flex.addEventListener("click", function() { + raw.style.display = raw.style.display == "none" ? "block" : "none"; +}); +</pre> + +<pre class="brush: css notranslate">#flex-container { + width: 100%; + font-family: Consolas, Arial, sans-serif; +} + +#flex-container > div { + border: 1px solid #f00; + padding: 1rem; +} + +#flex-container > .raw-item { + border: 1px solid #000; +} +</pre> +</div> + +<h4 id="Result" name="Result">結果</h4> + +<p>{{EmbedLiveSample('Setting_flex_auto','100%','60')}}</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状況</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Flexbox', '#flex-property', 'flex')}}</td> + <td>{{Spec2('CSS3 Flexbox')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("css.properties.flex")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>CSS フレックスボックスガイド: <em><a href="/ja/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox">フレックスボックスの基本概念</a></em></li> + <li>CSS フレックスボックスガイド: <em><a href="/ja/docs/Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax">主軸に沿ったフレックスアイテムの比率の制御</a></em></li> +</ul> |