繁体   English   中英

如何仅在 div 内容而不是整个正文中制作滚动条?

[英]How do I make scrollbar only at div content and not at entire body?

我有一个navbar和一个<div id='content'> 我的所有内容都在那个 div 中,当有很多内容时,滚动条会出现在主体上(将导航栏稍微推到一边),而不仅仅是在 div 内。 如何使滚动条仅在 div 内?

我试过设置overflow: 'hidden' for bodyoverflow: 'scroll' for #content selector 但它不起作用。

这是我用于测试的代码

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

<head>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
    crossorigin="anonymous">
  <title>Document</title>
  <style>
    body {
      overflow: 'hidden';
    }

    #content {
      background-color: gray;
      overflow: 'scroll';
      height: '100%'
    }

  </style>
</head>

<body>
  <nav class="navbar navbar-expand-md navbar-light bg-light">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">Navbar</a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
        aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav me-auto mb-2 mb-lg-0">
          <li class="nav-item">
            <a class="nav-link active" aria-current="page" href="#">Home</a>
          </li>
        </ul>
        <button class="btn btn-outline-success" type="submit">Search</button>
      </div>
    </div>
  </nav>
  <div id="content">
    <div class="card mx-auto mb-5" style="width: 18rem;">
      <div class=" card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">Content
        </p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
      </div>
    </div>
    <div class="card mx-auto mb-5" style="width: 18rem;">
      <div class=" card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">Content
        </p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
      </div>
    </div>
    <div class="card mx-auto mb-5" style="width: 18rem;">
      <div class=" card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">Content
        </p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
      </div>
    </div>
    <div class="card mx-auto mb-5" style="width: 18rem;">
      <div class=" card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">Content
        </p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
      </div>
    </div>
    <div class="card mx-auto mb-5" style="width: 18rem;">
      <div class=" card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">Content
        </p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
      </div>
    </div>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
    crossorigin="anonymous"></script>
</body>

</html>

像这样做你的造型。 我已将 body 和 html 限制为 100% 高度,这不会使 body 滚动,对于孩子,我使用了 flex 样式,根据父高度(假设 800px)对齐内容,使您的导航栏 60px(假设)和内容740 像素。 我在内容上添加了溢出,使内容滚动。

 html, body { height: 100%; } body { display: flex; flex-direction: column; } #content { background-color: gray; overflow: auto; }
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script> <nav class="navbar navbar-expand-md navbar-light bg-light"> <div class="container-fluid"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> </ul> <button class="btn btn-outline-success" type="submit">Search</button> </div> </div> </nav> <div id="content"> <div class="card mx-auto mb-5" style="width: 18rem;"> <div class=" card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Content </p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card mx-auto mb-5" style="width: 18rem;"> <div class=" card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Content </p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card mx-auto mb-5" style="width: 18rem;"> <div class=" card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Content </p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card mx-auto mb-5" style="width: 18rem;"> <div class=" card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Content </p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card mx-auto mb-5" style="width: 18rem;"> <div class=" card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Content </p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> </div>

这里是沙箱

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM