gpt4 book ai didi

javascript - 在 Javascript 中覆盖 Bootstrap 样式

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:16 25 4
gpt4 key购买 nike

这是我上一个问题的延续,因为我正在尝试通过将 javascript 应用于网站来学习它。

我已经设置了一些 JS 来在鼠标悬停在 anchor 元素上时更改 anchor 元素的背景颜色,这工作得很好,但我想更进一步。我的目标是通过将背景设为白色,将文本设为深色来反转 anchor 元素。此时的问题是我应用的 Bootstrap 样式覆盖了我的 JS,所以我无能为力。这是因为 anchor 元素已经具有 css 悬停样式。我对此进行了一些研究,我取得的最大进展是将 setAttribute 方法与 !important 结合使用。然而,这是不鼓励的,并且不允许我同时反转两个背景。这里的最佳做法是什么?这个问题的目的是教我自己在 JS 中的良好实践以及如何解决这个特定问题。

这是我的 HTML

  <!DOCTYPE = html>
<html lang = "en">
<head>
<title>Testing Styles</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap-grid.css">
<link rel="stylesheet" type="text/css" href="css/styles.css">
<link href="https://fonts.googleapis.com/css?family=Julius+Sans+One|Quicksand|Rubik" rel="stylesheet">
</head>
<body>
<heading>
<div class = "Jumbotron">
<h1 class = "display-2">The Header</h1>
<p class = "lead subtext"> And Subtext about the header</p>
</div>
</heading>
<nav class = "mx-auto bg-dark">
<div class = "container-fluid">
<ul class = "nav justify-content-center">
<li class = "nav-item active" id = "temp">
<a class = "nav-link text-light" href="#">Homepage</a>
</li>
<li class = "nav-item active" id = "temp">
<a class = "nav-link text-light" href="#">Posts</a>
</li>
<li class = "nav-item active" id = "temp">
<a class = "nav-link text-light" href="#">Report A Problem</a>
</li>
</ul>
</div>
</nav>

<footer class = "jumbotron">
<div id = "footer" class = "align-middle">
<h3 class = "display-5 justify-content-start align-middle"> A footer label &copy; me</h3>
<nav class = "d-flex justify-content-end align-middle">
<ul class = "pagination">
<li class = "page-item">
<a class = "nav-link text-light" href="#">Homepage</a>
</li>
<li class = "page-item">
<a class = "nav-link text-light" href="#">Posts</a>
</li>
<li class = "page-item">
<a class = "nav-link text-light" href="#">Report A problem</a>
</li>
</ul>
</div>
</nav>
</footer>
</body>
<script src= "JS/scripts.js"></script>
</html>

这是我的 JS

var coll = document.getElementsByClassName("nav-link");

//iterate on all elements
for (var i=0; i < coll.length; i++) {
//mousein
coll[i].addEventListener("mouseover", function () {
// Change color to red.
this.setAttribute("style","color:red !important")
});
//mouseout
coll[i].addEventListener("mouseout", function () {
// Change back to original color.
this.setAttribute("style","color: !important")
});
}

我知道我可以使用 element.style.colorelement.style.background 设置背景和文本颜色,但我仍然无法覆盖现有的使用它的 Bootstrap 样式。

感谢所有帮助。感谢您的回复!

最佳答案

我建议你改用 CSS,但你可以用 JS 实现你想要的东西

这是一个jsfiddle link用代码

您可以通过使用 ; 分隔它们来添加多个样式(最好始终在每个样式行之后使用 ; 字符)所以代码

this.setAttribute("style","color:red !important")

会变成

this.setAttribute("style","color:red !important;background-color:white;")

然后您可以删除 style 属性,这将删除您可能通过更改

应用的所有样式

this.setAttribute("style","color: !important")

this.removeAttribute("style")

关于javascript - 在 Javascript 中覆盖 Bootstrap 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48411617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com