#html #css #flexbox
#HTML #css #flexbox
Вопрос:
Я хочу сделать равный промежуток для дочерних элементов flexbox. Я использовал нулевое значение правого поля для каждого дочернего элемента, а затем применил поле обратно к последнему дочернему элементу. Но поле справа почему-то не применяется. Вы можете увидеть после прокрутки до конца дочернего элемента.
смотрите демонстрацию ниже
.flex {
display: flex;
background: pink;
width: 80px;
overflow: auto;
}
.item {
min-width: 20px;
height: 20px;
background: black;
margin: 8px;
margin-right: 0;
}
.item:last-child {
margin-right: 4px;
}
<div class="flex">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Ответ №1:
добавьте другой родительский div и укажите переполнение для родительского div. Для .flex
класса применяется display:inline-flex;
, тогда он будет работать
.flex-parent{
overflow: auto;
width: 80px;
}
.flex {
display: flex;
background: pink;
min-width:100%;
float:left;
}
.flex-parent{
overflow: auto;
width: 80px;
}
.flex {
display: inline-flex;
background: pink;
/*min-width:100%;
float:left;*/
}
.item {
min-width: 20px;
height: 20px;
background: black;
margin: 8px;
margin-right: 0;
}
.item:last-child {
margin-right: 4px;
}
<div class="flex-parent">
<div class="flex">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
Комментарии:
1. встроенный flex лучше, чем комбинирование float и flex
2. @TemaniAfif Я пытался, но это не сработало, поэтому я добавил float
3. @TemaniAfif да, это работает, я думал, ты пробовал без родительского div. Хорошо, я изменю ответ
Ответ №2:
.flex {
display: flex;
background: pink;
width: 200px;
overflow: auto;
justify-content: space-between;
}
.item {
min-width: 20px;
height: 20px;
background: black;
}
<div class="flex">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>