Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. CSS
  3. リファレンス
  4. プロパティ
  5. scroll-margin-inline-end

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

View in EnglishAlways switch to English

scroll-margin-inline-end

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2021年9月⁩.

scroll-margin-inline-end プロパティは、スクロールスナップ領域のインライン方向における末尾側のマージンを定義し、このボックスをスナップポートにスナップするために使用されます。スクロールスナップ領域は変換された境界ボックスによって定義され、四角形の囲みボックスを探して(スクロールコンテナーの座標空間における軸に合わせられ)、それから指定された外部距離が追加されます。

試してみましょう

scroll-margin-inline-end: 0;
scroll-margin-inline-end: 20px;
scroll-margin-inline-end: 2em;
<section>  <div>    <div>1</div>    <div>2</div>    <div>3</div>  </div>  <div>スクロール »</div></section>
.default-example {  flex-wrap: wrap;}.default-example .info {  width: 100%;  padding: 0.5em 0;  font-size: 90%;}.scroller {  text-align: left;  width: 250px;  height: 250px;  overflow-x: scroll;  display: flex;  box-sizing: border-box;  border: 1px solid black;  scroll-snap-type: x mandatory;}.scroller > div {  flex: 0 0 250px;  width: 250px;  background-color: rebeccapurple;  color: #fff;  font-size: 30px;  display: flex;  align-items: center;  justify-content: center;  scroll-snap-align: end;}.scroller > div:nth-child(even) {  background-color: #fff;  color: rebeccapurple;}

構文

css
/* <length> 値 */scroll-margin-inline-end: 10px;scroll-margin-inline-end: 1em;/* グローバル値 */scroll-margin-inline-end: inherit;scroll-margin-inline-end: initial;scroll-margin-inline-end: revert;scroll-margin-inline-end: revert-layer;scroll-margin-inline-end: unset;

<length>

スクロールコンテナーのインライン方向における末尾側の辺からみた外部の距離です。

公式定義

初期値0
適用対象すべての要素
継承なし
計算値指定通り
アニメーションの種類計算値の型による

形式文法

scroll-margin-inline-end =
<length>
この構文はCSS Scroll Snap Module Level 1 による最新の標準を反映しています。すべてのブラウザーがすべての部分を実装しているわけではありません。サポート情報についてはブラウザーの互換性を参照してください。

基本的なデモ

この例では、上記のインタラクティブサンプルととてもよく似たものを実装していますが、ここではその実装方法を説明します。

ここでの目的は、水平方向にスクロールする 4 つのブロックを作成することです。2 つ目と 3 つ目のブロックは、それぞれのブロックの右端に近いところでスナップします。

HTML

HTML には、4 つの子要素を持つスクローラーがあります。

html
<div>  <div>1</div>  <div>2</div>  <div>3</div>  <div>4</div></div>

CSS

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: end;}.scroller > div:nth-child(2n) {  background-color: #fff;  color: #663399;}

ここで最も重要なのはscroll-snap-align: end で、これは右側の端 (ここでは x 軸に沿った「末尾」) をスナップ点として指定するものです。

最後に、スクロールのマージン値を指定しますが、これは 2 番目と 3 番目の子要素に対して異なる値を指定します。

css
.scroller > div:nth-child(2) {  scroll-margin-inline-end: 1rem;}.scroller > div:nth-child(3) {  scroll-margin-inline-end: 2rem;}

つまり、真ん中の子要素を過ぎてスクロールした場合、2 番目の<div> のインラインの末尾から1rem、3 番目の<div> のインラインの末尾から2rem のところでスナップすることになります。

結果

自分でやってみましょう。

仕様書

Specification
CSS Scroll Snap Module Level 1
# margin-longhands-logical

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp