`scroll-margin-block-start` CSS property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since January 2020.
The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container's coordinate space), then adding the specified outsets.
Try it
scroll-margin-block-start: 0;
scroll-margin-block-start: 20px;
scroll-margin-block-start: 2em;
<section class="default-example" id="default-example">
<div class="scroller">
<div>1</div>
<div id="example-element">2</div>
<div>3</div>
</div>
<div class="info">Scroll »</div>
</section>
.default-example .info {
inline-size: 100%;
padding: 0.5em 0;
font-size: 90%;
writing-mode: vertical-rl;
}
.scroller {
text-align: left;
height: 250px;
width: 270px;
overflow-y: scroll;
display: flex;
flex-direction: column;
box-sizing: border-box;
border: 1px solid black;
scroll-snap-type: y mandatory;
}
.scroller > div {
flex: 0 0 250px;
background-color: rebeccapurple;
color: white;
font-size: 30px;
display: flex;
align-items: center;
justify-content: center;
scroll-snap-align: start;
}
.scroller > div:nth-child(even) {
background-color: white;
color: rebeccapurple;
}
Syntax
/* <length> values */ scroll-margin-block-start: 10px; scroll-margin-block-start: 1em; /* Global values */ scroll-margin-block-start: inherit; scroll-margin-block-start: initial; scroll-margin-block-start: revert; scroll-margin-block-start: revert-layer; scroll-margin-block-start: unset;
Values
-
<length> - An outset from the block start edge of the scroll container.
Formal definition
| Initial value | 0 |
|---|---|
| Applies to | all elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | by computed value type |
Formal syntax
scroll-margin-block-start =
<length>
Specifications
| Specification |
|---|
| CSS Scroll Snap Module Level 1 # margin-longhands-logical |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
scroll-margin-block-start |
69 |
79 |
68 |
56 |
15 |
69 |
68 |
48 |
15 |
10.0 |
69 |
15 |
See also
- CSS scroll snap module
- Well-controlled scrolling with CSS scroll snap on web.dev (2018)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/scroll-margin-block-start