Не может взаимодействовать с div в его контейнере

#html #css

Вопрос:

Я пытаюсь создать интерфейс, который открывает раздел с несколькими модулями, которые можно перетаскивать.

Я начал с создания скелета интерфейса, используя взлом флажка, чтобы открывать и закрывать раздел, но по какой-то причине я не могу взаимодействовать с div внутри. Всякий раз, когда я ставлю «курсор: переместить», мышь не реагирует и даже не может выбрать div.

Я попытался передать «курсор: переместить;» родительским элементам, чтобы увидеть, с каким div взаимодействует, и это были «.разделы», но я не знаю, что в этом div вызывает такое поведение.

Вот код :

https://jsfiddle.net/7kyp3jsc/2/

 <div class="warper">

  <form class="mode">
    <label>
      <input type="radio" name="mode" value="simple" checked>
      <span>Simple</span>
    </label>
    <label>
      <input type="radio" name="mode" value="avance">
      <span>Avancé</span>
    </label>
  </form>
  <div class="sections">      
    <input type="checkbox" id="sections" value="sections">
    <label for="sections">Sections</label>
    <div class="winsec win1">
      <div class="tsection"></div>
    </div>
  </div>
  <div class="sections">  
    <label for="sections2">Sections</label>
    <input type="checkbox" id="test" value="sections2">
    <div class="winsec win2">
      <div class="tsection"></div>
    </div>
  </div>
</div>
 
     
    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    
    body {
      font-family: Arial, Helvetica, sans-serif;
      display: flex;
      width: 100%;
      height: 200vh;
      background-color: #d3c7ae;
      flex-direction: column;
    }
    
    .warper {
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      padding: 2em 4em;
      background-color: #706c63;
      border: 3px solid blue;
    }
    
    
    .sections {
      position: relative;
      height: auto;
      display: flex;
      flex-flow: row wrap;
      margin: 0 auto;
      width: 24rem;
      border: 2px solid pink;
      transition: 0.4s;
      overflow: hidden;  
      cursor: pointer;
    }
    
    
    .sections label {
      border: 2px solid red;
      width: 100%;
    }
    
    
    .sections input {
      position: absolute;
      top: 0;
      left: 0;
      border: 2px solid yellow;
      width: 100%;
      height: 22px;
      cursor: pointer;
    }
    
    .winsec {
      pointer-events: none;
      height: 0em;
      width: 100%;
      border: 2px solid green;
      background: green;  
    }
    
    #sections:checked ~ div,
    #test:checked ~ div {
      height: 15rem;
      transition: 0.4s ease-out;
    }
    
    #sections:not(:checked) ~ div,
    #test:not(:checked) ~ div {
      height: 0rem;
      transition: 0.4s ease-out;
    }
    
    .tsection {
      height: 50px;
      width: 50px;
      background: $brown;
      cursor: move;
    }
    
    .mode {
      display: flex;
      margin: 0 auto;
      max-width: 24em;
      padding: 0 1.5em;
      border: 3px solid pink;
    }
    
    .mode,
    .mode label {
      width: 100%;
    }
    
    .mode label {
      cursor: pointer;
      position: relative;
      height: auto;
    }
    
    .mode label span {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 0.5em 2em;
      background: $brown;
      color: $beige;
      transition: 0.5s;
    }
    
    input[type=radio] {
      position: absolute;
      opacity: 0;
      height: 0;
      width: 0;
    
    }
    
    input[type=checkbox] {
      opacity: 0;
    }
    
    .mode label input:checked   span {
      opacity: 1;
      background: $green;
    }
    
    .mode label input:focus {
      outline: transparent;
    }
 

Комментарии:

1. Что именно вы имеете в виду, говоря о невозможности взаимодействовать с div ? div Элемент обычно не имеет интерактивного

2. Вам следует прочитать это , чтобы узнать больше о перетаскивании.

3. @JonP Я имею в виду, что я не могу нажать на него и ничего не произойдет при наведении курсора. .tsections, у которого есть свойство «курсор: переместить;», не превращается в указатель перемещения (или любой другой указатель, если на то пошло), и если я его проверяю, он перенаправляет меня в .разделы, как если бы .разделы были выше всего, как элемент в абсолютном положении, и я не понимаю, почему.

4. Почему » события указателя: нет;` на родительских winsec элементах? Это и есть причина проблемы.