Как добавить выпадающее меню в нижней части карты - PullRequest
0 голосов
/ 26 января 2019

Я сделал карту flexbox, используя HTML, CSS.Я должен добавить выпадающее меню в нижней части карты ниже раздела нижнего колонтитула, который отображается при нажатии кнопки.Я пытался, но не могу получить меню такой же ширины, как карта и правильное положение.Как я могу достичь этого?

function showMenu() {
  document.getElementById('dropdown').classList.toggle('show');
}
.card {
  display: flex;
  flex-direction: column;
  height: 300px;
  width: 200px;
  border: 1px solid black;
  position: relative;
}

.card .header {
  display: flex;
  flex: 2;
  justify-content: center;
  align-items: center;
}

.card .body {
  display: flex;
  flex: 5;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid black;
  border-top: 1px solid black;
}

.card .footer {
  display: flex;
  flex: 2;
  justify-content: center;
  align-items: center;
}

.dropdown-content {
  display: none;
  flex: 2;
  position: absolute;
  background-color: blue;
  overflow: none;
  z-index: 999;
  color: #ffffff;
  flex-direction: column;
}

.show {
  display: block;
}
<div class="card">
  <div class="header">
    Header
  </div>
  <div class="body">
    Body
  </div>
  <div class="footer">
    <button onclick="showMenu()">Toggle Menu</button>
  </div>
  <ul id="dropdown" class="dropdown-content">
    <li>Menu 1</li>
    <li>Menu 2</li>
    <li>Menu 3</li>
    <li>Menu 4</li>
  </ul>
</div>

Мне нужно выпадающее меню того же размера, что и для карты, расположенное ниже нижнего колонтитула

1 Ответ

0 голосов
/ 26 января 2019

Добавьте top: 100%, box-sizing: border-box и margin: 0 в меню.

function showMenu() {
  document.getElementById('dropdown').classList.toggle('show');
}
.card {
  display: flex;
  flex-direction: column;
  height: 300px;
  width: 200px;
  border: 1px solid black;
  position: relative;
}

.card .header {
  display: flex;
  flex: 2;
  justify-content: center;
  align-items: center;
}

.card .body {
  display: flex;
  flex: 5;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid black;
  border-top: 1px solid black;
}

.card .footer {
  display: flex;
  flex: 2;
  justify-content: center;
  align-items: center;
}

.dropdown-content {
  margin: 0;
  box-sizing: border-box;
  display: none;
  position: absolute;
  top: 100%;
  width: 100%;
  flex: 2;
  background-color: blue;
  overflow: none;
  z-index: 999;
  color: #ffffff;
  flex-direction: column;
}

.show {
  display: block;
}
<div class="card">
  <div class="header">
    Header
  </div>
  <div class="body">
    Body
  </div>
  <div class="footer">
    <button onclick="showMenu()">Toggle Menu</button>
  </div>
  <ul id="dropdown" class="dropdown-content">
    <li>Menu 1</li>
    <li>Menu 2</li>
    <li>Menu 3</li>
    <li>Menu 4</li>
  </ul>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...