纵向导航栏使用navbar-nav-scroll溢出截断问题

项目场景:

组件:Bootstrap-4.6.2、JQuery 3.7.1
测试浏览器:Firefox126.0.1、Microsoft Edge125.0.2535.67
IDE:eclipes2024-03.R

在编写CRM的工作台主页面时,由于该页面使用的是较旧的技术,所以打算使用Bootstrap重写响应式页面,主要使用了Bootstrap的格栅布局系统。在编写左侧纵向导航栏时,发现添加滚动条后,导航栏下面缩短了一部分流出大部分空白,使得页面不美观。

溢出截断
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="/crm-core/css/bootstrap_css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/crm-core/js/jquery/jquery-3.7.1-min.js"></script>
<!-- bootstrap.bundle.js包含了popper.min.js,这个是下拉菜单的依赖 -->
<script type="text/javascript" src="/crm-core/js/bootstrap_js/bootstrap.bundle.js"></script>
<script type="text/javascript">
   ...
</script>
</head>
<body>
	...
		<!-- 中间部分 -->
		<div id="center" style="position: absolute; top: 50px; bottom: 30px; left: 0px; right: 0px;">
		<!-- 导航 -->
		<div class="col-2 border-right navbar-nav-scroll" style="height: 100%;">
                <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
                    <button class="nav-link active" id="v-pills-home-tab" data-toggle="pill" data-target="#v-pills-home" type="button"
                        role="tab" aria-controls="v-pills-home" aria-selected="true">工作台</button>
                </div>
            </div>
			<!-- 右侧框架栏 -->
			<div class="col-10 iframe-container">
				<div class="embed-responsive embed-responsive-16by9">
					<iframe class="embed-responsive-item border border-white" name="workareaFrame"></iframe>
				</div>
			</div>
		</div>
	</div>
</body>
</html>

问题描述

经过测试后,发现是在添加了navbar-nav-scroll后出现截断问题,但是该类如果删除会导致在滚动页面时右侧的<iframe>也会跟着滚动,这不是我所期望的,我想要的只是左侧的导航栏在溢出时滚动,而右侧的<iframe>框架只是用来显示左侧各导航栏对应的页面。


原因分析:

尝试了诸多方法,官方文档也没有给出相关问题的解决方案,AI也没有给出准确的解决方案,在问了别人说的可能是Flex 布局下居中溢出滚动截断问题,看了这边文章 ,不过没看太懂,只是知道不应该用Flex布局。


解决方案:

去除Flex相关代码,以显示的方式指定div的高度,及overflow-y:scroll。

<!-- 顶部 -->
	<div class="container-fluid h-100">
		<div class="row sticky-top">
			<div class="col-12">
				<nav class="navbar navbar-expand-lg  navbar-light bg-light">
					<a class="navbar-brand" href="#">CRM&nbsp;</a><span>&copy;2030&nbsp;UMBRELLA</span>
					<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText"
						aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
						<span class="navbar-toggler-icon"></span>
					</button>
					<div class="collapse navbar-collapse" id="navbarText">
						<ul class="navbar-nav mr-auto">
							<li class="nav-item active"><a class="nav-link" href="#"><span class="sr-only">(current)</span></a></li>
							<li class="nav-item"><a class="nav-link" href="#"></a></li>
							<li class="nav-item"><a class="nav-link" href="#"></a></li>
						</ul>
						<ul class="navbar-nav mr-right">
							<li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle="dropdown" id="userName"
								role="button" aria-expanded="false"></a>
								<div class="dropdown-menu dropdown-menu-sm-right">
									<a class="dropdown-item" href="#">个人中心</a> <a class="dropdown-item" href="#">其他操作</a> <a class="dropdown-item"
										href="#">修改密码</a>
									<div class="dropdown-divider"></div>
									<a class="dropdown-item" data-toggle="modal" data-target="#exitModal">安全退出</a>
								</div></li>
						</ul>
					</div>
				</nav>
			</div>
		</div>
		<!-- 中间部分 -->
		<div class="row" style="height:700px">
			<!-- 左侧导航栏 -->
			<div class="col align-baseline border-left" style="overflow-y: scroll; height: 700px">
				<div class="btn-group-vertical" role="group" style="width:230px">
					<button type="button" class="btn btn-primary active" aria-current="true">工作台</button> 
					<button type="button" class="btn btn-light" aria-current="true">动态</button> 
					<button type="button" class="btn btn-light" aria-current="true">审批</button> 
					<button type="button" class="btn btn-light" aria-current="true">客户信息</button> 
					<button type="button" class="btn btn-light" aria-current="true">市场活动</button> 
					<button type="button" class="btn btn-light" aria-current="true"> 线索(潜在客户)</button> 
					<button type="button" class="btn btn-light" aria-current="true">联系人</button> 
					<button type="button" class="btn btn-light" aria-current="true">交易</button> 
					<button type="button" class="btn btn-light" aria-current="true">售后回访</button> 
					<button type="button" class="btn btn-light" aria-current="true" data-toggle="collapse" data-target="#collapseExample">统计图表</button> 
					<div class="collapse btn-group-vertical" role="group" id="collapseExample" style="width:230px">
					<button type="button" class="btn btn-secondary" aria-current="true">第一种图</button> 
                    <button type="button" class="btn btn-secondary" aria-current="true">第二种图</button> 
                    <button type="button" class="btn btn-secondary" aria-current="true">第三种图</button> 
                    <button type="button" class="btn btn-secondary" aria-current="true">第四种图</button> 
					</div>
					<button type="button" class="btn btn-light" aria-current="true">工作台</button> 
					<button type="button" class="btn btn-light" aria-current="true">工作台</button> 
					<button type="button" class="btn btn-light" aria-current="true">工作台</button> 
					<button type="button" class="btn btn-light" aria-current="true">工作台</button> 
					<button type="button" class="btn btn-light" aria-current="true">工作台</button> 
				</div>
			</div>
			<!-- 右侧框架栏 -->
			<div class="col-10 iframe-container">
				<div class="embed-responsive embed-responsive-16by9">
					<iframe class="embed-responsive-item border border-white" name="workareaFrame"></iframe>
				</div>
			</div>
		</div>
	</div>

