• 회원가입
  • 로그인
  • 구글아이디로 로그인

[scroll] CSS - scroll-margin 속성 - 스크롤마진 일괄 지정 (= scroll-margin속성 = 스크롤마진속성)

목차
  1. scroll-margin 예제 - 스크롤 여백 상우하좌 일괄 지정
  2. scroll-margin 정의
  3. scroll-margin 구문
  4. scroll-margin 예제 - 좌측만 스크롤 여백 지정
  5. scroll-margin 예제 - 우측과 하단만 스크롤 여백 지정

 

scroll-margin 예제 - 스크롤 여백 상우하좌 일괄 지정

(예) 상우하좌 모든 면에 scroll-margin:50px 지정되어 있으나, scroll-snap-align:start 속성 탓에 위쪽에서만 스크롤 위치 재조정됨.

 

<style>

#container {

  width: 80%;

  aspect-ratio: 3/1;

  padding: 100px 0;

  margin: auto;

  border: 1px solid gray;

  overflow-x: hidden;

  overflow-y: scroll;

  scroll-snap-type: y mandatory;

}


.a {

  background-color: red;

  width: 90%;

  aspect-ratio: 3/1;

}


.b {

  background-color: blue;

  width: 45%;

  aspect-ratio: 4/1;

}


.a, .b {

  margin: 2px;

  scroll-snap-align: start;

  scroll-margin: 50px;

}

</style>


<div id="container">

  <div class="a"></div>

  <div class="b"></div>

  <div class="a"></div>

  <div class="b"></div>

  <div class="a"></div>

  <div class="b"></div>

  <div class="a"></div>

</div>

 

결과보기

 

scroll-margin 정의

 

스냅 위치(= 스크롤을 중지할 때 컨테이너의 제자리에 맞춰지는 하위 요소의 위치)와 컨테이너 사이의 거리를 지정. (즉, 스크롤 중지하면 스크롤이 빠르게 조정되어 스냅위치와 컨테이너 사이의 지정된 거리에서 중지됨.)

 


 

1.

  • scroll-margin 속성 효과 확인하려면, 하위요소에 scroll-margin 속성과 scroll-snap-align 속성 지정하고, 상위요소(=컨테이너)에  scroll-snap-type 속성을 함께 지정해야 함.
  • 속성값은 1~4개까지 띄어쓰기로 지정 가능.

 

2. 속성값 개수별 의미

  • 1개 (예: 10px) - 상우하좌
  • 2개 (예: 10px 20px) - 상하 좌우
  • 3개 (예: 10px 20px 30px) - 상 좌우 하
  • 4개 (예: 10px 20px 30px 40px) - 상 우 하 좌

 

3.

  • 기본값: 0
  • 상속여부: X
  • 애니가능: X
  • CSS버전: CSS3
  • JS구문: object.style.scrollMargin="20px";

 

4.

IE 제외한 주요 최신 브라우저 모두 지원.

 

5. MDN scroll-margin 예제보기

https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin

 

 

scroll-margin 구문

 

selector {scroll-margin: 0|value|initial|inherit;}

 


[속성값]

 

0

스크롤 마진 사용 X. (기본값)

 

value

px, pt, cm 등의 길이단위. (음수값 가능)

 

initial

이 속성의 기본값 사용.

 

inherit

부모요소의 속성값 상속.

 

 

scroll-margin 예제 - 좌측만 스크롤 여백 지정

 

<style>

#container {

  width: 200px;

  aspect-ratio: 2/1;

  padding:0 100px;

  margin: auto;

  border: solid black 2px;

  overflow-x: scroll;

  overflow-y: hidden;

  white-space: nowrap;

  scroll-snap-type: x mandatory;

}

      

#container > img {

  height: 95%;

  width: auto;

  margin: 2px;

  scroll-snap-align: none start;

  scroll-margin: 0 0 0 50px;

}

</style>


