Dàn trang với CSS Flexbox.
display: flex; /*Kích hoạt flexbox*/
flex-direction: row; /*Thiết lập hướng chính*/
flex-wrap: nowrap; /*Thiết lập chế độ wrap, khi các phần tử vượt qua kích thước hướng chính*/
justify-content: flex-end; /*Căn chỉnh nội dung bên trong container có flexbox*/
align-items: stretch; /*Căn chỉnh phần tử con theo hướng vuông góc hướng chính*/
align-content: stretch; /*Căn chỉnh hàng (cột) theo hướng vuông góc (chỉ hiệu lực khi nhiều hàng hoặc cột)*/
padding: 5px;
background: #9C27B0;
min-width: 320px;
height: 480px;
margin: auto;
}
.flexitem {
padding: 20px;
background: lightblue;
margin: 1px;
font-weight: bold;
}
Thiết lập phần tử chứa - kích hoạt flex
Để sử dụng tính năng flexbox
cần sử dụng theo mô hình
cần có một phần tử chính thiết lập là phần tử chứa, sau đó là các phần
tử con bên trong nó. Để kích hoạt phần tử chứa có tính năng flexbox
chỉ cần thiết lập cho nó thuộc tính display: flex;
hoặc display: inline-flex;
. Ví dụ sau thiết lập lớp .containerflex
có kích hoạt flexbox
, sau đó triển khai HTML áp dụng nó.
1. Thuộc tính flex-direction
Khi kích hoạt flex
cho một phần tử, thì các phần tử con
chứa trong nó sẽ được bố trí liên tục theo một hướng được gọi là hướng
chính. Hướng chính được thiết lập bằng thuộc tính flex-direction
- khi đã có hướng chính thì hướng thứ hai sử dụng đến là hướng vuông góc với hướng chính (từ sau gọi là hướng vuông góc), flex-direction
nó nhận các giá trị:
row
(mặc định) : Hướng chính nằm ngang, phần tử sắp xếp từ trái qua phảirow-reverse
: Hướng chính nằm ngang, phần tử sắp xếp từ phải qua tráicolumn
: Hướng chính thẳng đứng, phần tử xếp từ trên xuốngcolumn-reverse
: Hướng chính thẳng đứng, phần tử xếp từ dưới lên
2. Thuộc tính flex-wrap
Nó nhận các giá trị
nowrap
(mặc định) : Các phần tử cứ xếp theo hướng chính, kể cả vượt ngoài khung containerwrap
: Các phần tử xếp theo hướng chính, nếu vượt qua kích thước khung chứa theo hướng chính sẽ ngắt tạo ra luồng xếp tiếp theo (hàng tiếp theo hoặc cột tiếp theo tùy thuộc đang là hướng chính nào).wrap-reverse
: Tương tựwrap
nhưng hàng (cột) bố trí ngược lại
3. Thuộc tính justify-content
Nó nhận các giá trị để đẩy các phần tử trôi về phía nào đó của hướng chính
flex-start
(mặc định) : đẩy các phần tử con trôi về khu vực bắt đầu hướng chínhflex-end
đẩy các phần tử về khu vực cuối hướng chínhcenter
đẩy các phần tử vào giữa hướng chínhspace-around
không gian thừa theo hướng chính chia đều cho khoảng cách các phần tửspace-between
không gian thừa theo hướng chính chia đều cho khoảng cách các phần tử (phần tử đầu và cuối sát mép khung)
4. Thuộc tính align-items
Nó nhận các giá trị để điều khiển phần tử con theo hướng Vuông góc hướng chính
stretch
(mặc định) : phần tử con mở rộng kích thước tối đa (bằng với chiều cao hàng hoặc chiều rộng cột) của phần tử theo hướng vuông góc hướng chínhbaseline
các phần tử con bám theo đường baseline của hàng (cột)center
phần tử đẩy vào giữa hàng (cột)space-around
không gian thừa theo hướng chính chia đều cho khoảng cách các phần tửspace-between
không gian thừa theo hướng chính chia đều cho khoảng cách các phần tử (phần tử đầu và cuối sát mép khung)
5. Thuộc tính align-content
Nó điều chỉnh vị trí các hàng (các cột) trong khung, nó nhận các giá trị như stretch, center, flex-end ...
Chỉ có hiệu lực khi có nhiều hàng hoặc nhiều cột.
Thiết lập các phần tử con
Tính năng liên quan đến flex
ngoài thiết lập với các
thuộc tính từ phần tử chứa (cha - container), còn có thể thiết lập trực
tiếp đến từng phần tử con, xem xét các thuộc tính
- flex-grow
- flex-shrink
- flex-basis
- flex
- align-self
- order
flex-grow
gán các giá trị bằng số, nó cho biết phần tử
này chiếm bao nhiêu phần trong không gian còn lại (trừ đi phần đã chiếm
bởi các phần tử có flex-grow bằng 0) khung chứa theo hướng chính.
2. Thuộc tính flex-shrink
Thuộc tính flex-shrink
nhận giá trị là số, cho biết phần tử có thể co lại bao nhiêu phần khi cần thiết
3. Thuộc tính flex-basis
Thuộc tính gán chiều dài khởi tạo cho phần tử trong hệ thống flex,
ví dụ flex-basis:100px
4. Thuộc tính flex
Thuộc tính này là cách viết tổng hợp cả ba thuộc tính flex-grow
, flex-shrink
, flex-basic
trên một dòng
Ví dụ: flex: 1 0 100px
5. Thuộc tính align-self
Căn chỉnh một phần tử trong hệ thống flex, align-self
nhận các giá trị:
stretch
, flex-end
, center
, flex-start
Cũng lưu ý có thể kết hợp với các thuộc tính margin để điều chỉnh vị trí.
5. Thuộc tính order
Thứ thứ tự hiển thị sẽ được qui định lại theo thuộc tính này.
vd: .item2 { order: 1; }
Gửi bài viết tới Facebook