当前的解决方案在一定程度上牺牲了响应式的布局,后期如果有更好的解决方案再更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

virtualbox识别windows上usb设备

当你插入 USB 时&#xff0c;你的宿主操作系统可以轻松访问它并使用其中的文件。如果需要VirtualBox 的虚拟机也能访问物理机的 USB设备&#xff0c;需要安装安装扩展包管理器。 第一步&#xff1a; 要安装 VirtualBox 扩展包&#xff0c;只需访问 VirtualBox 官方下载页面&a…

OpenCV学习 基础图像操作(十七):泛洪与分水岭算法

原理 泛洪填充算法和分水岭算法是图像处理中的两种重要算法&#xff0c;主要用于区域分割&#xff0c;但它们的原理和应用场景有所不同&#xff0c;但是他们的基础思想都是基于区域迭代实现的区域之间的划分。 泛洪算法 泛洪填充算法&#xff08;Flood Fill&#xff09;是一…

seaborn和matplotlib显示两条曲线图例

总结&#xff0c;添加label和plt.legend&#xff0c;以下由chatgpt生成 在使用 Seaborn 的 kdeplot&#xff08;核密度估计图&#xff09;时&#xff0c;显示图例也是一个常见需求&#xff0c;尤其是当你想比较多个不同分布的数据时。下面我将提供一个示例&#xff0c;说明如何…

实战还原AI驱动的网络攻击:如何构建SecOps智能自动化防线

随着AI技术的迅猛发展&#xff0c;网络攻击手段日益多样化和高度自动化&#xff0c;给企业和个人带来了巨大网络安全挑战。在此背景下&#xff0c;为企业提供全面高效安全保障的Fortinet SecOps解决方案应运而生。在Fortinet 2024网安攻防“Demo季”第二期直播中&#xff0c;Fo…

【GD32】从零开始学GD32单片机高级篇——SDIO外设详解(GD32F470ZGT6)

目录 简介总线拓扑总线操作“无响应” 和 “无数据” 操作多块读写操作数据流读写操作 总线协议命令响应R1/R1b (普通命令响应)R2 (CID, CSD 寄存器)R3 (OCR 寄存器)R4 (Fast IO)R4b&#xff08;Fast IO&#xff09;R5 (中断请求)R5b&#xff08;中断请求&#xff09;R6 (发布的…

代码随想录算法训练营第36期DAY46

DAY46 完全背包 在闫氏DP法里学过&#xff1a;第i个物品选k个&#xff0c;纸质直至不能选&#xff0c;k从0开始取。就有递推式了。 代码随想录的视频也看了。 518零钱兑换ii 注意与 目标和 那题区分开。 完全背包问题&#xff0c;正向遍历背包容量&#xff0c;就能实现“多次…

【项目经理】什么是领导

引言&#xff1a;        项目管理是一个不断发展的领域&#xff0c;它要求项目经理不断学习、适应和创新。通过本系列文章&#xff0c;我们希望能够帮助每一位项目经理提升自己的专业能力&#xff0c;成为引领项目成功的舵手。 持续更新。。。。。。。。。。。。。。。…

Pycharm使用时的红色波浪线报错——形如‘break‘ outside loop

