我有两个下拉按钮,当您单击“难度”按钮时,“持续时间”按钮会移到底部;同样,如果您单击“持续时间”按钮,它会将“难度”按钮移至底部。
有趣的是,当先点击难度按钮,然后点击持续时间按钮时,两者都将是正确的高度;但是如果你先点击 Duration 按钮,然后点击 Difficulty 按钮,只有 Duration 按钮会关闭其内容并再次移动到底部。这就是我的代码的样子:
HTML 代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style_MP.css"/>
</head>
<body>
<div class="main_page">
<h1>Welcome to My Typing Test!</h1>
<h2>Select Your Difficulty and Duration</h2>
<div>
<!--Below, the word "diff" is short for "difficulty" -->
<!--So "diff-settings" means "difficulty settings" -->
<!--"diff-options" means "difficulty options" and so on -->
<div class="difficulty">
<button onclick="myfunction01()" class="diff-settings">Difficulty</button>
<div class="diff-options" id="diff-select">
<a href="beginner">Beginner</a>
<a href="intermediate">Intermediate</a>
<a href="advanced">Advanced</a>
<a href="expert">Expert</a>
</div>
</div>
<div class="duration">
<button onclick="myfunction02()" class="duration-settings">Duration</button>
<div class="duration-options" id="duration-select">
<a href="30-seconds">30 Seconds</a>
<a href="60-seconds">60 Seconds</a>
<a href="120-seconds">120 Seconds</a>
<a href="custom">Custom</a>
</div>
</div>
<script src="script_MP.js"></script>
</body>
</html>
CSS 代码:
body{background-color:grey}
.main_page{text-align: center;}
h1{font-size: 50px;}
h2{font-size: 30px; padding-bottom: 40px;}
.difficulty , .duration{
display: inline-block;
margin: 5px;
}
/* This section is for the Difficulty Button only */
.diff-settings{
padding: 20px;
position: relative;
border: none;
box-shadow: none;
background-color: green;
color:white;
font-size: 20px;
width: 130px;
}
.diff-settings:hover, .diff-settings:focus{
background-color:darkgreen;
color:white;
cursor: pointer;
}
.diff-options{
display: none;
font-size: 20px;
width: 130px;
}
.diff-options a{
background-color: green;
color: white;
display: block;
padding: 8px;
text-decoration: none;
}
.diff-options a:hover {background-color: darkgreen;}
.show {display: block;}
/* This section is for the Duration Button only */
.duration-settings{
padding: 20px;
border: none;
box-shadow: none;
background-color: green;
color:white;
font-size: 20px;
width: 130px;
}
.duration-settings:hover, .duration-settings:focus{
background-color:darkgreen;
color:white;
cursor: pointer;
}
.duration-options{
display: none;
font-size: 20px;
width: 130px;
}
.duration-options a{
background-color: green;
color: white;
display: block;
padding: 8px;
text-decoration: none;
}
.duration-options a:hover {background-color: darkgreen;}
.show {display: block;}
为了阻止两个按钮在单击时移到底部,我应该更改什么?
uj5u.com热心网友回复:
只需添加这个;):
.diff-options, .duration-options {
position: absolute;
}
当您更改块的显示时,会考虑并移动以下元素。通过添加绝对位置,计算下一个元素时不再考虑它。
uj5u.com热心网友回复:
使按钮的父 div 使用 flex 可以解决问题。
.flex{
display: flex;
justify-content: center;
}
<div class="flex">
<!--Below, the word "diff" is short for "difficulty" -->
<!--So "diff-settings" means "difficulty settings" -->
<!--"diff-options" means "difficulty options" and so on -->
<div class="difficulty">
<button onclick="myfunction01()" class="diff-settings">Difficulty</button>
<div class="diff-options" id="diff-select">
<a href="beginner">Beginner</a>
<a href="intermediate">Intermediate</a>
<a href="advanced">Advanced</a>
<a href="expert">Expert</a>
</div>
</div>
<div class="duration">
<button onclick="myfunction02()" class="duration-settings">Duration</button>
<div class="duration-options" id="duration-select">
<a href="30-seconds">30 Seconds</a>
<a href="60-seconds">60 Seconds</a>
<a href="120-seconds">120 Seconds</a>
<a href="custom">Custom</a>
</div>
</div>
</div>
0 评论