具有固定页脚和导航的Bootstrap 4全屏页面:内容不填充也不溢出 更新

如何解决具有固定页脚和导航的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>

解决方法

  1. 将身体的所有内容包装在一个可弯曲的容器中,其弯曲方向为列。
  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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-