首页 > web前端 > css教程 > 正文

如何利用浏览器的滚动条让侧边栏独立滚动?

Barbara Streisand
发布: 2024-11-11 06:53:02
原创
804 人浏览过

How to Make a Sidebar Scroll Independently Using the  Browser's Scrollbar?

如何使用浏览器的滚动条滚动特定的DIV内容

简介

许多网站,像 Gizmodo 一样,有一个布局,其中部分内容随浏览器的主滚动条滚动,而其他部分保持固定。虽然这看起来很复杂,但完全可以通过 CSS 来实现。

解决方案

要创建这种效果,我们需要考虑几个方面:

  • 水平居中:确保整体布局在浏览器窗口内水平居中。
  • 主要内容滚动:允许左侧主要内容滚动垂直使用主滚动条。
  • 固定侧边栏:将右侧侧边栏固定在窗口顶部,除非将鼠标悬停在其上。
  • 滚动溢出: 当鼠标悬停在侧边栏上时启用滚动,允许其使用自己的滚动条。

实现

CSS:

html, body, * {
    padding: 0;
    margin: 0;
}

.wrapper {
    min-width: 500px;
    max-width: 700px;
    margin: 0 auto;
}

#content {
    margin-right: 260px; /* = sidebar width + some white space */
}

#overlay {
    position: fixed;
    top: 0;
    width: 100%;
    height: 100%;
}

#overlay .wrapper {
    height: 100%;
}

#sidebar {
    width: 250px;
    float: right;
    max-height: 100%;
}

#sidebar:hover {
    overflow-y: auto;
}

#sidebar>* {
    max-width: 225px; /* leave some space for vertical scrollbar */
}
登录后复制

标记:

<div class="wrapper">
    <div>
登录后复制

说明:

  • 包装: 为主要内容和侧边栏提供固定宽度的容器。
  • 内容: 定义主要可滚动内容。
  • 叠加: 创建一个覆盖整个浏览器视口的固定元素,确保即使主要内容滚动时侧边栏仍然可见。
  • 侧边栏: 将侧边栏定位在右侧并允许它仅在悬停时滚动。

防止侧边栏悬停时滚动

如果需要,可以通过修改HTML 结构和 CSS:

CSS:

#wrapper {
    min-width: unset;
    max-width: unset;
    height: 100%;
}

#content {
    margin-right: 0;
}

#sidebar {
    position: fixed;
    top: 0;
}
登录后复制

标记:

<div>
登录后复制

以上是如何利用浏览器的滚动条让侧边栏独立滚动?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板