gpt4 book ai didi

javascript - 如何在不引入另一个滚动条的情况下使固定侧边栏可通过主滚动条滚动?

转载 作者:行者123 更新时间:2023-11-28 16:08:14 25 4
gpt4 key购买 nike

我有一个具有以下样式的侧边栏

.side-bar{
overflow: auto;
position: fixed;
}

现在由于这个侧边栏在垂直方向上比屏幕长度长,浏览器在侧边栏旁边引入了另一个垂直滚动条。

这并不理想。

有没有办法通过相同的垂直滚动控制主要内容和侧边栏?

最佳答案

您能看出这是否是您要寻找的效果吗?为简单起见,它仅显示 1 个元素(一个 div)用作右侧的固定栏。此设置为您提供了一个滚动条,但滚动条仅属于 div。页面主体本身是不可滚动的,因此如果主体内容过多,溢出将不可见。

要测试下面的小示例,您需要向 div 添加一堆文本以强制其垂直展开。

<html>

<head>
<style>
body {
overflow: hidden;
height: 100%;
border: dotted 1px #00ff00;
}
div {
float:right;
margin: 0 0 0 2em;
max-height: 100%;
overflow: auto;
width: 5em;
border: dotted 1px #ff0000;
}
</style>
</head>

<body>

<div>
This is the scrollable side bar. Add a bunch of text here to force the height to expand.
</div>

This is the main body. If you add a bunch of text here, you'll see how the overflow is cut off and a 2nd scroll bar does not appear.
</body>

</html>

这里是CSS的解释...

正文元素

  • overflow:hidden 防止滚动条出现在主页上。
  • height:100% 设置主体高度以匹配窗口高度。
  • border:dotted 1px #00ff00 仅添加以更清楚地显示 body 元素的周长。

DIV 元素

  • float:right 将 div 移动到页面的右上角。您也可以使用固定定位,但这可以防止正文内容在 div 下方流动。
  • ma​​rgin:0 0 0 2em 防止 div 太靠近正文内容。
  • ma​​x-height:100% 确保栏不能展开超过窗口高度,强制出现滚动条
  • overflow:auto 当div内容超过div高度时使div显示滚动条
  • width:5em 防止 div 填满窗口的整个宽度
  • border:dotted 1px #ff0000 显示div的边界

编辑:上面的原始 CSS 在 quirks 模式下工作,但滚动条无法出现在 HTML5 文档类型中。解决方法是使用固定定位而不是 float 定位。或者在侧边栏 div 上设置绝对高度(而不是主体高度的百分比),以便侧边栏的高度不依赖于主体元素的高度。

我觉得问题是这样的:body元素有一个“hidden”的溢出来阻止滚动条的出现。但是,具有 overflow 而非 visible 的元素将根据需要垂直扩展以包含任何 float 内容。因此,侧栏 div 上的“max-height:100%”是没有意义的,因为 body 元素将扩展到 div 需要的任何高度。在 div 上使用固定定位可防止主体无限扩展以包含 float 元素。或者,使用绝对 div 高度,限制 float div 的高度,即使 body 元素不能。

关于javascript - 如何在不引入另一个滚动条的情况下使固定侧边栏可通过主滚动条滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com