Để căn chỉnh một đứa trẻ flex sang bên phải, đặt nó vớimargin-left: auto;
Từ thông số kỹ thuật flex :
Một cách sử dụng lề tự động trong trục chính là tách các mục flex thành các "nhóm" riêng biệt. Ví dụ sau đây cho thấy cách sử dụng điều này để tái tạo một mẫu UI chung - một thanh hành động duy nhất với một số căn chỉnh ở bên trái và những cái khác được căn chỉnh ở bên phải.
.wrap div:last-child {
margin-left: auto;
}
.wrap {
display: flex;
background: #ccc;
width: 100%;
justify-content: space-between;
}
.wrap div:last-child {
margin-left: auto;
}
.result {
background: #ccc;
margin-top: 20px;
}
.result:after {
content: '';
display: table;
clear: both;
}
.result div {
float: left;
}
.result div:last-child {
float: right;
}
<div class="wrap">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
<!-- DESIRED RESULT -->
<div class="result">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
Ghi chú:
Bạn có thể đạt được hiệu ứng tương tự bằng cách đặt flex-grow: 1 trên mục flex giữa (hoặc tốc ký flex:1
) sẽ đẩy mục cuối cùng sang bên phải. ( Bản trình diễn )
Tuy nhiên, sự khác biệt rõ ràng là vật phẩm ở giữa trở nên lớn hơn mức cần thiết. Thêm một đường viền cho các mục flex để thấy sự khác biệt.
.wrap {
display: flex;
background: #ccc;
width: 100%;
justify-content: space-between;
}
.wrap div {
border: 3px solid tomato;
}
.margin div:last-child {
margin-left: auto;
}
.grow div:nth-child(2) {
flex: 1;
}
.result {
background: #ccc;
margin-top: 20px;
}
.result:after {
content: '';
display: table;
clear: both;
}
.result div {
float: left;
}
.result div:last-child {
float: right;
}
<div class="wrap margin">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
<div class="wrap grow">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
<!-- DESIRED RESULT -->
<div class="result">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>