EDIT: мой код работает. Я просто использовал компьютер с меньшим экраном для просмотра кода. Как только я переместил его на экран большего размера, пространство между ними стало работать нормально. Я думал, что схожу с ума, но разобрался с проблемой

По какой-то причине мой justify-content: space-between не разделяет мои элементы. Теги h1, button и select в классе .controls расположены рядом друг с другом, когда они должны быть разделены пробелом между ними.

Вот мой HTML и CSS, а в классе .controls пространство для выравнивания содержимого между элементами не является интервалом. Обратите внимание, что у меня также есть 2 других раздела в моем HTML-коде, помеченные как малый барабан и хай-хэт, но приведенный выше HTML-код показывает только раздел бочки.

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: sans-serif;
}

i,
svg {
  pointer-events: none;
}

.kick-pad,
.snare-pad,
.hihat-pad {
  width: 5rem;
  height: 5rem;
  margin: 1rem 0.5rem;
  cursor: pointer;
}

.hihat-track,
.snare-track,
.kick-track {
  display: flex;
  align-items: center;
  width: 70%;
  justify-content: space-between;
  margin-top: 4rem;
}

.sequencer {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.kick,
.snare,
.hihat {
  display: flex;
}

.controls {
  display: flex;
  justify-content: space-between;
  align-self: center;
  flex: 1;
  margin: 0rem 2rem;
}

.controls button {
  padding: 1rem;
  border: none;
  background: rgb(88, 88, 88);
  color: white;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.5s ease;
}

.pad {
  transition: all 0.5s ease;
}

.play {
  padding: 1rem 2rem;
  font-size: 1.5rem;
  background: rgb(88, 88, 88);
  border: none;
  color: white;
  cursor: pointer;
  margin-top: 3rem;
}

select {
  padding: 1rem;
  font-size: 1rem;
}
<div class="sequencer">
      <div class="kick-track">
        <div class="controls">
          <h1>Kick</h1>
          <button data-track="0" class="mute kick-volume">
            <i class="fas fa-volume-mute"></i>
          </button>
          <select name="kick-select" id="kick-select">
            <option value="./sounds/kick-classic.wav">Classic Kick</option>
            <option value="./sounds/kick-808.wav">808 Kick</option>
            <option value="./sounds/kick-heavy.wav">Kick Heavy</option>
          </select>
        </div>
        <div class="kick">
          <div class="pad kick-pad b0"></div>
          <div class="pad kick-pad b1"></div>
          <div class="pad kick-pad b2"></div>
          <div class="pad kick-pad b3"></div>
          <div class="pad kick-pad b4"></div>
          <div class="pad kick-pad b5"></div>
          <div class="pad kick-pad b6"></div>
          <div class="pad kick-pad b7"></div>
        </div>
      </div>

 

Вот изображение того, как это выглядит в настоящее время, и я не знаю, почему они застряли рядом, хотя я использую justify-content:space-between. введите здесь описание изображения

0
Brian 7 Апр 2020 в 22:26
Вы можете добавить эскиз того, как вы хотите, чтобы это выглядело?
 – 
DCR
7 Апр 2020 в 22:36
Просто нужно некоторое расстояние между ними. Прямо сейчас они буквально соприкасаются бок о бок, и я не понимаю, почему. Представьте, что у каждого тега внутри элемента управления есть левое и правое поле 5rem. Это то, чего я пытаюсь достичь, но css не делает этого для меня.
 – 
Brian
7 Апр 2020 в 22:39
Предоставить эскиз
 – 
DCR
7 Апр 2020 в 22:42
Я добавил фото выше, показывающее, как это выглядит в настоящее время. Мне нужно, чтобы между этими элементами было пространство.
 – 
Brian
7 Апр 2020 в 22:47
Нет свободного места для justify-content: space-between;, чтобы оно вступило в силу. чтобы увидеть эффект удалить .kick
 – 
Rainbow
7 Апр 2020 в 22:48

1 ответ

Я бы рекомендовал добавить некоторую ширину в класс, например

.controls { width: 20vw; } или .controls { width: 100%; }

0
Ceyhun Aslan 7 Апр 2020 в 22:44