安全性要求我通过 NuGet 升级 jQuery 从 3.2.1 到 3.6.0,bootstrap 从 3.3.7 到 5.0.1,并删除旧的手动安装的 jQuery/bootstrap 文件,但现在我遇到了一些无法解决的布局问题。
症状1
现在我有一个显示的按钮“切换导航”,以前这个按钮是看不见的。我在 css 类 sr-only
上找到的信息说它应该在屏幕阅读器上是不可见的(将屏幕内容阅读给盲人用户),但我没有屏幕阅读器,只有火狐/谷歌浏览器。我猜想这个类应该只对屏幕阅读器可见。无论如何,这个按钮没用,所以我把它注释掉了。
<nav>
<div class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<!-- button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button -->
<a href="/" class="pull-left">
<img src="/Images/company_logo.png" />
</a>
<span id="span_pagetitle" class="pull-left span_pagetitle" runat="server">
Page Title
</span>
</div>
奇怪的是,Chrome开发工具中的元素样式显示,sr-only由bootstrap.min.css处理,但在新的Bootstrap5中由_reboot.scss处理。下划线表明这是一个临时文件,并且扩展名与高级CSS系统SCSS或SASS有关。在DevTools中的网络选项卡中仍然可以看到从Content文件夹下载了bootstrap.min.css。 症状2 在上面的标题代码中,徽标图像和页面标题在浅灰色标题栏中漂亮地显示在同一高度。但是,在升级后,布局消失了,被破坏了。图像和文本已经下降,但下降的量不同,并且没有浅灰色标题栏作为图像和文本的背景。
我需要学习SASS来解决这个问题吗?
还是安装bootstrap可能出了问题?
老实说,我不得不手动将jQuery文件从packages复制到Scripts。我现在也在想来自mutty-keyboard包的jquery-ui.min.js/css和jquery-latest.min.js的版本是否不升级,如DevTools的网络选项卡所示。那会对bootstrap产生干扰吗?
感谢任何可能将我引导正确方向的提示。
更新:
尽管这个问题的答案实际上非常有用,但我也发现从Bootstrap 3升级到5没有这样的东西。它们只是不同的工具包。因此,这个问题在某种程度上已经过时了。真正的答案应该是不要升级。在你的新项目中使用Bootstrap 5。
建议升级的安全扫描可能会做出太多的升级建议,也许是为了让你害怕并拿出钱包 :-)