В настоящее время я пытаюсь изучить Flex Box, но моих знаний недостаточно, чтобы знать, что искать в Google или Stack.
Я хочу, чтобы первый элемент, 'склад', был выровнен по левому краю гибкого контейнера, а значок социальной сети последний был выровнен по правому краю.
Мне нужно пространство между списком акций и первым значком социальной сети, а затем немного места между каждым значком социальной сети.

.flex-container {
width: 100%;
padding-left: 0;
padding-right: 0;
}
#flex-items {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-end;
background-color: orange;
}
.stock {
margin-right: auto;
background-color: #6dc993;
display: flex;
border: 2px solid blue;
flex-grow: 1;
}
.stock > p {
margin-left: 5%;
display: flex;
align-self: center;
font-size: 20px;
color: white;
height: 20%;
}<div class = "flex-container">
<div id = "flex-items">
<div class = "stock"><p>Stock List</p></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
</div>
</div>





Я избавился от flex-grow на .stock, потому что это позволило ему разрастись, чтобы уместить остальное пространство, а это именно то, чего вы не хотите, а затем нацеливаю на div социальных сетей и добавляю маржу, чтобы разнести их. (Или вы можете добавить еще один контейнер вокруг значков и согнуть их между ними). Затем я добавляю ширину к заготовке, например 40%. Можно сделать эту ширину такой же гибкой, как говорят другие.
.flex-container {
width: 100%;
padding-left: 0;
padding-right: 0;
}
#flex-items {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
background-color: orange;
}
.stock {
width: 40%;
margin-right: auto;
background-color: #6dc993;
display: flex;
border: 2px solid blue;
}
.stock>p {
margin-left: 5%;
display: flex;
align-self: center;
font-size: 20px;
color: white;
height: 20%;
}
#flex-items div:not(:first-of-type) {
margin-left: 10px;
}<div class = "flex-container">
<div id = "flex-items">
<div class = "stock">
<p>Stock List</p>
</div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
</div>
</div>Да, селектор кажется правильным для всех элементов после первого. Я бы лично использовал маржу для интервала. Если это ссылки, заполнение просто заставит ссылку включать пустое пространство
Или вы можете добавить класс ко всем этим div, чтобы их было проще выбирать, как предлагали другие.
Вот мое решение твоей проблемы
.stock {
margin-right: auto;
background-color: #6dc993;
display: flex;
border-right: 5px solid blue;
flex-grow: 1; //removed
flex-basis: 30%; //added
}
Я добавил flex-basis к статическим 30% и удалил динамический flex-grow. Поскольку для flex-grow установлено значение 1, в вашем случае ширина вашего .stock будет увеличиваться относительно ширины экрана.
Наконец, добавлен интервал для социальных иконок.
#flex-items div:not(:first-of-type) {
margin-left: 10px;
}
Что-то вроде этого:
.flex-container {
width: 100%;
padding-left: 0;
padding-right: 0;
}
#flex-items {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
background-color: orange;
height: 75px;
}
.stock {
margin-right: auto;
background-color: #6dc993;
display: flex;
border: 2px solid blue;
flex-grow: 1;
width: 33%;
}
.links {
width: 66%;
display: flex;
justify-content: flex-end;
}
.links > div > img {
margin-left: 5px;
}
.stock > p {
margin-left: 5%;
display: flex;
align-self: center;
font-size: 20px;
color: white;
height: 20%;
}<div class = "flex-container">
<div id = "flex-items">
<div class = "stock"><p>Stock List</p></div>
<div class = "links">
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
</div>
</div>
</div>Как все упоминали, проблема связана с вашим flex-grow, и я бы не предлагал удалить этот атрибут, но вместо этого, чтобы лучше понять flexbox, обратитесь к этому Flex-Grow. Добавление гибкого роста изменит размер всех элементов div.
The flex-grow property specifies how much a flex item will grow relative to the rest of the flex items.
Вы можете найти решение в этом кодовый ключ
.flex-container {
width: 100%;
padding-left: 0;
padding-right: 0;
}
#flex-items {
display: flex;
justify-content: flex-start;
background-color: orange;
}
.socialWrapper {
display: flex;
}
.stock {
margin-right: auto;
background-color: #6dc993;
display: flex;
width: 40%;
border: 2px solid blue;
}
.stock > p {
margin-left: 5%;
display: flex;
align-self: center;
font-size: 20px;
color: white;
height: 20%;
}
.icon-wrap {
margin-left:5px;
}
.icon-wrap img {
height: 100%;
}<div class = "flex-container">
<div id = "flex-items">
<div class = "stock"><p>Stock List</p></div>
<div class = "socialWrapper">
<div class = "icon-wrap"><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div class = "icon-wrap"><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div class = "icon-wrap"><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div class = "icon-wrap"><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
<div class = "icon-wrap"><img title = "Like us on Facebook" src = "http://i.cubeupload.com/ULYeTe.jpg" alt = "Like us on Facebook" width = "68" height = "76" /></div>
</div>
</div>
</div>
спасибо, просто удалил бы flex-grow и добавил flex-items> div: nth-child (n + 2) {padding-left: 10px; } тоже работают?