在视口的底部粘贴2行,与6个元素的2行粘在一起,以页面为中心和尺寸

发布于 2025-02-13 18:36:46 字数 2161 浏览 1 评论 0原文

我发现的其他答案似乎对我有用,但是无论如何我都会问。我试图将2行的6行放到页面的底部,并在页面滚动时将它们粘贴在那里。如果我像以下桌子一样这样做,它几乎可以工作。

.center {
  position: -webkit-sticky;
  /* Safari */
  position: sticky;
  bottom: 10px;
  margin-bottom: 10px;
  flex-shrink: 2;
  padding-bottom: 10px;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>

<div class="fixed-bottom center">
  <table border="1" class="center">
    <tr>
      <th>
        <h4>Val1</h4>
      </th>
      <th>
        <h4>Val2</h4>
      </th>
      <th>
        <h4>Val3</h4>
      </th>
      <th>
        <h4>Val4</h4>
      </th>
      <th>
        <h4>Val5</h4>
      </th>
      <th>
        <h4>Val6</h4>
      </th>
    </tr>
    <tr>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
    </tr>
  </table>
</div>

关于如何实现我想要的东西的任何有用的提示,都将受到感激!

谢谢

J。

None of the other answers I can find seem to work for me, but thought I'd ask anyway. I'm trying to get 2 rows of 6 elements to the bottom of the page and stick them there as the page scrolls. If I do it like the following, with a table, it almost works.

.center {
  position: -webkit-sticky;
  /* Safari */
  position: sticky;
  bottom: 10px;
  margin-bottom: 10px;
  flex-shrink: 2;
  padding-bottom: 10px;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>

<div class="fixed-bottom center">
  <table border="1" class="center">
    <tr>
      <th>
        <h4>Val1</h4>
      </th>
      <th>
        <h4>Val2</h4>
      </th>
      <th>
        <h4>Val3</h4>
      </th>
      <th>
        <h4>Val4</h4>
      </th>
      <th>
        <h4>Val5</h4>
      </th>
      <th>
        <h4>Val6</h4>
      </th>
    </tr>
    <tr>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
      <th>
        <input type="text" />
      </th>
    </tr>
  </table>
</div>

Any helpful tips on how to achieve what I want would be gratefully received!

Thanks

J

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贩梦商人 2025-02-20 18:36:46

您不需要任何外部CSS(除了我添加的垫片以证明这起作用)。我建议使用flex-box,以便当屏幕尺寸缩小而不是将它们丢失到侧面或将其缩放到输入字段太小而无法用处时,可以包装元素。

固定的部分在起作用,这实际上就是您所需要的。如果滚动,您会看到底部停留在底部。

我还建议从输入字段中删除默认填充物,以免与布局混乱,因此每个一个上的p-0

有关所使用的任何类的相关信息,请参见帮助文档: https:/ /getbootstrap.com/docs/5.0/getting-started/introduction/ 基本上有一个班级Bootstrap 5

.spacer {
  height: 1000px;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>

<body class="bg-dark">
  <div class="spacer">
  </div>
  <div class="fixed-bottom d-flex flex-wrap pt-2 pb-2 justify-content-center align-items-center w-100 border bg-light gap-3">
    <div class="row-sm">
      <h4>Val1</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val2</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val3</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val4</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val5</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val6</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
  </div>
</body>

You don't need any external CSS for this (except the spacer that I added to demonstrate that this works). I'd recommend using a flex-box so you can wrap the elements when the screen size shrinks rather than lose them to the sides or scale them down to the point where the input fields would be too small to be useful.

The fixed-bottom part was working and that's really all you need for that. If you scroll, you'll see that the bottom section stays at the bottom.

I'd also suggest removing the default padding from the input fields just so it doesn't mess with the layout, hence the p-0 on each one.

Relevant information on any of the classes used can be found in the help docs: https://getbootstrap.com/docs/5.0/getting-started/introduction/ There's basically a class for just about everything in Bootstrap 5

.spacer {
  height: 1000px;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>

<body class="bg-dark">
  <div class="spacer">
  </div>
  <div class="fixed-bottom d-flex flex-wrap pt-2 pb-2 justify-content-center align-items-center w-100 border bg-light gap-3">
    <div class="row-sm">
      <h4>Val1</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val2</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val3</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val4</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val5</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
    <div class="row-sm">
      <h4>Val6</h4>
      <input class="p-0 border-dark form-control" type="text" />
    </div>
  </div>
</body>

淡紫姑娘! 2025-02-20 18:36:46
  • set .epeatbottom to 位置:固定和set 底部:0,如您所提到/code>和当前我刚刚将其设置为0 ou可以根据您的需要增加它,并且只需给予左右的正值
.keepAtBottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #f5f5f5;
}
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
  <div class="row">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nisi nunc, vehicula nec congue sit amet, convallis non ante. Quisque tortor eros, lobortis auctor magna eu, rhoncus molestie velit. Nulla sapien enim, tristique vel vestibulum vitae, dapibus
      at nisi. Morbi tempus accumsan felis, dapibus consectetur augue varius ac. Curabitur in purus eros. Etiam a magna ipsum. Aenean est augue, congue a dui ut, pulvinar convallis est. Nam eget commodo justo. Sed malesuada metus ante, ut sodales dui
      egestas nec. Nulla sed pharetra sem. Pellentesque nec ipsum iaculis, porttitor elit et, pharetra velit. Sed id metus ultrices, vulputate nulla id, efficitur ante. Morbi eget ultrices libero. In eget commodo velit. Integer lacinia efficitur vulputate.
      Phasellus quis euismod leo. Maecenas laoreet tempor leo, at interdum purus euismod nec. Suspendisse potenti. Sed eu erat tortor. Nam dictum aliquet arcu non aliquet. Nulla non fermentum sem. Duis mollis eros ac facilisis posuere. Nullam ipsum turpis,
      bibendum a odio ut, lacinia facilisis ante. Nulla ultricies lacinia hendrerit. Aenean vitae varius lectus. Nulla facilisi. Nunc mattis pretium dui at pretium. Integer in sem pretium est tempus semper ut nec mi. Maecenas consequat ex at arcu elementum
      semper. In metus sem, tempor in consectetur in, porta nec turpis. Quisque facilisis nisi at ultrices aliquet. Aliquam vitae nisi quis eros condimentum sodales. Suspendisse quis auctor mauris. Aliquam aliquam neque sit amet urna venenatis, in tristique
      lorem condimentum. Suspendisse nibh quam, pellentesque ac mi porttitor, faucibus sagittis elit. Nam cursus nunc eget ligula fringilla, non pretium lacus porta. Vestibulum maximus elit id euismod convallis. Morbi molestie mi sem, non tincidunt libero
      scelerisque sed. Donec mattis sed massa eu maximus. Sed pulvinar eu libero sed rutrum. Mauris tristique tellus gravida libero varius cursus. Proin convallis elit in dui aliquam, a euismod erat imperdiet. Donec pharetra tempus nisi, a congue urna
      cursus congue. Sed semper accumsan sem et viverra. Sed convallis sodales nisl, sed vulputate erat lacinia ac. Quisque nunc lectus, finibus nec nunc in, ultrices bibendum justo. Curabitur elit erat, iaculis ac justo in, iaculis consectetur nibh.
      Pellentesque consequat enim in turpis tincidunt consequat. Suspendisse faucibus purus tellus, hendrerit molestie magna volutpat a. Nullam egestas pulvinar diam, ut dictum sapien faucibus a. Ut sit amet ornare mauris. Nam eget dui in quam faucibus
      porttitor. Nulla sodales nulla nulla, sit amet pretium ipsum aliquet vitae. Vivamus laoreet commodo aliquet. Proin vitae mauris malesuada, vulputate risus a, semper risus. Nullam nec luctus dui, non pharetra neque. Morbi mauris neque, aliquam gravida
      velit quis, molestie viverra nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce imperdiet ultricies mauris a tempus. Maecenas nec diam ut ante viverra pulvinar non eget arcu. Sed dui justo, varius
      et arcu nec, hendrerit tempor arcu. Sed ornare at sem in pharetra. Vivamus vitae mi et quam fringilla convallis. Nam tempor, nunc eu porttitor pellentesque, diam nisl condimentum lectus, eget ultricies quam nulla eget odio. Sed vehicula purus sem,
      nec mollis sem luctus eget. Proin porta nulla gravida, tempus leo et, porttitor elit. Suspendisse sit amet pretium justo, at convallis mauris. Nullam sit amet nisl maximus, pellentesque nulla non, consectetur odio. Nam sed nulla sit amet felis mattis
      rhoncus. Proin dui odio, finibus at vehicula in, gravida nec lacus. Sed sit amet cursus arcu. Nullam pharetra sed eros id pellentesque. Ut laoreet iaculis luctus. Praesent sed lorem sem. Vestibulum quis libero euismod, bibendum dolor ut, finibus
      tortor. Pellentesque in pulvinar tortor. Cras vitae luctus elit. Nunc turpis ipsum, finibus at viverra non, ornare et diam. Cras finibus mattis lacus, vel scelerisque orci maximus quis. Class aptent taciti sociosqu ad litora torquent per conubia
      nostra, per inceptos himenaeos. Vivamus sem arcu, viverra vel scelerisque quis, maximus interdum ante. Aliquam auctor leo sed massa aliquet, pulvinar tempor diam malesuada. Sed hendrerit nibh id tellus molestie, at aliquam elit pharetra. Maecenas
      et feugiat ipsum. Duis sed nunc ipsum. Vestibulum at arcu ipsum. Nulla at orci erat. Donec vestibulum, risus vitae placerat ullamcorper, libero ligula laoreet felis, a condimentum mi purus vitae risus. Nam diam magna, mattis et finibus at, placerat
      sed leo. Donec quis elementum nibh. Donec luctus interdum ex, non malesuada mi eleifend eu. Nunc laoreet in arcu ac dignissim. Vivamus efficitur sed purus vel iaculis. Mauris sit amet lobortis mauris. Mauris lobortis sodales lacus sed vehicula.
      Suspendisse potenti. Mauris lobortis urna eu ligula pretium porta. In bibendum a risus nec sagittis. Nullam eget consectetur lectus. In ex sapien, tempus eget magna vel, tempor porta tortor. Fusce id dignissim ex. Cras finibus libero vitae fringilla
      pretium.
    </p>
  </div>
  <div class="row keepAtBottom">
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" />
    </div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
  </div>
</div>

  • Set .keepAtBottom to position:fixed and set bottom:0 and as u have mentioned you can set same value to both left and right currently I have just set it to 0 ou can increase it as per your need and just give same positive value to both left and right

.keepAtBottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #f5f5f5;
}
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
  <div class="row">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nisi nunc, vehicula nec congue sit amet, convallis non ante. Quisque tortor eros, lobortis auctor magna eu, rhoncus molestie velit. Nulla sapien enim, tristique vel vestibulum vitae, dapibus
      at nisi. Morbi tempus accumsan felis, dapibus consectetur augue varius ac. Curabitur in purus eros. Etiam a magna ipsum. Aenean est augue, congue a dui ut, pulvinar convallis est. Nam eget commodo justo. Sed malesuada metus ante, ut sodales dui
      egestas nec. Nulla sed pharetra sem. Pellentesque nec ipsum iaculis, porttitor elit et, pharetra velit. Sed id metus ultrices, vulputate nulla id, efficitur ante. Morbi eget ultrices libero. In eget commodo velit. Integer lacinia efficitur vulputate.
      Phasellus quis euismod leo. Maecenas laoreet tempor leo, at interdum purus euismod nec. Suspendisse potenti. Sed eu erat tortor. Nam dictum aliquet arcu non aliquet. Nulla non fermentum sem. Duis mollis eros ac facilisis posuere. Nullam ipsum turpis,
      bibendum a odio ut, lacinia facilisis ante. Nulla ultricies lacinia hendrerit. Aenean vitae varius lectus. Nulla facilisi. Nunc mattis pretium dui at pretium. Integer in sem pretium est tempus semper ut nec mi. Maecenas consequat ex at arcu elementum
      semper. In metus sem, tempor in consectetur in, porta nec turpis. Quisque facilisis nisi at ultrices aliquet. Aliquam vitae nisi quis eros condimentum sodales. Suspendisse quis auctor mauris. Aliquam aliquam neque sit amet urna venenatis, in tristique
      lorem condimentum. Suspendisse nibh quam, pellentesque ac mi porttitor, faucibus sagittis elit. Nam cursus nunc eget ligula fringilla, non pretium lacus porta. Vestibulum maximus elit id euismod convallis. Morbi molestie mi sem, non tincidunt libero
      scelerisque sed. Donec mattis sed massa eu maximus. Sed pulvinar eu libero sed rutrum. Mauris tristique tellus gravida libero varius cursus. Proin convallis elit in dui aliquam, a euismod erat imperdiet. Donec pharetra tempus nisi, a congue urna
      cursus congue. Sed semper accumsan sem et viverra. Sed convallis sodales nisl, sed vulputate erat lacinia ac. Quisque nunc lectus, finibus nec nunc in, ultrices bibendum justo. Curabitur elit erat, iaculis ac justo in, iaculis consectetur nibh.
      Pellentesque consequat enim in turpis tincidunt consequat. Suspendisse faucibus purus tellus, hendrerit molestie magna volutpat a. Nullam egestas pulvinar diam, ut dictum sapien faucibus a. Ut sit amet ornare mauris. Nam eget dui in quam faucibus
      porttitor. Nulla sodales nulla nulla, sit amet pretium ipsum aliquet vitae. Vivamus laoreet commodo aliquet. Proin vitae mauris malesuada, vulputate risus a, semper risus. Nullam nec luctus dui, non pharetra neque. Morbi mauris neque, aliquam gravida
      velit quis, molestie viverra nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce imperdiet ultricies mauris a tempus. Maecenas nec diam ut ante viverra pulvinar non eget arcu. Sed dui justo, varius
      et arcu nec, hendrerit tempor arcu. Sed ornare at sem in pharetra. Vivamus vitae mi et quam fringilla convallis. Nam tempor, nunc eu porttitor pellentesque, diam nisl condimentum lectus, eget ultricies quam nulla eget odio. Sed vehicula purus sem,
      nec mollis sem luctus eget. Proin porta nulla gravida, tempus leo et, porttitor elit. Suspendisse sit amet pretium justo, at convallis mauris. Nullam sit amet nisl maximus, pellentesque nulla non, consectetur odio. Nam sed nulla sit amet felis mattis
      rhoncus. Proin dui odio, finibus at vehicula in, gravida nec lacus. Sed sit amet cursus arcu. Nullam pharetra sed eros id pellentesque. Ut laoreet iaculis luctus. Praesent sed lorem sem. Vestibulum quis libero euismod, bibendum dolor ut, finibus
      tortor. Pellentesque in pulvinar tortor. Cras vitae luctus elit. Nunc turpis ipsum, finibus at viverra non, ornare et diam. Cras finibus mattis lacus, vel scelerisque orci maximus quis. Class aptent taciti sociosqu ad litora torquent per conubia
      nostra, per inceptos himenaeos. Vivamus sem arcu, viverra vel scelerisque quis, maximus interdum ante. Aliquam auctor leo sed massa aliquet, pulvinar tempor diam malesuada. Sed hendrerit nibh id tellus molestie, at aliquam elit pharetra. Maecenas
      et feugiat ipsum. Duis sed nunc ipsum. Vestibulum at arcu ipsum. Nulla at orci erat. Donec vestibulum, risus vitae placerat ullamcorper, libero ligula laoreet felis, a condimentum mi purus vitae risus. Nam diam magna, mattis et finibus at, placerat
      sed leo. Donec quis elementum nibh. Donec luctus interdum ex, non malesuada mi eleifend eu. Nunc laoreet in arcu ac dignissim. Vivamus efficitur sed purus vel iaculis. Mauris sit amet lobortis mauris. Mauris lobortis sodales lacus sed vehicula.
      Suspendisse potenti. Mauris lobortis urna eu ligula pretium porta. In bibendum a risus nec sagittis. Nullam eget consectetur lectus. In ex sapien, tempus eget magna vel, tempor porta tortor. Fusce id dignissim ex. Cras finibus libero vitae fringilla
      pretium.
    </p>
  </div>
  <div class="row keepAtBottom">
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" />
    </div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
    <div class="col-4">
      <h1>value
      </h1>
      <input type="text" class="form-control" /></div>
  </div>
</div>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文