#html #css
#HTML #css
Вопрос:
Использование justify-content:center;
не дает требуемых результатов, как показано на рисунках.
.box {
height: 200px;
width: 200px;
background-color: blue;
margin:10px ;
}
.flex{
margin:10px;
border:3px solid black;
display:flex;
flex-wrap:wrap;
justify-content:center;
}
<div class="flex"><p>
Lets learn about Flexbox.Flexbox needs a parent
container in order to work elements inside of that container
these elements can be centered and adjusted easily.
</p>
<div class="box" id="box1">Box1</div>
<div class="box" id="box2">Box2</div>
<div class="box" id="box3">Box3</div>
<div class="box" id="box4">Box4</div>
<div class="box" id="box5">Box5</div>
<div class="box" id="box6">Box6</div>
</div>
Желаемый:
Актуально:
Комментарии:
1. вы пробовали выравнивать содержимое, выравнивать элементы, выравнивать себя, выравнивать элементы?
2. Да, я пробовал это. К сожалению, в каждом случае результат один и тот же.
3. используйте
flex-shrink
иflex-grow
, если вы не хотите оставлять пустое место в своем макете.4. Вам было дано много ответов на ваш вопрос. Пожалуйста, выберите один из многих ответов, которые вам больше всего нравятся, и отметьте этот вопрос как разрешенный, установив флажок слева от ответа. Спасибо.
5. @sergeykuznetsov Да, сэр.. Я не знал, что .. сделает это.
Ответ №1:
Вы можете попробовать это. Я надеюсь, это решит вашу проблему.Используйте flex-basis: 100% для тега p.
.box {
height: 200px;
width: calc((100% / 3) - 10px);
background-color: blue;
margin: 5px;
display: flex;
justify-content: center;
align-items: center;
color: white;
}
p {
flex-basis: 100%;
}
.flex {
margin: 10px;
padding: 10px;
border: 3px solid black;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="flex"><p>
Lets learn about Flexbox.Flexbox needs a parent
container in order to work elements inside of that container
these elements can be centered and adjusted easily.
</p>
<div class="box" id="box1">Box1</div>
<div class="box" id="box2">Box2</div>
<div class="box" id="box3">Box3</div>
<div class="box" id="box4">Box4</div>
<div class="box" id="box5">Box5</div>
<div class="box" id="box6">Box6</div>
</div>
</body>
</html>
Ответ №2:
Оберните ваши разделы div и установите flex-direction: column
в родительский контейнер. Таким образом, ваш flex-wrap
будет работать правильно. Теперь, как на вашей картинке, желаемый результат.
.box {
height: 200px;
width: 200px;
background-color: blue;
margin:10px ;
}
.boxes {
display: flex;
flex-wrap: wrap;
justify-content: center;
width: calc(600px 60px);
max-width: 100%;
}
.flex{
margin:10px;
border:3px solid black;
display:flex;
flex-direction: column;
align-items: center;
}
<div class="flex">
<p>
Lets learn about Flexbox.Flexbox needs a parent
container in order to work elements inside of that container
these elements can be centered and adjusted easily.
</p>
<div class="boxes">
<div class="box" id="box1">Box1</div>
<div class="box" id="box2">Box2</div>
<div class="box" id="box3">Box3</div>
<div class="box" id="box4">Box4</div>
<div class="box" id="box5">Box5</div>
<div class="box" id="box6">Box6</div>
</div>
</div>
Комментарии:
1. Я хотел решить это без использования каких-либо других тегов, но ваш метод прост и совместим. Спасибо.
2. Вы используете
flex wrap: wrap
, что означает, что на все элементы, включаяupper text
, будет влиятьflex wrap
. Следовательно, имеет смысл присвоить полямparent div
. Я был рад вам помочь 🙂
Ответ №3:
.box {
height: 200px;
width: calc((100% / 3) - 10px);
background-color: blue;
margin:10px ;
}
.flex{
margin:10px;
border:3px solid black;
display:flex;
flex-wrap:wrap;
justify-content:center;
align-items:center;
}
<div class="flex"><p>
Lets learn about Flexbox.Flexbox needs a parent
container in order to work elements inside of that container
these elements can be centered and adjusted easily.
</p>
<div class="box" id="box1">Box1</div>
<div class="box" id="box2">Box2</div>
<div class="box" id="box3">Box3</div>
<div class="box" id="box4">Box4</div>
<div class="box" id="box5">Box5</div>
<div class="box" id="box6">Box6</div>
</div>
Ответ №4:
Вы также могли бы установить width
значение p
и решить эту проблему. В приведенном ниже фрагменте используются flex-grow
и flex-shrink
, вы также можете проверить вывод в этом JSFiddle
.box {
height: 200px;
width: 200px;
background-color: blue;
margin: 10px;
flex-grow: 4;
flex-shrink: 4;
}
.flex {
margin: 10px;
border: 3px solid black;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.flex p {
width: 100%;
padding: 0 1rem;
}
<div class="flex">
<p>
Lets learn about Flexbox.Flexbox needs a parent container in order to work elements inside of that container these elements can be centered and adjusted easily.
</p>
<div class="box" id="box1">Box1</div>
<div class="box" id="box2">Box2</div>
<div class="box" id="box3">Box3</div>
<div class="box" id="box4">Box4</div>
<div class="box" id="box5">Box5</div>
<div class="box" id="box6">Box6</div>
</div>