Проблема на мобильном телефоне: флажок, делающий черный и средний элемент иконки гамбургера неизменным до нулевой непрозрачности - PullRequest
0 голосов
/ 06 февраля 2020

У меня проблема с моим значком гамбургера и вводом флажка.

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

Что мне нужно исправить:

  • Граница вокруг ввода, если не отмечено. ИСПРАВЛЕНО граница: none & outline: none
  • Флажок с черным фоном при установке. ИСПРАВЛЕНО Обновлены мобильные браузеры и больше не появляются.
  • Средний диапазон остается видимым. ИСПРАВЛЕНО Решение, которое я нашел, заключалось в использовании различных стилей непрозрачности кросс-браузера.

Вот HTML:

<div class="menu-icon">
  <input type="checkbox" name="checkbox" value="">
   <span></span>
   <span></span>
   <span></span>
</div>

Вот CSS:

.menu-icon input, .menu-icon input:checked {
  -webkit-appearance: none;
  -webkit-border-radius:0px;
  opacity: 0%;
  position: absolute;
  width: 50px;
  height: 50px;
  z-index: 5;
}

.menu-icon span {
  transition: all 0.4s ease-in-out;
  margin-bottom: 10px;
  background: black;
  width: 40px;
  height: 3px;
  border-radius: 10px;
}

.menu-icon input:checked ~ span:first-of-type {
  transform: rotate(45deg) translate(9px, 9px);
}

.menu-icon input:checked ~ span:nth-child(3) {
  opacity: 0%;
}


.menu-icon input:checked ~ span:last-of-type {
  transform: rotate(-45deg) translate(10px, -10px);
}


.menu-icon span:last-of-type {
  margin-bottom: 0;
}

Картинки происходящего: До После

Я пытался просмотреть предыдущие посты и в Google, но не могу похоже, что-то нашел в моей конкретной проблеме c.

Как видите, я пытался добавить некоторые веб-комплекты, но безуспешно.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 февраля 2020

Это исправляет 3 элемента в вашем списке.

В основном все изменения в .menu-icon span css. Я установил display: block; и position: relative;, чтобы центрировать интервалы на флажке. Конечно, вам может потребоваться настроить положение в соответствии с вашим макетом.

Это умное использование css для анимации и изменения стиля значка. Не мой дизайн. Я видел это в прошлом.

.menu-icon input, .menu-icon input:checked {
  opacity: 0%;
  position: relative;
  width: 50px;
  height: 50px;
  z-index: 4;
}

.menu-icon span {
  transition: all 0.4s ease-in-out;
  margin-bottom: 10px;
  background: black;
  display: block;
  width: 40px;
  height: 3px;
  border-radius: 10px;
  position: relative;
  top: -44px;
  left: 8px;
}

.menu-icon input:checked ~ span:first-of-type {
  transform: rotate(45deg) translate(9px, 9px);
}

.menu-icon input:checked ~ span:nth-child(3) {
  opacity: 0%;
}


.menu-icon input:checked ~ span:last-of-type {
  transform: rotate(-45deg) translate(10px, -10px);
}


.menu-icon span:last-of-type {
  margin-bottom: 0;
}
<div class="menu-icon">
  <input type="checkbox" name="checkbox" value="">
   <span></span>
   <span></span>
   <span></span>
</div>

codepen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...