аккордеон на дисплее: гибкие предметы - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь найти решение проблемы, когда у меня есть 3 элемента, выровненные в ряд, используя display: flex на экране рабочего стола. Каждый из этих предметов имеет аккордеон, который отлично работает и открывается, НО другие элементы также отображают высоту открытого аккордеона. Есть ли другое решение вместо моего, где открытый предмет будет расширяться, а два других останутся, когда они закрыты?

html:
<div class="section-3">
    <div class="section-3-container">
      <div class="card-deck">
        <div class="card">
          <img src="images/firstplant.svg" class="card-img-top">

          <div class="card-body upper-body">
            <p class="text">Esmane nõustamine</p>

            <br>

            <li>Olukorra kaardistamine</li>
            <br>
            <li>Toidupäeviku analüüs</li>
            <br>
            <li>Eesmärkide püstitamine</li>
            <br>
            <li>Teenuse maksumus 50€</li>
            <br>


            <button class="btn-secondary" href="kontakt.php">
              <a href="kontakt.php" class="btn-text"> Broneeri aeg</a>
            </button>
          </div>

          <div class="card-body">
            <button class="card-link">Loe lisaks</button>
            <div class="card-link-display">
              <div class="H4"> Teenus sisaldab:</div>


              <ul>
                <li>
                  hetkeolukorra kaardistamine;
                </li>

                <li>
                  eesmärkide püstitamine;
                </li>

                <li>
                  personaalse tegevuskava koostamine;
                </li>

                <li>
                  soovi korral kehakoostise määramine bioelektrilise impedantsi analüüsi meetodil
                  (mõõtmistulemused näitavad lisaks kehakaalule rasvaprotsendi, lihasmassi jpm, samuti
                  vistseraalse rasvumise väärtuse ning metaboolse vanuse);
                </li>

                <li>
                  3-5 päeva toidupäeviku analüüsi teostamine makro- ja mikrotoitainete saamise
                  tasakaalust;
                </li>

                <li>
                  soovituste andmist menüü muutmiseks tervisele soodsas suunas.
                </li>
              </ul>
            </div>
          </div>
        </div>
        <div class="card">
          <img src="images/secondplant.svg" class="card-img-top" alt="...">
          <div class="card-body">
            <p class="text">Korduv nõustamine</p>

            <br>

            <li>Muutuste hindamine</li>
            <br>
            <li>Tegevuskava korrigeerimine</li>
            <br>
            <li>Eesmärkide püstitamine</li>
            <br>
            <li>Teenuse maksumus 40€</li>
            <br>

            <button class="btn-secondary" href="kontakt.php">
              <a href="kontakt.php" class="btn-text"> Broneeri aeg</a>
            </button>

          </div>

          <div class="card-body">
            <button class="card-link">Loe lisaks</button>
            <div class="card-link-display">
              <div class="H4"> Teenus sisaldab:</div>


              <ul>
                <li>
                  eelneval korral kokkulepitud tegevuste ja kehakoostianalüüsi muutuste hindamine
                  näitajates;
                </li>

                <li>
                  toitumis- ja tegevuskava korrigeerimine;
                </li>

                <li>
                  kokkulepete sõlmimine edaspidiseks tegevuseks. </li>


              </ul>
            </div>

          </div>
        </div>
        <div class="card">
          <img src="images/thirdplant.svg" class="card-img-top" alt="...">
          <div class="card-body">
            <p class="text">Konsultatsioon</p>

            <br>

            <li>Lisainformatsiooni saamine</li>
            <br>
            <li>Nõupidamine küsimuste korral</li>
            <br>
            <li>Teenuse maksumus 30€</li>
            <br>
            <br>
            <br>
            <br>

            <button class="btn-secondary" href="kontakt.php">
              <a href="kontakt.php" class="btn-text"> Broneeri aeg</a>
            </button>
          </div>
          <div class="card-body">
            <button class="card-link">Loe lisaks</button>
            <div class="card-link-display">
              <div class="H4"> Teenus sisaldab:</div>


              <ul>
                <li>
                  nõupidamine kiirete küsimuste korral või lisainformatsiooni saamine personaalse
                  tegevuskava erinevate võimalike lahenduste kohta.
                </li>




              </ul>
            </div>
          </div>

        </div>
      </div>
    </div>
  </div>

css:
.section-3 {
    width: 100%;
    height: 100%;
    padding-top: 20px;
}

.section-3-container {
    width: 100%;
    height: 100%;
    padding: 0 20px;
    margin: 0 auto;
    max-width: 1100px;
}

.card-deck {
    display: flex;
    flex-flow: row wrap;
    position: relative;
    width: 100%;
    height: 100%;
    justify-content: center;
}

.card {
    border: 1px solid #dddddd;
    flex-direction: column;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
    position: relative;
    max-width: 320px;
    overflow: hidden;
    min-width: 0px;
    flex: 1 1 0%;
    text-align: center;
    align-items: center;
    display: flex;
    transition-duration: 0.4s;
}

.card, .card-img, .card-img-top {
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px);
    border-radius: 10px;
}

.card-img-top {
    width: 100%;
}

.card-body {
    min-height: 1px;
    padding: 1.25rem;
    width: 100%;
}

.text {
    font-family: Lora;
    font-style: normal;
    font-weight: normal;
    font-size: 20px;
    line-height: 25px;
    letter-spacing: 0.75px;
    color: #000000;
}

.btn-secondary {
    background-color: #f5942e;
    width: 220px;
    height: 54px;
    border-radius: 50px;
    align-items: center;
    text-align: center;
    border: none;
    cursor: pointer;
}

.btn-text {
    font-family: "Raleway";
    font-style: normal;
    font-weight: bold;
    font-size: 18px;
    line-height: 16px;
    letter-spacing: 0.02em;
    color: #ffffff;
    text-decoration: none;
    position: relative;
}

js:

  var cardLink = document.getElementsByClassName("card-link");
  var i;

  for (i = 0; i < cardLink.length; i++) {
    cardLink[i].addEventListener("click", function () {

      this.classList.toggle("active");


      var cardLinkDisplay = this.nextElementSibling;
      if (cardLinkDisplay.style.display === "block") {
        cardLinkDisplay.style.display = "none";
      } else {
        cardLinkDisplay.style.display = "block";
      }
    });
  }
...