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

Разбираемся в CSS
Ответить Пред. темаСлед. тема
Anonymous
 Как динамически регулировать высоту контейнера при переносе гибких элементов в React с помощью CSS?

Сообщение Anonymous »

Я работаю над приложением React, в котором у меня есть контейнер (контейнер ответов) с несколькими кнопками (элементами ответа) внутри него. Эти кнопки размещаются с использованием flexbox (display: flex) с flex-wrap: Wrap, чтобы они могли переноситься на следующую строку при превышении ширины контейнера.
Проблема, с которой я столкнулся. Облицовка заключается в том, что высота контейнера ответов не регулируется динамически в зависимости от количества кнопок или при переносе кнопок на следующую строку. Вместо этого он остается фиксированным, вызывая неожиданное поведение:
Изображение
< /p>
Как вы можете видеть на изображении, оно почти перекрывает контейнер ниже (что нежелательно), я хочу сохранить постоянное пространство между контейнером ответов и контейнером с кнопками ниже.
Я думаю, что если мне удастся динамически регулировать высоту, я смогу установить что-то вроде поля-верха для контейнера кнопок и таким образом сохранить постоянное пространство. Когда я делаю это сейчас, верхний край соответствует первой строке только с ответами, и поэтому следующие строки по-прежнему перекрывают контейнер кнопок.
Вот упрощенная версия моего компонента React и CSS:

Код: Выделить всё

body, html, #root {
margin: 0;
padding: 0;
height: 100%;
/* width: 100%; */
}

.container {
width: 786px;
/* height: 244px; */
min-height: 244px;
position: absolute;
top: 35%;
left: 327px;
}

.question {
width: 583px;
height: 88px;
left: 102px;
position: relative;
margin-bottom: 16px;
font-family: Grange;
font-size: 40px;
font-weight: 500;
line-height: 44px;
text-align: center;
min-height: 88px;
word-wrap: break-word;
overflow-wrap: break-word;

}

.answers-container {
width: 100%;
height: 44px;
top: 120px;
gap: 10px;
justify-content: center;
/* width: fit-content; */
display: flex;
flex-wrap: wrap;
max-width: 985px;
margin-bottom: 50px;

}

.answer {
border-radius: 8px;
border: 1px solid #5bc1ed;
justify-content: center;
align-items: center;
padding: 10px 20px;
font-size: 16px;
background-color: white;
cursor: pointer;
transition: background-color 0.3s;
width: fit-content;
min-width: 189px;
text-align: left;
}

.answer:hover {
background-color: #e0f7ff;
}

.answer-text {
white-space: nowrap;
}

.answer-text {
font-family: Proxima Nova;
font-size: 16px;
font-weight: 400;
line-height: 16px;
width: 129px;
height: 16px;
text-align: left;
/* margin-left: 8px; */
margin: 9px auto;
}

.next-back {
width: 244px;
height: 48px;
top: 196px;
left: 271px;
gap: 20px;
position: absolute;
display: flex;
justify-content: flex-end;
align-items: center;
/* margin-top: 20px; */
}

.button-next {
width: 189px;
height: 48px;
padding: 14px 40px 14px 40px;
gap: 8px;
border-radius: 8px;
display: flex;
/* margin-left: 100%; */
background: #c3edff;
}

.button-text {
font-family: Proxima Nova;
font-size: 16px;
font-weight: 500;
line-height: 19.49px;
text-align: center;
width: 98px;
display: flex;
height: 19px;
}

.arrow-icon {
width: 20px;
height: 20px;
}

.arrow {
width: 14.14px;
height: 14.14px;
top: -0px;
left: 10px;
gap: 0px;
opacity: 0px;
/* angle: -45 deg; */

}

.back-link {
width: 35px;
height: 19px;
gap: 8px;
border-radius: 8px;

font-family: Proxima Nova;
font-size: 16px;
font-weight: 500;
line-height: 19.49px;
text-align: center;
color: #677487;
display: flex;
justify-content: center;
align-items: center;
text-decoration: underline;
}

Код: Выделить всё


What benefit do you look for in your hair products?

 handleAnswer('Anti-breakage')} className='answer'>
a. Anti-breakage

 handleAnswer('Hydration')} className='answer'>
b. Hydration

 handleAnswer('Soothing dry scalp')} className='answer'>
c. Soothing dry scalp

 handleAnswer('Repairs appearance of damaged hair')} className='answer'>
d. Repairs appearance of damaged hair

 handleAnswer('Volume')} className='answer'>
e.  Volume

 handleAnswer('Curl and coil enhancing')} className='answer'>
f. Curl and coil enhancing


[url=/second]Back[/url]

[*]
Next question







Что я пробовал:
< ul>
Удаление фиксированной высоты из .answers-container.
[*]Обеспечение гибкого переноса: перенос применяется к .answers-container.
[*]Обеспечение применения justify-content: center к .answers-container.
[*]Проверка фиксированной высоты или других конфликтующих стилей в родительских элементах.

Ожидаемое поведение:
Я ожидаю, что контейнер ответов будет динамически регулировать свою высоту в зависимости от количества содержащихся в нем кнопок (элементов ответа) и времени они переходят на следующую строку. Таким образом, при переносе кнопок не должно быть ненужных пробелов или переполнения.
Текущее поведение:
Высота контейнера ответов остается исправлено, вызывающее переполнение кнопок.
Вопрос:
Как я могу гарантировать, что высота контейнера ответов динамически регулируется в зависимости от его содержимого (кнопки ) в приложении React с использованием CSS? Какие изменения мне следует внести в компонент CSS или React, чтобы добиться такого поведения?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ct-with-cs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «CSS»