aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/css/scroll-margin-inline-start
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2021-10-12 01:31:31 +0900
committerMasahiro FUJIMOTO <mfujimot@gmail.com>2021-10-19 15:26:24 +0900
commit94e8f8c474d5a10be866af1bc2eb0dd515a7228f (patch)
treedd3b85d74f3a6c1b39da0996d538c861acd5826e /files/ja/web/css/scroll-margin-inline-start
parentf29c1e5bbfb2590b04267bf88b5becf20af18bc5 (diff)
downloadtranslated-content-94e8f8c474d5a10be866af1bc2eb0dd515a7228f.tar.gz
translated-content-94e8f8c474d5a10be866af1bc2eb0dd515a7228f.tar.bz2
translated-content-94e8f8c474d5a10be866af1bc2eb0dd515a7228f.zip
CSS スクロールスナップに関するページを更新
- scroll-margin-block-end および scroll-margin-block-start は新規翻訳 - 「CSS スクロールスナップの基本概念」は新規翻訳 - それ以外は 2021/10/09 時点の英語版に同期
Diffstat (limited to 'files/ja/web/css/scroll-margin-inline-start')
-rw-r--r--files/ja/web/css/scroll-margin-inline-start/index.md153
1 files changed, 114 insertions, 39 deletions
diff --git a/files/ja/web/css/scroll-margin-inline-start/index.md b/files/ja/web/css/scroll-margin-inline-start/index.md
index 18090254ea..948c70f909 100644
--- a/files/ja/web/css/scroll-margin-inline-start/index.md
+++ b/files/ja/web/css/scroll-margin-inline-start/index.md
@@ -3,66 +3,141 @@ title: scroll-margin-inline-start
slug: Web/CSS/scroll-margin-inline-start
tags:
- CSS
- - CSS Property
- CSS プロパティ
- Reference
- Web
+ - recipe:css-property
- scroll-margin-inline
- scroll-margin-inline-start
+browser-compat: css.properties.scroll-margin-inline-start
translation_of: Web/CSS/scroll-margin-inline-start
---
-<div>{{CSSRef}}</div>
+{{CSSRef}}
-<p><code>scroll-margin-inline-start</code> プロパティは、スクロールスナップ領域のインライン方向における開始側のマージンを定義し、このボックスをスナップポートにスナップするために使用されます。スクロールスナップ領域は変換された境界ボックスによって定義され、四角形の囲みボックスを探して (スクロールコンテナーの座標空間における軸に合わせられ)、それから指定された外部距離が追加されます。</p>
+`scroll-margin-inline-start` プロパティは、スクロールスナップ領域のインライン方向における先頭側のマージンを定義し、このボックスをスナップポートにスナップするために使用されます。スクロールスナップ領域は変換された境界ボックスによって定義され、四角形の囲みボックスを探して (スクロールコンテナーの座標空間における軸に合わせられ)、それから指定された外部距離が追加されます。
-<div>{{EmbedInteractiveExample("pages/css/scroll-margin-inline-start.html")}}</div>
+{{EmbedInteractiveExample("pages/css/scroll-margin-inline-start.html")}}
-<p class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</p>
+## 構文
-<p>{{cssinfo}}</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="brush: css">/* &lt;length&gt; 値 */
+```css
+/* <length> 値 */
scroll-margin-inline-start: 10px;
scroll-margin-inline-start: 1em;
/* グローバル値 */
scroll-margin-inline-start: inherit;
scroll-margin-inline-start: initial;
+scroll-margin-inline-start: revert;
scroll-margin-inline-start: unset;
-</pre>
+```
+
+### 値
+
+- `<length>`
+ - : スクロールコンテナーのインライン方向における先頭側の辺からみた外部の距離です。
-<h3 id="Values" name="Values">値</h3>
+## 公式定義
-<dl>
- <dt><code><var>&lt;length&gt;</var></code></dt>
- <dd>スクロールコンテナーのインライン方向における先頭側の辺からみた外部の距離です。</dd>
-</dl>
+{{cssinfo}}
-<h3 id="Formal_syntax" name="Formal_syntax">形式文法</h3>
+## 形式文法
{{csssyntax}}
-<h2 id="Specification" name="Specification">仕様書</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("CSS Scroll Snap Points", "#propdef-scroll-margin-inline-start", "scroll-margin-inline-start")}}</td>
- <td>{{Spec2("CSS Scroll Snap Points")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("css.properties.scroll-margin-inline-start")}}</p>
+## 例
+
+<h3 id="Simple_demonstration">簡単なデモ</h3>
+
+この例では、上記のインタラクティブ例と非常によく似たものを実装していますが、ここではその実装方法を説明します。
+
+ここでの目的は、水平方向にスクロールする 4 つのブロックを作成することです。2 つ目と 3 つ目のブロックは、それぞれのブロックの左端に近いところでスナップします。
+
+#### HTML
+
+ブロックを表す HTML はとても簡単です。
+
+```html
+<div class="scroller">
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+</div>
+```
+
+#### CSS
+
+外側のコンテナーのスタイルは以下のようになっています。
+
+```css
+.scroller {
+ text-align: left;
+ width: 250px;
+ height: 250px;
+ overflow-x: scroll;
+ display: flex;
+ box-sizing: border-box;
+ border: 1px solid #000;
+ scroll-snap-type: x mandatory;
+}
+```
+
+スクロールスナップに関連する主な部品は、`overflow-x: scroll` で、コンテンツがスクロールしても隠れないようにしています。また、`scroll-snap-type: x mandatory` で、スクロールのスナップは水平軸に沿って行わなければならず、スクロールは常にスナップ点で静止するようになっています。
+
+子要素のスタイルは次のようになっています。
+
+```css
+.scroller > div {
+ flex: 0 0 250px;
+ width: 250px;
+ background-color: #663399;
+ color: #fff;
+ font-size: 30px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ scroll-snap-align: start;
+}
+
+.scroller > div:nth-child(2n) {
+ background-color: #fff;
+ color: #663399;
+}
+```
+
+ここで最も重要なのは `scroll-snap-align: start` で、これは左側の端 (ここでは x 軸に沿った「先頭」) をスナップ点として指定するものです。
+
+
+最後に、スクロールのマージン値を指定しますが、これは 2 番目と 3 番目の子要素に対して異なる値を指定します。
+
+```css
+.scroller > div:nth-child(2) {
+ scroll-margin-inline-start: 1rem;
+}
+
+.scroller > div:nth-child(3) {
+ scroll-margin-inline-start: 2rem;
+}
+```
+
+つまり、真ん中の子要素を過ぎてスクロールした場合、2 番目の `<div>` のインラインの先頭から `1rem`、3 番目の `<div>` のインラインの先頭から `2rem` のところでスナップすることになります。
+
+#### 結果
+
+自分でやってみましょう。
+
+{{EmbedLiveSample('Simple_demonstration', '100%', 300)}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [CSS スクロールスナップ](/ja/docs/Web/CSS/CSS_Scroll_Snap)
+- [Well-Controlled Scrolling with CSS Scroll Snap](https://web.dev/css-scroll-snap/)