margin은 엘리먼트의 위치를 조정할뿐 wrapper의 크기를 확장시켜주지 않는다. 그래서 overflow: scroll일때 margin 값이 먹지 않는다.
다음과 같은 슈도 코드를 이용해서 해결할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| .wrapper { display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; border: 1px grey solid; }
.item { width: 200px; position: relative; margin-right: 20px; border: 1px red solid; flex-shrink: 0; }
.item:last-child:after { content: ""; display: block; position: absolute; right: -20px; width: 20px; height: 20px; }
|
1 2 3 4 5 6 7 8 9 10
| <div class="wrapper"> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> <div class="item">안녕</div> </div>
|
Reference
https://blog.alexandergottlieb.com/overflow-scroll-and-the-right-padding-problem-a-css-only-solution-6d442915b3f4