Как сделать, чтобы первые элементы обертывались поверх других элементов с помощью flexbox?

Я делаю радиокнопки. Это почти так, как я хочу.

input[type=radio] {
  position: absolute;
  visibility: hidden;
  display: none;
}

label {
  flex: 1 0 auto;
  background-color: white;
  text-align: center;
  color: dimgray;
  cursor: pointer;
  font-weight: bold;
  user-select: none;
  padding: 5px;
  width: 60px;
  transition: background 0.2s, color 0.2s;
}

input[type=radio]:checked + label{
  color: White;
  background: dimgrey;
  
  &:hover {
    color: White;
    background: dimgrey;
  }
}

input[type=radio] + label:hover {
  color: white;
  background-color: lightgrey;
}

label + input[type=radio] + label {
  border-left: 0.5px solid lightgrey;
}

.radio-group {
  display: flex;
  flex-wrap: wrap;
  max-width: max-content;
  align-items: stretch;
  border: 0.5px solid dimgrey;
}
<form>
  <div class = "radio-group flexbox">
    <input type = "radio" id = "alle" value = "alle" name = "selector" checked><label for = "alle">Alle</label
    ><input type = "radio" id = "aktiv" value = "aktiv" name = "selector" ><label for = "aktiv">Aktive</label
    ><input type = "radio" id = "inaktiv" value = "inaktiv" name = "selector"><label for = "inaktiv">Inaktive</label>
  </div>
</form>

Как это выглядит сейчас в упаковке: Как сделать, чтобы первые элементы обертывались поверх других элементов с помощью flexbox?

Как я хочу, чтобы он выглядел после упаковки: Как сделать, чтобы первые элементы обертывались поверх других элементов с помощью flexbox?

Как я могу это сделать? Я пробовал настраивать гибкость, направление, поток и т. д. Не смог заставить его работать так, как я хотел.

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

width: 100% для этого элемента и включить обертку на гибком контейнере

Temani Afif 21.03.2018 16:35

Замечание: вам не нужна техника < ...wrap > во флексбоксе.

Stickers 21.03.2018 16:40
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
35
1

Ответы 1

Пожалуйста, проверьте код ниже. Спасибо

input[type=radio] {
  position: absolute;
  visibility: hidden;
  display: none;
}

label {
  flex: 1 0 auto;
  background-color: white;
  text-align: center;
  color: dimgray;
  cursor: pointer;
  font-weight: bold;
  user-select: none;
  padding: 5px;
  width: 60px;
  transition: background 0.2s, color 0.2s;
}

input[type=radio]:checked + label{
  color: White;
  background: dimgrey;
  
  &:hover {
    color: White;
    background: dimgrey;
  }
}

input[type=radio] + label:hover {
  color: white;
  background-color: lightgrey;
}

label + input[type=radio] + label {
  border-left: 0.5px solid lightgrey;
}

.radio-group {
  display: flex;
  flex-wrap: wrap;
  max-width: max-content;
  align-items: stretch;
  border: 0.5px solid dimgrey;
}

.radio-group.flexbox > label:nth-child(2) {
  width: calc( 100% - 12px ) !IMPORTANT;
}
<form>
  <div class = "radio-group flexbox">
    <input type = "radio" id = "alle" value = "alle" name = "selector" checked><label for = "alle">Alle</label
    ><input type = "radio" id = "aktiv" value = "aktiv" name = "selector" ><label for = "aktiv">Aktive</label
    ><input type = "radio" id = "inaktiv" value = "inaktiv" name = "selector"><label for = "inaktiv">Inaktive</label>
  </div>
</form>

Другие вопросы по теме