【问题标题】:Bootstrap 4 full screen page with fix footer and nav: content doesn't fill and overflow带有修复页脚和导航的 Bootstrap 4 全屏页面:内容不会填充和溢出
【发布时间】:2020-12-04 02:21:37
【问题描述】:

我正在尝试构建一个带有导航栏和页脚的模板页面,我可能会在主 div(容器流体)中添加稍后的列,但我遇到了两个问题。 页脚是我用作日志空间的 div。它固定在底部,每次我在页面上执行操作时都会用日志填充它。内容可能会变得大于可用空间并出现滚动条。导航栏是标准的导航栏。 当我尝试用随机数据或文本区域填充容器时出现问题。主 div(和主体)大于主视图并溢出页脚。 我做错了什么?

这里是 jsfiddle:link

请注意,这两个部分被着色只是为了查看问题。浅青色部分应该填满页脚上方的屏幕,或者至少在它碰到它时不会增长(你可以通过增长 textarea 来测试它)。

我的第一个想法是将 html 和 body 设置为 100% 高度,忽略 navbar(不确定其高度)将页脚保留为固定高度(需要这种方式才能将其用作记录器)并计算主 div 高度.它不起作用。请注意,部分代码来自 bootstrap 网站的示例。

<body>
 <header>
  <nav></nav>
 </header>
 <div class="container-fluid">textarea and columns here</div>
 <footer>
  <div class="content">connecting..</div>
 </footer>  
</body>

【问题讨论】:

  • 位置:固定在页脚 - 这有帮助吗?
  • @AlwaysHelping 我正在尝试使用马汉的答案,但它仍然存在页脚增长问题。

标签: css bootstrap-4


【解决方案1】:
  1. 将body的所有内容包裹在一个flex的容器中,它的flex-direction是column。
  2. 主容器的所有父容器都需要有 100% 的高度。
  3. 在主容器上使用.flex-grow-1,以便占用所有可用空间。
  4. 隐藏主容器溢出
  5. 主容器的直接子级滚动溢出。它必须是所有主要内容的父级。

