#html #css #flexbox
#HTML #css #flexbox
Вопрос:
Надеялся, что кто-нибудь сможет показать мне, как сделать так, чтобы «элементы сетки» 1 и 2 располагались рядом друг с другом, занимая по 50% каждый, а затем «элемент сетки» 3 находился на строке ниже шириной 100%:
.grid-items {
display: flex;
flex-flow: row wrap;
background-color: DodgerBlue;
}
.grid-items > div {
background-color: #f1f1f1;
width: 100px;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
.grid-item {
flex: 1 50%;
padding: 0 50px 40px;
box-sizing: border-box;
min-height: 650px;
position: relative;
overflow: hidden;
flex-direction: column;
justify-content: center;
display: flex;
text-align: center;
}
.grid-item-wide {
flex: 1 100%;
min-height: 575px;
padding-bottom: 20px;
}
<!DOCTYPE html>
<html>
<body>
<h1>Flexible Boxes</h1>
<div class="grid-items">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item" class="grid-item-wide">3</div>
</div>
</body>
</html>
Комментарии:
1. замените 50% на 40% в свойстве flex (не удалось найти дубликат ..)
Ответ №1:
Отрегулируйте 10-кратный запас в flex: 1 50%
— использовании flex: 1 calc(50% - 20px)
— смотрите демонстрацию ниже:
.grid-items {
display: flex;
flex-flow: row wrap;
background-color: DodgerBlue;
}
.grid-items > div {
background-color: #f1f1f1;
width: 100px;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
.grid-item {
flex: 1 calc(50% - 20px); /* changed */
padding: 0 50px 40px;
box-sizing: border-box;
min-height: 650px;
position: relative;
overflow: hidden;
flex-direction: column;
justify-content: center;
display: flex;
text-align: center;
}
.grid-item-wide {
flex: 1 100%;
min-height: 575px;
padding-bottom: 20px;
}
<!DOCTYPE html>
<html>
<body>
<h1>Flexible Boxes</h1>
<div class="grid-items">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item grid-item-wide">3</div> <!-- note the change here too -->
</div>
</body>
</html>
Комментарии:
1. Спасибо, чувак, так полезно — у меня были проблемы с этим некоторое время!
Ответ №2:
50% минус ваше поле — это необходимая вам ширина
html {
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
.grid-items {
display: flex;
flex-flow: row wrap;
background-color: DodgerBlue;
}
.grid-items>div {
background-color: #f1f1f1;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
.grid-item {
flex: 1 1 calc(50% - 20px);
padding: 0 50px 40px;
box-sizing: border-box;
min-height: 650px;
position: relative;
overflow: hidden;
flex-direction: column;
justify-content: center;
display: flex;
text-align: center;
}
.grid-item-wide {
flex: 1 100%;
min-height: 575px;
padding-bottom: 20px;
}
<!DOCTYPE html>
<html>
<body>
<h1>Flexible Boxes</h1>
<div class="grid-items">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item" class="grid-item-wide">3</div>
</div>
</body>
</html>
Комментарии:
1. Спасибо, чувак, так полезно — у меня были проблемы с этим некоторое время!