Horje
How To Always Show Scrollbars with CSS?

Scrollbars are an essential part of web design, allowing users to navigate through content that exceeds the viewport’s dimensions. By default, most browsers only display scrollbars when necessary, hiding them when all content fits within the visible area. However, there are situations where you might want to ensure scrollbars are always visible, regardless of content length. This article explores various CSS techniques to achieve this effect, providing a consistent user experience across different devices and browsers.

1. Using ‘overflow’ Property

The simplest method to always display scrollbars is by using the overflow property in CSS. This property controls the behaviour of scrollbars in an element.

Approach

  • Define a container element in your HTML (e.g., a div).
  • Specify the width and height of the container in your CSS to restrict its size.
  • Add a border to clearly outline the container’s boundaries
  • In your CSS, add overflow: scroll to guarantee scrollbars are always displayed.
  • Insert content inside the container that might overflow its boundaries to activate the scrollbars.
  • Open the HTML file in a browser to check that the scrollbars are always visible, even if the content does not overflow.

Example: Illustration of ‘overflow: scroll’

HTML
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Always Show Scrollbars</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
        body {
            height: 200vh;
            background-color: #f0f0f0;
        }

        .content {
            width: 300px;
            height: 150px;
            border: 1px solid #000;
            overflow: scroll;
            margin: 50px auto;
            padding: 10px;
            background-color: #fff;
        }

        h1,
        h3 {
            text-align: center;
            font-size: 40px;
            color: rgb(18, 96, 18);
        }

        p {
            font-size: 16px;
        }
    </style>
</head>

<body>
    <h1>GeeksforGeeks</h1>
    <h3>Always Show Scrollbars</h3>
    <div class="content">
        <p>
            The overflow property in CSS is a critical aspect of web design,
            particularly when it comes to managing content that extends beyond the
            dimensions of its container. By setting the overflow property to
            'scroll', developers can ensure that scrollbars are always visible,
            providing users with clear indications that more content is available.
            This is especially useful for fixed-size containers where dynamic
            content might overflow. Consistent visibility of scrollbars improves
            user experience by making navigation more intuitive and content
            accessibility more predictable.
        </p>
    </div>
</body>

</html>


Output

A scrollable container with permanent scrollbars.

2. Using Custom Scrollbars with ‘::-webkit-scrollbar’

Customizing scrollbars using the ‘::-webkit-scrollbar’ pseudo-element can enhance the appearance and ensure they are always present.

Approach

  1. Define a container element in your HTML (e.g., a div).
  2. Specify the width and height of the container in your CSS to restrict its size.
  3. Outline the container with a visible border.
  4. Utilize CSS to specify ‘overflow: scroll’, ensuring scrollbars remain constantly visible.
  5. Customize Scrollbar:
  • Use ‘::-webkit-scrollbar’ to set the dimensions of the scrollbar.
  • Use ‘::-webkit-scrollbar-track’ to personalize the appearance and background of the scrollbar track.
  • Use ‘::-webkit-scrollbar-thumb’ to style the draggable part of the scrollbar.
  • Use ‘::-webkit-scrollbar-thumb:hover’ to define the appearance of the scrollbar thumb when it is hovered over.

7. Add content that may exceed the container’s limits to activate the scrollbars.

8. Open the HTML file in a browser to check that the custom scrollbars are visible and styled as expected.

Example: Illustration of Custom Scrollbars with ‘::-webkit-scrollbar’

HTML
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Custom Scrollbars</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
        .content {
            width: 300px;
            height: 150px;
            border: 1px solid #000;
            overflow: scroll;
            margin: 50px auto;
            padding: 10px;
            background-color: #fff;
        }

        .content::-webkit-scrollbar {
            width: 12px;
        }

        .content::-webkit-scrollbar-track {
            background: #f1f1f1;
        }

        .content::-webkit-scrollbar-thumb {
            background: #1d3f17;
        }

        .content::-webkit-scrollbar-thumb:hover {
            background: #3f7c4a;
        }

        h1,
        h3 {
            text-align: center;
            font-size: 30px;
            color: rgb(18, 96, 18);
        }

        p {
            font-size: 16px;
        }
    </style>
</head>

<body>
    <h1>GeeksforGeeks</h1>
    <h3>Custom Scrollbars</h3>
    <div class="content">
        <p>
            Custom scrollbars provide a unique touch to web pages, enhancing the
            overall aesthetic and user experience. By using the ::-webkit-scrollbar
            pseudo-element, developers can modify the width, height, track, and
            thumb of the scrollbars. This allows for a more integrated and visually
            appealing design. It is particularly useful for creating a consistent
            look and feel across different browsers that support the WebKit
            rendering engine.
        </p>
    </div>
</body>

</html>


Output

A scrollable container with custom-styled scrollbars, ensuring they are always visible.

3. Applying Scrollbars to Specific Elements

Scrollbars can be applied to specific elements, such as ‘div’, ‘textarea’, or other block-level elements, to control overflow behavior and ensure that scrollbars are visible when needed.

Approach

  • Select the HTML element to which you want to apply scrollbars.
  • Define the width and height of the element to create a fixed-size container.
  • Use ‘overflow: scroll’ for constant scrollbar visibility or ‘overflow: auto’ for dynamic display
  • Add enough content to the container to test scrollbar functionality.
  • Check the behavior in different browsers to ensure scrollbars appear and function as expected.

Example: Illustration of Applying Scrollbars to Specific Elements

HTML
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Applying Scrollbars to Specific Elements</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body {
            background-color: #ffff;
        }

        .scrollable-box {
            width: 300px;
            height: 150px;
            border: 1px solid #000;
            overflow: scroll;
            margin: 50px auto;
            padding: 10px;
            background-color: #fff;
        }

        h1,
        h3 {
            text-align: center;
            font-size: 30px;
            color: rgb(18, 96, 18);
        }

        p {
            font-size: 16px;
        }
    </style>
</head>

<body>
    <h1>GeeksforGeeks</h1>
    <h3>Applying Scrollbars to Specific Elements</h3>
    <div class="scrollable-box">
        <p>
            Scrollbars can be applied to specific elements by setting the `overflow` property in CSS. This property
            allows you to control how content that exceeds the container's boundaries is handled. By setting `overflow`
            to `scroll`, you ensure that scrollbars are always visible, providing a consistent user experience. This
            method is useful for containers with dynamic or unknown content sizes, ensuring users can always access all
            content within the element.
        </p>
        <p>
            Additional content to ensure scrolling happens. Scrollbars will appear when the content overflows the
            defined height and width of the container. This approach helps in managing space effectively and ensuring
            users can navigate through all content without any issues.
        </p>
    </div>
</body>

</html>


Output

A scrollable box is created with a fixed width and height. The overflow: scroll property is applied to ensure scrollbars are always visible. This approach helps manage content overflow and improve user navigation.





Reffered: https://www.geeksforgeeks.org


CSS

Related
How to Center a Flex Container but Left-Align Flex Items? How to Center a Flex Container but Left-Align Flex Items?
How to Create a Navigation Bar with CSS Flexbox? How to Create a Navigation Bar with CSS Flexbox?
How to Prevent Flexbox Shrinking in CSS? How to Prevent Flexbox Shrinking in CSS?
Understanding Fluid Layouts in Web Design, How to Use it? Understanding Fluid Layouts in Web Design, How to Use it?
How to Stretch Elements to Fit the Whole Height of the Browser Window Using CSS? How to Stretch Elements to Fit the Whole Height of the Browser Window Using CSS?

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
48