首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我点击一个的时候,所有的危险都会打开

当我点击一个的时候,所有的危险都会打开
EN

Stack Overflow用户
提问于 2020-05-12 16:41:53
回答 1查看 48关注 0票数 0

我目前正在尝试制作一个包含可折叠内容的贡品页面。我的问题是,当你点击第一个可折叠的,其余的打开。我想要一个可折叠的,只有当它被点击打开。它们总共是9,当用户单击其中一个时,所有这些都是没有意义的。

代码语言:javascript
复制
body {
  margin: 0px 0px 0px 0px;
}

header {
  width: 100%;
  height: 100px;
  background-color: silver;
  text-align: center;
}

#main {
  background-color: silver;
  width: 100%;
  margin: auto;
}

body {
  padding: 10px;
}

#img-div {
  width: 60%;
  margin: auto;
  display: flex;
  justify-content: center;
  height: 400px;
  background-color: white;
  flex-direction: column;
  text-align: center
}

#tribute-info {
  width: 100%;
  height: 300px;
  background-color: white;
}

body {
  font-family: "Roboto";
  font-size: 15px;
  padding: 20px;
}

.collapse-list {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
  border-bottom: 1px solid #e0e0e0;
}

.collapse-open {
  display: none;
}

.collapse-panel {
  visibility: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .1s, visibility .3s, opacity .3s;
}

.collapse-open:checked~.collapse-panel {
  max-height: 100%;
  opacity: 100;
  visibility: visible
}

.collapse-list li {
  margin-bottom: 0;
}

.collapse-list .collapse-btn {
  border-top: 1px solid #e0e0e0;
  cursor: pointer;
  display: block;
  padding: 15px 10px;
  margin-bottom: 0;
  color: #4285f4;
  font-weight: normal;
  transition: background-color .2s ease;
}

.collapse-list .collapse-btn:hover {
  background: #eee;
}

.collapse-open~.collapse-btn:before {
  content: "↓";
  float: right;
}

.collapse-open:checked~.collapse-btn:before {
  content: "↑";
}

.collapse-list .collapse-inner {
  padding: 10px
}
代码语言:javascript
复制
<header>
  <h1>Remembering Dr. Stella Ameyo Adadevoh</h1>
  <h4>The Woman Who Saved Nigeria From Ebola</h4>
</header>
<main id="main">
  <div id="img-div">
    <img id="image" src="./resources/images/adadevoh.jpg" alt="an image of the late Dr Adadevoh">
    <h5>Dr. Stella Ameyo Adadevoh</h5>
  </div>
</main>

<section>
  <div class="collapse-list" id="tribute-info">
    <input class="collapse-open" type="checkbox" id="collapse-1">
    <label class="collapse-btn" for="collapse-1">Early Life And Family</label>
    <div class="collapse-panel">
      <div class="collapse-inner">
        <p>Ameyo Adadevoh was born in Lagos, Nigeria in October 1956. She spent the majority of her life in Lagos, Nigeria. Her father and great-grandfather, s</p>
      </div>
    </div>

    <input class="collapse-open" type="checkbox" id="collapse-2">
    <label class="collapse-btn" for="collapse-2">Education</label>
    <div class="collapse-panel">
      <div class="collapse-inner">
        <p>She went to preschool at the Mainland Preparatory Primary School in Yaba, Lagos (1961-1962). </p>
      </div>
    </div>

    <input class="collapse-open" type="checkbox" id="collapse-3">
    <label class="collapse-btn" for="collapse-3">Medical Education And Career</label>
    <div class="collapse-panel">
      <div class="collapse-inner">
        <p>Dr. Adadevoh graduated from the University of Lagos, </p>
      </div>
    </div>


  </div>
</section>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 16:57:33

这就是罪魁祸首:.collapse-open:checked ~ .collapse-panel --当选中复选框时,类collapse-panel的所有后续兄弟元素都会打开。

补救措施是移动到相邻的兄弟姐妹选择器+,修改在途中打开面板的选择器:

代码语言:javascript
复制
/* old */ .collapse-open:checked ~ .collapse-panel
/* new */ .collapse-open:checked + label + .collapse-panel

控制箭头显示的选择器也被更改为使用相邻的兄弟姐妹选择器。

代码语言:javascript
复制
body {
    margin: 0px 0px 0px 0px;
  }

header {
    width: 100%;
    height: 100px;
    background-color: silver;
    text-align: center;
}

#main {
    background-color: silver;
    width: 100%;
    margin: auto;
}

body {
    padding: 10px;
}

#img-div {
    width: 60%;
    margin: auto;
    display: flex;
    justify-content: center;
    height: 400px;
    background-color: white;
    flex-direction: column;
    text-align: center

}




#tribute-info {
    width: 100%;
    height: 300px;
    background-color: white;
}





body {
    font-family: "Roboto";
    font-size: 15px;
    padding: 20px;
}

.collapse-list {
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
    border-bottom: 1px solid #e0e0e0;
}

.collapse-open {
    display: none;
}

.collapse-panel {
    visibility: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height .1s,
    visibility .3s,
    opacity .3s;
}

.collapse-open:checked + label + .collapse-panel {
    max-height: 100%;
    opacity: 100;
    visibility: visible
}

.collapse-list li {
    margin-bottom: 0;
}

.collapse-list .collapse-btn {
    border-top: 1px solid #e0e0e0;
    cursor: pointer;
    display: block;
    padding: 15px 10px;
    margin-bottom: 0;
    color: #4285f4;
    font-weight: normal;
    transition: background-color .2s ease;
}

.collapse-list .collapse-btn:hover {
    background: #eee;
}

.collapse-open + .collapse-btn:before {
    content: "↓";
    float: right;
}

.collapse-open:checked + .collapse-btn:before {
    content: "↑";
}

.collapse-list .collapse-inner {
    padding: 10px
}
代码语言:javascript
复制
<html>
    <body>
       <header>
           <h1>Remembering Dr. Stella Ameyo Adadevoh</h1>
           <h4>The Woman Who Saved Nigeria From Ebola</h4>
       </header> 
       <main id ="main">
        <div id="img-div">
            <img id ="image" src="./resources/images/adadevoh.jpg" alt="an image of the late Dr Adadevoh">
            <h5>Dr. Stella Ameyo Adadevoh</h5>
        </div>       
    </main>

    <section>
        <div class="collapse-list" id="tribute-info">           
            <input class="collapse-open" type="checkbox" id="collapse-1">
            <label class="collapse-btn" for="collapse-1">Early Life And Family</label>
            <div class="collapse-panel">
                <div class="collapse-inner">
                    <p>Ameyo Adadevoh was born in Lagos, Nigeria in October 1956. She spent the majority of her life in Lagos, Nigeria. Her father and great-grandfather,  s</p>
                </div>
            </div>

            <input class="collapse-open" type="checkbox" id="collapse-2">
            <label class="collapse-btn" for="collapse-2">Education</label>
            <div class="collapse-panel">
                <div class="collapse-inner">
                    <p>She went to preschool at the Mainland Preparatory Primary School in Yaba, Lagos (1961-1962). </p>
                </div>
            </div>

            <input class="collapse-open" type="checkbox" id="collapse-3">
            <label class="collapse-btn" for="collapse-3">Medical Education And Career</label>
            <div class="collapse-panel">
                <div class="collapse-inner">
                    <p>Dr. Adadevoh graduated from the University of Lagos, </p>
                </div>
            </div>


        </div>
    </section>
    </body>
</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61757173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档