CSS CSS Tutorial CSS Advanced CSS Responsive Web Design(RWD) CSS Grid CSS Properties Sass Tutorial Sass Functions



overscroll-behavior-x

Overscroll-behavior-x is a CSS property that controls the behavior of horizontal scrolling when the content of an element overflows its container. It specifies whether or not to allow the browser to display a "rubber band" effect when the user tries to scroll past the edge of the content. This property is particularly useful for touch devices, where users can easily swipe horizontally to scroll through content.

The overscroll-behavior-x property can have three possible values:

  • auto: The default value. Allows the browser to display the rubber band effect when the user tries to scroll past the edge of the content.
  • contain: Prevents the rubber band effect and allows the user to scroll only within the container.
  • none: Completely disables horizontal scrolling and prevents the rubber band effect.

Here are some examples of how to use the overscroll-behavior-x property:

Example 1: Using overscroll-behavior-x with auto value

In this example, the overscroll-behavior-x property is set to auto, which allows the browser to display the rubber band effect when the user tries to scroll past the edge of the content:

  <div style="width: 300px; height: 200px; overflow-x: scroll; overscroll-behavior-x: auto;">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, velit eget bibendum bibendum, elit elit bibendum elit, euismod elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

``` CSS: ``` .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; height: 100vh; } .col-md-4 { width: 33.33%; padding: 10px; box-sizing: border-box; } .col-md-4 img { width: 100%; height: auto; } @media (max-width: 768px) { .col-md-4 { width: 100%; } } ``` ```

Heading 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

Heading 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

``` injecthandle 2021-06-08: You can consider a pseudo element to create the border and rely on `background-clip` to create the gradient effect: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 10px solid #fff; box-sizing: border-box; z-index: 1; } .box img { display: block; width: 100%; height: 100%; object-fit: cover; z-index: -1; } ``` ```
``` Or use `mask` to create the same effect: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-mask: linear-gradient(to right, transparent 10px, #fff 10px); mask: linear-gradient(to right, transparent 10px, #fff 10px); } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```
``` Or use `clip-path` to create the same effect: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; clip-path: polygon(0 0, calc(100% - 20px) 0, calc(100% - 20px) 100%, 0 100%); } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```
``` You can also use `mask-image` to create the same effect: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-mask-image: linear-gradient(to right, transparent 10px, #fff 10px); mask-image: linear-gradient(to right, transparent 10px, #fff 10px); } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```
``` All the above methods will give you the same output. You can choose any of them based on your preference. injecthandle 2021-06-22: Here is another idea using `clip-path` and `mask-image` to create the same effect: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; clip-path: polygon(0 0, calc(100% - 20px) 0, calc(100% - 20px) 100%, 0 100%); -webkit-mask-image: linear-gradient(to right, transparent 10px, #fff 10px); mask-image: linear-gradient(to right, transparent 10px, #fff 10px); } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```
``` And here is another idea using `clip-path` and `background-clip`: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; clip-path: polygon(0 0, calc(100% - 20px) 0, calc(100% - 20px) 100%, 0 100%); background: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```
``` And here is another idea using `linear-gradient` and `mask-image`: ``` .box { width: 200px; height: 200px; background: linear-gradient(to right, red, blue); position: relative; overflow: hidden; } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-mask-image: linear-gradient(to right, transparent 10px, #fff 10px); mask-image: linear-gradient(to right, transparent 10px, #fff 10px); } .box img { display: block; width: 100%; height: 100%; object-fit: cover; } ``` ```


Share via:

Activity