純CSS實現摺疊面板和手風琴效果

 用label綁定到對應的checkbox上,然後把checkbox隱藏掉,再用僞類選擇器(:checked)和相鄰兄弟選擇器(~或+)來觸發顯示或隱藏。

如果需要“手風琴”效果,只需要把每個checkbox的type設置爲radio即可。

但是有個缺陷,每個checkbox都需要有一個唯一的id和label綁定。

<!DOCTYPE html>
<html lang="zh">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    .parent {
      width: 280px;
    }
    .la {
      display: inline-block;
      width: 100%;
      background-color: #f2f2f2;
      cursor: pointer;
      height: 30px;
      line-height: 30px;
      border-bottom: 1px solid #ccc;
    }

    .t1 {
      display: none;
    }

    .content {
      height: 0px;
      overflow: hidden;
      transition: all .38s;
    }

    .t1:checked+.content {
      height: 100px;
    }
  </style>
</head>

<body>
  <div class="parent">
    <div>
      <label for="t1" class="la">check</label>
      <input type="checkbox" name="t" id="t1" class="t1">
      <div class="content">
        <p>Hello</p>
        <p>go go go</p>
      </div>
    </div>
    <div>
      <label for="t2" class="la">check</label>
      <input type="checkbox" name="t" id="t2" class="t1">
      <div class="content">
        <p>Hello</p>
        <p>go go go</p>
      </div>
    </div>
    <div>
      <label for="t3" class="la">check</label>
      <input type="checkbox" name="t" id="t3" class="t1">
      <div class="content">
        <p>Hello</p>
        <p>go go go</p>
      </div>
    </div>
  </div>
</body>

</html>

我的主頁:https://blog.csdn.net/qq_29750277,有關於前端、Python等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章