body,
html {
  height: 100%;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-scroll {
  overflow: scroll;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="d-flex flex-column h-100">
  <header class="container-fluid">
    <div class="row">
      <div class="col-12 p-5 bg-primary">
      </div>
    </div>
  </header>
  <main class="container-fluid flex-grow-1 overflow-hidden">
    <div class="row h-100 overflow-auto">
      <div class="col bg-danger">
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Perspiciatis totam corporis alias qui repellendus optio consectetur nihil suscipit ipsa dolorem in ab, illo, hic placeat iste necessitatibus eum accusamus magni! Perspiciatis, itaque dolore, veritatis
        et sequi obcaecati ipsum fuga deserunt laborum assumenda ducimus facilis pariatur explicabo? Ex veritatis placeat minus enim iure ea deserunt ut optio. Est odio a omnis! Veritatis laborum sit, ea laboriosam nihil laudantium numquam ab modi ipsam
        doloribus obcaecati consectetur nam magnam non sequi illum vero facilis voluptatibus quibusdam unde sunt sapiente! Pariatur adipisci nostrum deserunt! Dolorem assumenda inventore nisi eligendi officia rerum nostrum ea voluptates esse atque deserunt
        culpa ex nobis quod est, fugit molestias recusandae sint iusto ut rem cum itaque dolor magnam. Eligendi! Hic porro incidunt iure culpa necessitatibus repellendus inventore laboriosam expedita neque consectetur. Reprehenderit assumenda minima eum
        laboriosam impedit, omnis esse molestias vero ut? Totam corrupti dolore excepturi fugit dolorum aliquid. Provident blanditiis quasi expedita excepturi ipsa dicta odit, aspernatur ad quisquam illo? Dolores perspiciatis magnam nulla odio rerum tenetur
        inventore fuga. Quo sed eius sapiente, et eligendi blanditiis repellendus saepe! Commodi ipsa explicabo tempore. Dolor voluptas consequuntur amet vero harum nesciunt veritatis placeat? Dolorem ducimus a temporibus perspiciatis cum ipsum tempora
        recusandae unde, repudiandae, nostrum esse magnam velit, consequatur debitis! Quos, ad quaerat optio cumque dolorum facere excepturi eligendi quod rerum suscipit adipisci sapiente animi? Consectetur excepturi tempora nemo libero facere pariatur
        assumenda quisquam porro. In sint voluptas at maxime. Facilis eveniet voluptatem voluptas, libero saepe autem nulla sequi ducimus id quisquam quos aperiam reiciendis ipsa! Nesciunt quae, delectus laboriosam dicta nostrum dolorem inventore rerum
        tempore assumenda animi numquam architecto. Ab ullam amet dolorum impedit debitis id tenetur, nesciunt, exercitationem ut natus a consequuntur harum. Modi illum assumenda earum deserunt voluptatum, non minima hic ad voluptate ullam quae maxime
        expedita? Numquam rem blanditiis, ducimus commodi assumenda corrupti odit mollitia iure inventore molestiae velit quod. Itaque architecto dolores optio voluptatum porro saepe maxime, magnam, perspiciatis amet repellendus fuga eum earum voluptas?
        Quasi sunt, hic consequatur non dolor dolorem, impedit perferendis autem minus labore ea maiores distinctio laudantium eaque quis optio illum voluptatem repudiandae blanditiis magni, repellat et accusamus amet! Aliquid, amet. Deserunt voluptatem
        at excepturi odit maiores quas aut enim consequuntur obcaecati architecto. Fuga nulla maiores vel maxime? Totam a adipisci libero qui, dolore velit rerum optio animi voluptate facilis? Quisquam? Aperiam, quis est pariatur accusantium nulla sed
        minima vel quae facilis, fugiat non qui amet velit quas beatae cupiditate eius sit possimus repellat. Mollitia incidunt magnam et enim, aut doloribus. Dignissimos, a non. Praesentium cupiditate corporis quis harum reprehenderit doloremque fugit
        natus, laudantium rem, facere explicabo aut neque modi? Omnis id minima alias explicabo recusandae ut. Dolorem repellat exercitationem laudantium! Doloremque ea molestias, ratione iure fuga distinctio beatae sit eveniet similique animi excepturi
        non error provident rem amet ullam tempora cum recusandae, eum velit harum? Aut quos hic corporis et. Illum quia dolore, numquam reprehenderit consequuntur officia incidunt ea voluptatum quae, ipsum labore a omnis hic sed necessitatibus impedit.
        Aspernatur quo nam expedita tenetur quibusdam rerum iste ab odio illo. Autem facere fuga aliquam asperiores eius saepe, qui aut amet ratione harum alias tenetur quia, earum expedita voluptate dolor, cumque porro ex nobis eveniet distinctio blanditiis?
        A voluptate eius delectus? Quasi, illum ut quibusdam vitae molestias atque a, modi adipisci similique distinctio cum at animi, aut pariatur consequuntur ad enim dolore? Sit aliquam dignissimos sunt ducimus nihil itaque non reprehenderit? Iure
        error deleniti distinctio esse nam vel nulla aliquid porro consequuntur eius architecto rerum soluta quod ex dolorem at ducimus, quam odio sapiente! Unde dignissimos ratione quas dicta dolorum qui! Error dignissimos eius cupiditate, ipsam labore
        illo. Eos repudiandae, beatae assumenda laboriosam minima veniam dolorum consequatur pariatur neque quidem inventore animi rerum nemo ipsa ut aliquid fuga eaque? Blanditiis, aliquid. Modi placeat nemo quos soluta suscipit? Rem necessitatibus dolorem
        maiores culpa ducimus accusamus cumque sequi qui unde iste aspernatur labore officiis nisi debitis itaque blanditiis tempora, eveniet consectetur! Nesciunt, quam! Obcaecati, quis odit sint beatae reiciendis suscipit labore et eaque pariatur velit,
        ut inventore! Fuga, repudiandae iste, voluptatem corrupti quibusdam error illum quas fugiat asperiores ea omnis ratione qui soluta! Dignissimos ab voluptate accusantium autem facilis architecto, illo sapiente mollitia minima praesentium recusandae
        enim officia officiis unde tempore neque repudiandae perferendis tenetur suscipit eos commodi quis dolorum! Explicabo, odio beatae? Doloribus dolore asperiores eveniet, facere corporis magni aliquid, ratione ipsa minima consequuntur, quos nam
        enim officiis repudiandae voluptatem. Animi assumenda, deserunt placeat labore iusto eos quisquam officiis architecto nobis explicabo. Repudiandae minima facere laboriosam itaque inventore unde non optio praesentium eligendi voluptates culpa et
        corrupti aperiam tenetur incidunt reprehenderit dolorem sit quisquam, sed asperiores veritatis nam vel ipsum dicta! Non. Provident saepe ullam minus laboriosam sit nam rerum! In quidem minima reiciendis, non amet vero sed unde deleniti veritatis
        mollitia voluptatem. Excepturi maiores error consequatur dolore labore reiciendis libero quisquam? Accusantium earum suscipit atque architecto dolorum itaque aliquid error asperiores neque ad rem perferendis expedita a voluptate, similique id
        vero? Quidem iusto expedita ab, consectetur magni similique suscipit aperiam non. Veritatis debitis rem hic, at in deleniti dolorem architecto velit illo repudiandae, eligendi a. Obcaecati ducimus voluptate placeat nulla facere odio, id aut illo
        numquam nobis expedita dolor non ab. Perferendis beatae placeat soluta, repellat dignissimos id qui impedit explicabo? Magni, fugit? Vel, reprehenderit eius dolorem quasi consequuntur vero dolorum molestias ipsum illo enim, quod neque est vitae
        ratione laboriosam?
      </div>
    </div>
  </main>
  <footer class="container-fluid">
    <div class="row">
      <div class="col bg-info p-5"></div>
    </div>
  </footer>
</div>

这类似于下面的解决方案。

Flush footer to the bottom of the page in bootstrap 4


更新

到目前为止,页眉和页脚都具有可变高度。如果您需要固定高度的页脚,请使用 height: [x]px;。

【讨论】:

  • 很好,但是如果你在主 div 中放置一个 textarea 并尝试使其更大,页脚会缩小一点。页脚也不固定。如果我在里面放很多文字,会占用很多空间(我尝试设置溢出自动但没有成功)
  • 如果我设置页脚大小,它可以工作 footer { min-height:100px;最大高度:100px; }
  • 除非视口高度小于或等于页眉+页脚高度,否则页脚不应收缩。
  • 页脚没有固定大小。它的大小等于其内容的大小。使用高度:100px;如果你想要一个 100px 高的页脚,而不是 min-height 和 max-heigh。 @maugch
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
相关资源
最近更新 更多