ChatGPT解决这个技术问题 Extra ChatGPT

如何使 div 上的滚动条仅在必要时可见?

我有这个 div:

<div style='overflow:scroll; width:400px;height:400px;'>here is some text</div>

滚动条始终可见,即使文本没有溢出。我想让滚动条仅在必要时可见 - 也就是说,仅当框中有足够的文本需要它们时才可见。就像 textarea 一样。我该怎么做呢?或者是我唯一的选择来设置文本区域的样式,让它看起来像一个 div?

那这个呢。悬停时仅显示滚动条。不确定这对您是否有用。 stackoverflow.com/questions/7125185/…
codepen.io/anon/pen/QwLeMG 希望这可以帮助您
overflow: auto; 不适用于 Android :-(

H
Hidde

使用 overflow: auto。滚动条只会在需要时出现。

(旁注,您也可以仅指定 x 或 y 滚动条:overflow-x: autooverflow-y: auto)。


请注意,溢出-y 仅在您指定 max-height 时才有效
溢出-y 不需要最大高度。我从未将 max-height 与 overflow-y 一起使用,并且每次都有效。
@Sumafu,您可能需要它,这取决于我现在可以体验到的情况。
如果您在溢出元素上使用 absolutefixed 位置,则需要设置 heightmax-height,因为它们会阻止元素根据页面或视口边界调整大小。
k
kleinohad

尝试这个:

<div style='overflow:auto; width:400px;height:400px;'>here is some text</div>

p
pbaris

尝试

<div style='overflow:auto; width:400px;height:400px;'>here is some text</div>

G
GrvTyagi

尝试

<div id="boxscroll2" style="overflow: auto; position: relative;" tabindex="5001">

S
Showrin Barua

将 CSS blockoverflow 属性更改为 auto

overflow: auto;

只有在需要时,它才会在左侧自动添加滚动条。


S
Shailendra Kumar

我发现 div 的高度仍然显示,无论是否有文本。因此,您可以使用它来获得最佳效果。

<div style=" overflow:auto;max-height:300px; max-width:300px;"></div>

P
Papun Sahoo

您可以尝试以下一种:

  <div style="width: 100%; height: 100%; overflow-x: visible; overflow-y: scroll;">Text</div>

谢谢,这很有帮助。如果您没有特定的高度/宽度(更动态的 UI),此解决方案效果最佳。
k
khizer

Stackblitz Playgrond

<!DOCTYPE html>
<html>

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
    #scrollable-content {
        background: #eee;
        height: 150px;
        width: 400px;
        overflow-y: scroll;
    }
    </style>
</head>

<body>
    <div id="original-content"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. </div>
    <br />
    <div id="scrollable-content"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. </div>
</body>

</html>