Как переместить блок div в а) центр и б) вправо? То есть я хочу переместить innerWrap и его содержимое либо в центр, либо вправо.
.smallW {
width: 10%;
height: 100px;
background-color: green;
float: left;
}
.largeW {
width: 50%;
height: 100px;
background-color: blue;
float: left;
}
.outerWrap {
position: relative;
}
.innerWrap {
background-color: yellow;
width: 100%;
}<div class = "outerWrap">
<div class = "innerWrap">
<div class = "smallW"></div>
<div class = "largeW"></div>
<div class = "smallW"></div>
</div>
</div>первое правило для центра: никогда не используйте float. Самый простой способ, чем flexbox, - это рассмотреть встроенный блок, а затем просто настроить выравнивание текста.






.innerWrap{
display: flex;
flex-direction: row
justify-content: center
}
вы можете использовать ниже для выравнивания по правому краю
justify-content: flex-end
Спасибо, ваш ответ был первым, и он работает, поэтому я его принимаю. Меня смутил центр (flex-end). Так что для тех, кому нужен этот ответ, вы должны написать его отдельно как justify-content: center ИЛИ justify-content: flex-end.
Попробуйте использовать display: flex для этого. Гораздо проще выполнить выравнивание, чем с помощью float.
Используя flex, вы можете выровнять внутренние элементы по центру, используя justify-content: center;, или по концу контейнера, используя justify-content: flex-end;, поэтому вам не нужно использовать свойство float. Это пример кода. Надеюсь, это поможет вам.
HTML
<div class = "outerWrap">
<div class = "innerWrap">
<div class = "smallW"></div>
<div class = "largeW"></div>
<div class = "smallW"></div>
</div>
</div>
CSS
.smallW {
width: 10%;
height: 100px;
background-color: green;
}
.largeW {
width: 50%;
height: 100px;
background-color: blue;
}
.outerWrap {
display: flex;
}
.innerWrap {
background-color: yellow;
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;/* For center align */
/* justify-content: flex-end; */ /* Align to end */
}
Ссылка на скрипт JS: https://jsfiddle.net/SJ_KIllshot/o7e4cjdL/
Вы можете выровнять содержимое, используя flexbox в innerWrap
.innerWrap.center {
display: flex;
justify-content: center;
}
.innerWrap.right {
display: flex;
justify-content: flex-end;
}
.smallW {
width: 10%;
height: 100px;
background-color: green;
float:left;
}
.largeW {
width: 50%;
height: 100px;
background-color:blue;
float:left;
}
.outerWrap {
position:relative;
}
.innerWrap {
background-color:yellow;
width:100%;
}
/* additional styles */
.innerWrap.center {
display: flex;
justify-content: center;
}
.innerWrap.right {
display: flex;
justify-content: flex-end;
}<div class = "outerWrap">
<div class = "innerWrap center">
<div class = "smallW"></div>
<div class = "largeW"></div>
<div class = "smallW"></div>
</div>
<br>
<div class = "innerWrap right">
<div class = "smallW"></div>
<div class = "largeW"></div>
<div class = "smallW"></div>
</div>
</div>.smallW {
flex-basis: 10%;
background-color: green;
}
.largeW {
flex-basis: 50%;
background-color:blue;
}
.innerWrap {
background-color:yellow;
display:flex;
justify-content:flex-end;
height:100px;
}<div class = "outerWrap">
<div class = "innerWrap">
<div class = "smallW"></div>
<div class = "largeW"></div>
<div class = "smallW"></div>
</div>
</div>Используйте Flex вместо float.
Спасибо всем, кто ответил на него, но я могу принять только один. Все ответы, предоставленные до сих пор, используют flex, интересно, как это было бы сделано за несколько дней до flex...