如何解决具有固定页脚和导航的Bootstrap 4全屏页面:内容不填充也不溢出 更新
我正在尝试构建一个带有导航栏和页脚的模板页面,我可能会在主div(容器-流体)中添加后面的列,但是我遇到了两个问题。 页脚是一个div,我用作日志记录空间。它固定在底部,每次在页面上执行操作时,我都会用日志填充它。内容可能超过可用空间,并出现滚动条。导航栏是标准导航栏。 当我尝试用随机数据或文本区域填充容器时,会出现问题。主div(和主体)大于主视图并使页脚溢出。 我在做什么错了?
这是jsfiddle:link
请注意,这两个部分都是彩色的,只是为了查看问题。浅青色的部分应填充到页脚上方的屏幕中,或者至少在其被击中时不再增长(您可以通过扩大文本区域来对其进行测试)。
我的第一个想法是将html和body设置为100%的高度,忽略导航栏(不确定其高度),使页脚保持其固定高度(需要这种方式才能将其用作记录器)并计算主div的高度。没用请注意,部分代码来自于bootstrap网站上的示例。
<body>
<header>
<nav></nav>
</header>
<div class="container-fluid">textarea and columns here</div>
<footer>
<div class="content">connecting..</div>
</footer>
</body>
解决方法
- 将身体的所有内容包装在一个可弯曲的容器中,其弯曲方向为列。
- 主容器的所有父级必须具有100%的高度。
- 在主容器上使用
.flex-grow-1
,以便占用所有可用空间。 - 隐藏主容器溢出
- 滚动显示主容器的子级溢出。它必须是所有主要内容的父项。
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;
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。