<div id="container">

  <img src="https://i.imgur.com/PQNhCln.gif" alt="협박">

  <img src="https://i.imgur.com/YrkG5xB.gif" alt="키스">

  <img src="https://i.imgur.com/3h0LOk9.gif" alt="능글">

  <img src="https://i.imgur.com/WfW5mBC.png" alt="홈짱">

  <img src="https://i.imgur.com/57sBeiJ.gif" alt="스마일">

</div>

 

결과보기

 

scroll-margin 예제 - 우측과 하단만 스크롤 여백 지정

 

<style>

#container {

  scroll-snap-type: both mandatory;

  width: 50%;

  aspect-ratio: 1/1;

  margin: 30px auto;

  background-color: #fff;

  white-space: nowrap;

  overflow-x: scroll;

  overflow-y: scroll;

  border: 1px solid gray;

}

#container > div {

  display: inline-block;

  height: 85%;

  border-radius: 5%;

  aspect-ratio: 1/1;

  scroll-snap-align: end;

  scroll-margin: 0 10px 30px 0;

}


.a { background-color: red; }

.b { background-color: blue; }

.c { background-color: green; }

.d { background-color: yellow; }

.e { background-color: magenta; }

</style>


<div id="container">

  <div class="a"></div>

  <div class="b"></div>

  <div class="c"></div>

  <div class="d"></div>

  <div class="e"></div>

  <br>

  <div class="d"></div>

  <div class="c"></div>

  <div class="b"></div>

  <div class="a"></div>

  <div class="e"></div>

  <br>  

  <div class="c"></div>

  <div class="b"></div>

  <div class="a"></div>

  <div class="e"></div>

  <div class="d"></div>

  <br>

</div>

 

결과보기

 


분류 제목
css CSS - all 속성 - 해당요소와 그 부모요소의 모든 속성 일괄 지정 (= all속성 = 올속성)
counter CSS - counter (카운터: 자동으로 번호 매기기) 시스템 작동원리 + 관련 속성 종류
text CSS - text-orientation 속성 - 블락방향 수직모드에서 문자방향 지정 (= 텍스트방향 지정 …
css CSS - translate 속성 - 2D/3D 상 요소 위치 좌표 변경 지정 (= translate속성 =…
background CSS - mix-blend-mode 속성 = 해당요소의 부모요소 배경색과의 '결합/혼합' 방법 지정 (= …
css CSS - hanging-punctuation 속성 - 문장부호 위치 지정 (= hanging-punctua…
css CSS - user-select 속성 - 사용자가 요소의 텍스트를 선택 가능한지 여부 지정 (= user-s…
grid CSS - gap 속성(C) - (행/열) 사이의 간격 지정 (= gap속성 =갭속성) ※ (그리드/플렉스/…
text CSS - text-underline-position 속성 - 텍스트 언더라인 위치 지정 (= text-un…
grid CSS - Grid Item - 그리드 아이템
grid CSS - Grid Container - 그리드 컨테이너
counter CSS - content 속성 ★ - 생성된 콘텐츠 삽입 (= content속성 = 콘텐트속성/컨텐트속성)
css CSS - 구글 번역바 숨기기/제거 (Google TranslateBar hide/remove)
css CSS - 네임펜 (= 형광펜) 효과
grid CSS - Grid Intro - 그리드 소개 (※ 그리드 관련 속성 개괄)
css CSS - 코드펜 스타트 코딩 버튼 테두리 효과 (Codepen Start Coding Button Bord…
box CSS - inline-size 속성 - 인라인방향으로 요소 크기 지정 (= inline-size속성 = 인…
selector CSS - :enabled 가상선택자 - 활성화 된 요소 선택 (= 작동가능요소 = 실행가능요소 = :ena…
column CSS - column-rule 속성 - 컬럼구분자 스타일 일괄지정 (= 컬럼구분바 단축속성 = column…
column CSS - column-rule-style 속성 - 컬럼구분자 모양 지정 (= 컬럼구분바 생김새 = colu…
11/27
목록
찾아주셔서 감사합니다. Since 2012