gpt4 book ai didi

html - html+css 如何让对象不随页面滚动

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:27 25 4
gpt4 key购买 nike

目前,我创建的下拉菜单不会出现在单击它的按钮下方。如果向下滚动,它会自由悬停并随页面移动。我需要将其固定到位。

我尝试改变位置:固定;定位:相对;但出于某种原因,这会破坏代码,并且当单击按钮时,下拉菜单不再出现。

<!DOCTYPE html>
<html>
<body id="body">
//this shows the first two buttons for example
<ul class="matchup">
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
</ul>
</body>


<script> //opens dropdown menu when button clicked
document.querySelectorAll("li.team").forEach(function(teamDom) {
teamDom.querySelector("button.drop-down-btn").addEventListener("click", function() {
teamDom.querySelector("div.dropdown-content").classList.toggle("show");
});
});
</script>

<style>
.btn {
background-color: #FEFEFE;
color: black;
padding: 6px 10px;
border: none;
cursor: pointer;
width: 100%;
margin-bottom: 10px;
opacity: 1;
}

.dropbtn {
background-color: #3498DB;
color: white;
padding: 16px;
font-size: 16px;
border: none;
cursor: pointer;
}

.btn:hover,
.btn:focus {
background-color: #EBEBEB;
}

.dropdown {
position: relative;
display: inline-block;
}



.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
overflow: auto;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 200, 0.2);
z-index: 1;
}

.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}

.dropdown a:hover {
background-color: #ddd;
}

.show {
display: block;
}

.open-button {
display: show;
background-color: #555;
color: white;
padding: 3px 10px 5px 10px;
cursor: pointer;
opacity: 1;
position: fixed;
width: 120px;
height: 30px;
border: 1px solid #5391CC;
z-index: 1;
}

</style>

实际输出:https://imgur.com/a/g2K9WDH

预期的输出是下拉菜单下拉到所选按钮下方,并且不会随页面滚动

最佳答案

只需从“.open-button”类中省略“position: fixed”

正如标题,我在附件代码中做了。

我还移动了'margin-bottom: 10px;'从“按钮”标签到“li”标签。所以现在菜单确实出现在按钮下方。

希望我有所帮助。

document.querySelectorAll("li.team").forEach(function(teamDom) {
teamDom.querySelector("button.drop-down-btn").addEventListener("click", function() {
teamDom.querySelector("div.dropdown-content").classList.toggle("show");
});
});
li{
margin-bottom: 10px;
}

.btn {
background-color: #FEFEFE;
color: black;
padding: 6px 10px;
border: none;
cursor: pointer;
width: 100%;
/* margin-bottom: 10px; */
opacity: 1;
}

.dropbtn {
background-color: #3498DB;
color: white;
padding: 16px;
font-size: 16px;
border: none;
cursor: pointer;
}

.btn:hover,
.btn:focus {
background-color: #EBEBEB;
}

.dropdown {
position: relative;
display: inline-block;
}



.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
overflow: auto;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 200, 0.2);
z-index: 1;
}

.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}

.dropdown a:hover {
background-color: #ddd;
}

.show {
display: block;
}

.open-button {
display: show;
background-color: #555;
color: white;
padding: 3px 10px 5px 10px;
cursor: pointer;
opacity: 1;
/* position: fixed; */
width: 120px;
height: 30px;
border: 1px solid #5391CC;
z-index: 1;
}
<ul class="matchup">
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-top">
<button class="btn drop-down-btn">
<span class="seed">01</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownTop" class="dropdown-content">
<button class="open-button teamName" onclick="openFormPF()">Change Team</button></br>
<button class="open-button teamWinner" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button teamScore" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
<li class="team team-bottom">
<button class="btn drop-down-btn">
<span class="seed">32</span>
<span id="team1">&nbsp;</span>
<span class="score">&nbsp;</span>
</button>
<div id="myDropdownBottom" class="dropdown-content">
<button class="open-button" onclick="openFormPF()">Change Team</button></br>
<button class="open-button" onclick="openFormPF()">Establish Winner</button></br>
<button class="open-button" onclick="openFormPF()">Set Score</button></br>
</div>
</li>
</ul>

关于html - html+css 如何让对象不随页面滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57446792/

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