背景&#xff1a; 我在一个方法中&#xff0c;写了一个if判断&#xff0c;写了一个break&#xff0c;期望终止这个函数&#xff0c;编辑器出现报错 形如下图 视频版问题教程&#xff1a; Pycharm下出现波浪线报错&#xff0c;形如break outside loop 过程&#xff1a; 很奇…

echarts 图表不显示的问题

是这样的&#xff0c;点击详情&#xff0c;再点击统计&#xff0c;切换的时候就不会显示echarts图表&#xff0c;刚开始使用的是next Tick&#xff0c;没有使用定时器&#xff0c;后来加上了定时器就实现了如下所示&#xff1a; 代码是如下 const chartContainer ref(null); …

线程思维导图

列出线程所有知识的框架结构&#xff0c;帮助理解线程相关知识&#xff0c;有更好的知识体系 Java相关进阶知识 多线程相关知识&#xff0c;超详细&#xff0c;易懂

NextJs 渲染篇 - 什么是CSR、SSR、SSG、ISR 和服务端/客户端组件

NextJs 渲染篇 - 什么是CSR、SSR、SSG、ISR 和服务端/客户端组件 前言一. 什么是CSR、SSR、SSG、ISR1.1 CSR 客户端渲染1.2 SSR 服务端渲染1.3 SSG 静态站点生成① 没有数据请求的页面② 页面内容需要请求数据③ 页面路径需要获取数据 1.4 ISR 增量静态再生1.5 四种渲染方式的对…

案例实践 | 基于长安链的首钢供应链金融科技服务平台

案例名称-首钢供应链金融科技服务平台 ■ 建设单位 首惠产业金融服务集团有限公司 ■ 用户群体 核心企业、资金方&#xff08;多为银行&#xff09;等合作方 ■ 应用成效 三大业务场景&#xff0c;共计关联29个业务节点&#xff0c;覆盖京票项目全部关键业务 案例背景…

CSS选择器的常见用法

大家好&#xff0c;本期博客整理了前端语言 CSS 中选择器的入门级常见用法&#xff0c;希望能对大家有所帮助 CSS 选择器的主要功能就是选中⻚⾯指定的标签元素&#xff0c;选中了元素&#xff0c;才可以设置元素的属性。 那么&#xff0c;css选择器有哪几种呢&#xff1f; 以…

win10修改conda环境和缓存默认路径

win10修改conda环境和缓存默认路径 conda环境和缓存的默认路径&#xff08;envs directories 和 package cache&#xff09;不一定要默认存储在用户目录&#xff0c;我们可以将他们设置到盈余空间稍大的其他目录来缓解这种空间压力&#xff0c;只要保证不同用户之间的设置不同…

OrangePi AIpro 变身 Android 打包机

主板基本信息介绍 OrangePi AIpro&#xff0c;是香橙派联合华为精心打造&#xff0c;建设人工智能新生态而设计的一款开发板&#xff0c;这次为大家分享下我上手的这款 OrangePi AIpro 8GB&#xff08;算力达8TOPS&#xff09; 的一些小小的经验。 基本参数如下&#xff1a; …

【权威出版】2024年新媒体、网络与电子商务国际会议(NMNE 2024)

2024年新媒体、网络与电子商务国际会议 2024 International Conference on New Media, Networking, and E-commerce 【1】会议简介 2024年新媒体、网络与电子商务国际会议即将召开&#xff0c;这是一次集结全球新媒体、网络与电子商务领域精英的学术盛会。 本次会议将深…

Vue3实战笔记(57)—一键换肤:在Vuetify中打造个性化主题切换体验

文章目录 前言一键换肤总结 前言 在当今追求极致用户体验的时代&#xff0c;为应用程序提供个性化的主题切换功能已经成为提升用户满意度和留存率的关键因素之一。Vuetify&#xff0c;作为基于Vue.js的流行前端框架&#xff0c;以其丰富的组件库和高度可定制性&#xff0c;为开…

牛客网刷题 | BC104 翻转金字塔图案

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 KiKi学习了循环&am…

Hadoop+Spark大数据技术 第七次作业

第七次作业 1. 简述Spark SQL使用的数据抽象DataFrame与Dataset的区别。 DataFrame: 基于 Row 对象的二维表格结构&#xff0c;类似于关系型数据库中的表。 行和列都有明确的 Schema&#xff08;模式&#xff09;&#xff0c;可以进行类型推断。 提供了丰富的操作接口&#xff…

打开C语言常用的内存函数大门(三) —— memset()函数(内含讲解用法和模拟实现)

文章目录 1. 前言2. memset函数2.1 memset函数原型2.2 memset函数参数的介绍2.3 memset函数的使用演示 3. memset函数的模拟实现4. 总结 1. 前言 哈喽&#xff0c;我们又见面了。通过前面两个内存函数(memcpy、memmove函数)讲解的锤炼后&#xff0c;对如何解析一个自己从来没有…