๐ŸงฒCSS scroll-snap ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ

์Šค๋ƒ… ์˜ต์…˜์„ ๊ณจ๋ผ ์ปจํ…Œ์ด๋„ˆยท์•„์ดํ…œ CSS๋ฅผ ๋ฐ”๋กœ ๋ณต์‚ฌํ•˜์„ธ์š”.

px
px
px

๊ด€๋ จ๋œ ๋„๊ตฌ

๊ฐ€๋กœ ์บ๋Ÿฌ์…€์ด๋‚˜ ์ „์ฒด ํ™”๋ฉด ์„น์…˜์„ ๋งŒ๋“ค ๋•Œ ์“ฐ๋Š” scroll-snap ์„ ์–ธ์„ ํ•œ ๋ฒˆ์— ๋ฝ‘์•„ ์ค๋‹ˆ๋‹ค. ์ถ•๊ณผ ๊ฐ•์ œ์„ฑ, ์ •๋ ฌ ๊ธฐ์ค€, ์—ฌ์œ  ๊ณต๊ฐ„, ์•„์ดํ…œ ๊ฐ„๊ฒฉ๊ณผ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ฅด๋ฉด ์ปจํ…Œ์ด๋„ˆ์šฉ ๋ธ”๋ก๊ณผ ์•„์ดํ…œ์šฉ ๋ธ”๋ก์„ ๋‚˜๋ˆ  ๋งŒ๋“ค์–ด ์ฃผ๊ณ , ๋ฐ”๋กœ ์œ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ์‹ค์ œ๋กœ ์Šคํฌ๋กคํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

scroll-snap์€ ์ปจํ…Œ์ด๋„ˆ์™€ ์•„์ดํ…œ ์–‘์ชฝ์— ์„ ์–ธ์ด ์žˆ์–ด์•ผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์—๋Š” overflow์™€ scroll-snap-type์ด, ์•„์ดํ…œ์—๋Š” scroll-snap-align์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ํ•œ ์นธ์”ฉ๋งŒ ๋„˜๊ธฐ๋ ค๋ฉด ์•„์ดํ…œ์— scroll-snap-stop์„ always๋กœ ๋‘๊ณ , ์ปจํ…Œ์ด๋„ˆ ๋์—์„œ ๋ถ€๋ชจ๊ฐ€ ํ•จ๊ป˜ ์›€์ง์ด๋Š” ๊ฒƒ์„ ๋ง‰์œผ๋ ค๋ฉด overscroll-behavior๋ฅผ contain์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค. ์†์„ฑ ์ด๋ฆ„๊ณผ ๊ฐ’์€ W3C CSS Scroll Snap Level 1 ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค(2026๋…„ 10์›” ๊ธฐ์ค€).

๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” ์„ ์–ธ์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•œ ๊ฒฐ๊ณผ์ด์ง€๋งŒ ์†๊ฐ€๋ฝ ์Šคํฌ๋กค์˜ ๊ด€์„ฑ๊นŒ์ง€ ์žฌํ˜„ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋„๊ตฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์บ๋Ÿฌ์…€ ์ปจํŠธ๋กค์ด๋‚˜ ์ธ๋””์ผ€์ดํ„ฐ ์ , ์ž๋™ ์žฌ์ƒ์€ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. both ์ถ•์„ ๊ณ ๋ฅด๋ฉด ๋ ˆ์ด์•„์›ƒ๊ณผ ์•„์ดํ…œ ํฌ๊ธฐ๋Š” ์ง์ ‘ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

mandatory์™€ proximity๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”?

mandatory๋Š” ์Šคํฌ๋กค์ด ๋ฉˆ์ถœ ๋•Œ๋งˆ๋‹ค ๋ฐ˜๋“œ์‹œ ๊ฐ€๊นŒ์šด ์Šค๋ƒ… ์ง€์ ์œผ๋กœ ๋‹น๊ฒจ์ง€๊ณ , proximity๋Š” ์ถฉ๋ถ„ํžˆ ๊ฐ€๊นŒ์šธ ๋•Œ๋งŒ ๋‹น๊ฒจ์ง‘๋‹ˆ๋‹ค. ๊ธด ๋ณธ๋ฌธ์—๋Š” proximity๊ฐ€ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์Šค๋ƒ…์ด ์ „ํ˜€ ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์— overflow๊ฐ€ auto๋‚˜ scroll์ด์–ด์•ผ ํ•˜๊ณ , ์•„์ดํ…œ ์ชฝ์— scroll-snap-align์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์„ ์–ธ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์š”์†Œ์— ๋“ค์–ด๊ฐ€์•ผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์ • ํ—ค๋”์— ์•„์ดํ…œ์ด ๊ฐ€๋ ค์ง‘๋‹ˆ๋‹ค.

scroll-padding ๊ฐ’์„ ํ—ค๋” ๋†’์ด๋งŒํผ ๋„ฃ์œผ๋ฉด ์Šค๋ƒ… ์ง€์ ์ด ๊ทธ๋งŒํผ ๋ฐ€๋ฆฝ๋‹ˆ๋‹ค. ์•„์ดํ…œ ์ชฝ ์—ฌ๋ฐฑ์ธ scroll-margin์œผ๋กœ๋„ ๊ฐ™์€ ์กฐ์ •์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.