{"id":9426,"date":"2025-04-17T11:08:55","date_gmt":"2025-04-17T04:08:55","guid":{"rendered":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/?p=9426"},"modified":"2026-03-27T17:21:04","modified_gmt":"2026-03-27T10:21:04","slug":"flex-css-la-gi","status":"publish","type":"post","link":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/tu-van-nghe-nghiep\/flex-css-la-gi","title":{"rendered":"Flex CSS l\u00e0 g\u00ec? C\u00e1ch ho\u1ea1t \u0111\u1ed9ng, thu\u1ed9c t\u00ednh v\u00e0 \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf Flexbox"},"content":{"rendered":"\n
Qu\u00e1 tr\u00ecnh x\u00e2y d\u1ef1ng giao di\u1ec7n web \u0111\u00f2i h\u1ecfi kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t b\u1ed1 c\u1ee5c linh ho\u1ea1t nh\u1eb1m t\u1ed1i \u01b0u tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng. C\u00e2u h\u1ecfi flex CSS l\u00e0 g\u00ec<\/strong> th\u01b0\u1eddng xu\u1ea5t hi\u1ec7n khi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean t\u00ecm ki\u1ebfm m\u1ed9t gi\u1ea3i ph\u00e1p hi\u1ec7u qu\u1ea3 \u0111\u1ec3 thay th\u1ebf cho c\u00e1c ph\u01b0\u01a1ng ph\u00e1p c\u0103n ch\u1ec9nh truy\u1ec1n th\u1ed1ng. Kh\u00f4ng ch\u1ec9 h\u1ed7 tr\u1ee3 s\u1eafp x\u1ebfp ph\u1ea7n t\u1eed m\u1ed9t c\u00e1ch tr\u1ef1c quan, k\u1ef9 thu\u1eadt n\u00e0y c\u00f2n mang l\u1ea1i s\u1ef1 \u0111\u01a1n gi\u1ea3n h\u00f3a trong vi\u1ec7c t\u1ea1o c\u00e1c layout ph\u1ea3n h\u1ed3i t\u1ed1t tr\u00ean m\u1ecdi thi\u1ebft b\u1ecb.<\/p>\n\n\n\n Flex CSS (vi\u1ebft t\u1eaft c\u1ee7a Flexible Box Layout Module, th\u01b0\u1eddng g\u1ecdi l\u00e0 Flexbox) l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt b\u1ed1 c\u1ee5c trong CSS gi\u00fap s\u1eafp x\u1ebfp, c\u0103n ch\u1ec9nh v\u00e0 ph\u00e2n ph\u1ed1i kh\u00f4ng gian gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed trong m\u1ed9t container m\u1ed9t c\u00e1ch linh ho\u1ea1t v\u00e0 hi\u1ec7u qu\u1ea3.<\/strong><\/p>\n<\/blockquote>\n\n\n\n Thay v\u00ec ph\u1ea3i s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng ph\u00e1p truy\u1ec1n th\u1ed1ng nh\u01b0 float, inline-block hay table, Flexbox cho ph\u00e9p b\u1ea1n ki\u1ec3m so\u00e1t to\u00e0n di\u1ec7n v\u1ecb tr\u00ed, k\u00edch th\u01b0\u1edbc, h\u01b0\u1edbng v\u00e0 tr\u1ee5c c\u1ee7a c\u00e1c ph\u1ea7n t\u1eed con \u2013 k\u1ec3 c\u1ea3 khi ch\u00fang thay \u0111\u1ed5i v\u1ec1 n\u1ed9i dung ho\u1eb7c k\u00edch th\u01b0\u1edbc.<\/p>\n\n\n\n Flex CSS \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch trong vi\u1ec7c x\u00e2y d\u1ef1ng layout ph\u1ea3n h\u1ed3i (responsive layout) \u2013 khi m\u00e0 b\u1ed1 c\u1ee5c c\u1ea7n t\u1ef1 \u0111i\u1ec1u ch\u1ec9nh \u0111\u1ec3 ph\u00f9 h\u1ee3p v\u1edbi k\u00edch th\u01b0\u1edbc m\u00e0n h\u00ecnh kh\u00e1c nhau. Ch\u1ec9 v\u1edbi m\u1ed9t v\u00e0i d\u00f2ng CSS, Flexbox c\u00f3 th\u1ec3 gi\u00fap c\u0103n gi\u1eefa ph\u1ea7n t\u1eed, gi\u00e3n \u0111\u1ec1u c\u00e1c m\u1ee5c trong thanh menu, \u0111i\u1ec1u khi\u1ec3n \u0111\u1ed9 co gi\u00e3n c\u1ee7a c\u1ed9t h\u00e0ng, hay s\u1eafp x\u1ebfp l\u1ea1i th\u1ee9 t\u1ef1 ph\u1ea7n t\u1eed tr\u00ean giao di\u1ec7n m\u00e0 kh\u00f4ng c\u1ea7n thay \u0111\u1ed5i HTML.<\/p>\n\n\n\n Flexbox \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n nh\u1eb1m kh\u1eafc ph\u1ee5c nh\u1eefng b\u1ea5t ti\u1ec7n trong c\u00e1ch b\u1ed1 c\u1ee5c truy\u1ec1n th\u1ed1ng. Tr\u01b0\u1edbc khi Flexbox xu\u1ea5t hi\u1ec7n, vi\u1ec7c c\u0103n gi\u1eefa ph\u1ea7n t\u1eed theo c\u1ea3 chi\u1ec1u ngang v\u00e0 d\u1ecdc l\u00e0 m\u1ed9t trong nh\u1eefng th\u00e1ch th\u1ee9c ph\u1ed5 bi\u1ebfn. Float th\u01b0\u1eddng khi\u1ebfn layout d\u1ec5 v\u1ee1 khi n\u1ed9i dung thay \u0111\u1ed5i, trong khi table layout kh\u00f4ng linh ho\u1ea1t v\u00e0 kh\u00f3 duy tr\u00ec. Flexbox ra \u0111\u1eddi \u0111\u1ec3 gi\u1ea3i quy\u1ebft tri\u1ec7t \u0111\u1ec3 c\u00e1c v\u1ea5n \u0111\u1ec1 \u0111\u00f3, mang l\u1ea1i m\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn hi\u1ec7n \u0111\u1ea1i, d\u1ec5 vi\u1ebft, d\u1ec5 \u0111\u1ecdc v\u00e0 d\u1ec5 m\u1edf r\u1ed9ng cho c\u1ea3 thi\u1ebft k\u1ebf c\u1ed1 \u0111\u1ecbnh l\u1eabn responsive. T\u1eeb khi \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 r\u1ed9ng r\u00e3i b\u1edfi c\u00e1c tr\u00ecnh duy\u1ec7t hi\u1ec7n \u0111\u1ea1i, Flexbox \u0111\u00e3 tr\u1edf th\u00e0nh m\u1ed9t ph\u1ea7n kh\u00f4ng th\u1ec3 thi\u1ebfu trong CSS hi\u1ec7n \u0111\u1ea1i.<\/p>\n\n\n\n \u0110\u1ec3 hi\u1ec3u v\u00e0 s\u1eed d\u1ee5ng Flexbox hi\u1ec7u qu\u1ea3, b\u1ea1n c\u1ea7n n\u1eafm v\u1eefng ba y\u1ebfu t\u1ed1 c\u1ed1t l\u00f5i: Flex Container, Flex Item v\u00e0 h\u1ec7 tr\u1ee5c b\u1ed1 c\u1ee5c. Nh\u1eefng kh\u00e1i ni\u1ec7m n\u00e0y ch\u00ednh l\u00e0 n\u1ec1n t\u1ea3ng \u0111\u1ec3 \u0111i\u1ec1u khi\u1ec3n v\u1ecb tr\u00ed, h\u01b0\u1edbng v\u00e0 s\u1ef1 ph\u00e2n b\u1ed5 kh\u00f4ng gian gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed trong m\u1ed9t b\u1ed1 c\u1ee5c linh ho\u1ea1t. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 gi\u1ea3i th\u00edch chi ti\u1ebft t\u1eebng th\u00e0nh ph\u1ea7n c\u01a1 b\u1ea3n c\u1ee7a Flexbox.<\/p>\n\n\n\n Khi b\u1ea1n \u00e1p d\u1ee5ng thu\u1ed9c t\u00ednh display: flex cho m\u1ed9t ph\u1ea7n t\u1eed HTML, ph\u1ea7n t\u1eed \u0111\u00f3 tr\u1edf th\u00e0nh Flex Container \u2013 \u0111\u00f3ng vai tr\u00f2 l\u00e0 v\u00f9ng ch\u1ee9a c\u00e1c ph\u1ea7n t\u1eed con. C\u00e1c ph\u1ea7n t\u1eed tr\u1ef1c ti\u1ebfp b\u00ean trong n\u00f3 s\u1ebd \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Flex Item.<\/p>\n\n\n\n V\u00ed d\u1ee5:<\/p>\n\n\n\n html<\/p>\n\n\n\n <div class=”container”><\/p>\n\n\n\n <div class=”item”>A<\/div><\/p>\n\n\n\n <div class=”item”>B<\/div><\/p>\n\n\n\n <div class=”item”>C<\/div><\/p>\n\n\n\n <\/div><\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n display: flex;<\/p>\n\n\n\n }<\/p>\n\n\n\n Trong v\u00ed d\u1ee5 tr\u00ean, .container l\u00e0 Flex Container, c\u00f2n c\u00e1c .item l\u00e0 Flex Item.<\/p>\n\n\n\n Flex Container ch\u1ecbu tr\u00e1ch nhi\u1ec7m ki\u1ec3m so\u00e1t c\u00e1ch s\u1eafp x\u1ebfp c\u00e1c Flex Item \u2013 ch\u1eb3ng h\u1ea1n nh\u01b0 theo chi\u1ec1u ngang, chi\u1ec1u d\u1ecdc, c\u00f3 cho ph\u00e9p xu\u1ed1ng d\u00f2ng hay kh\u00f4ng, v\u00e0 c\u0103n ch\u1ec9nh nh\u01b0 th\u1ebf n\u00e0o. C\u00e1c Flex Item c\u00f3 th\u1ec3 co gi\u00e3n, thay \u0111\u1ed5i th\u1ee9 t\u1ef1, ho\u1eb7c c\u0103n gi\u1eefa m\u1ed9t c\u00e1ch linh ho\u1ea1t m\u00e0 kh\u00f4ng c\u1ea7n thay \u0111\u1ed5i c\u1ea5u tr\u00fac HTML.<\/p>\n\n\n\n Khi l\u00e0m vi\u1ec7c v\u1edbi Flexbox, b\u1ea1n s\u1ebd nghe nh\u1eafc \u0111\u1ebfn hai kh\u00e1i ni\u1ec7m quan tr\u1ecdng: Main Axis (tr\u1ee5c ch\u00ednh) v\u00e0 Cross Axis (tr\u1ee5c ph\u1ee5). \u0110\u00e2y l\u00e0 c\u00e1ch Flexbox x\u00e1c \u0111\u1ecbnh h\u01b0\u1edbng s\u1eafp x\u1ebfp v\u00e0 c\u0103n ch\u1ec9nh c\u00e1c ph\u1ea7n t\u1eed.<\/p>\n\n\n\n Main Axis: L\u00e0 tr\u1ee5c ch\u00ednh m\u00e0 c\u00e1c Flex Item \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp theo. Tr\u1ee5c n\u00e0y ph\u1ee5 thu\u1ed9c v\u00e0o thu\u1ed9c t\u00ednh flex-direction. M\u1eb7c \u0111\u1ecbnh l\u00e0 theo chi\u1ec1u ngang t\u1eeb tr\u00e1i sang ph\u1ea3i (row).<\/p>\n\n\n\n Cross Axis: L\u00e0 tr\u1ee5c vu\u00f4ng g\u00f3c v\u1edbi Main Axis. N\u1ebfu flex-direction: row, th\u00ec Cross Axis s\u1ebd l\u00e0 chi\u1ec1u d\u1ecdc.<\/p>\n\n\n\n Hi\u1ec3u r\u00f5 h\u1ec7 tr\u1ee5c gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng \u0111i\u1ec1u ch\u1ec9nh c\u00e1c thu\u1ed9c t\u00ednh nh\u01b0 justify-content, align-items hay align-content \u0111\u1ec3 b\u1ed1 c\u1ee5c ch\u00ednh x\u00e1c nh\u01b0 mong mu\u1ed1n.<\/p>\n\n\n\n Flexbox s\u1eed d\u1ee5ng m\u1ed9t s\u1ed1 thu\u1eadt ng\u1eef \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u v\u00e0 k\u1ebft th\u00fac tr\u00ean c\u00e1c tr\u1ee5c:<\/p>\n\n\n\n main-start: \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u c\u1ee7a tr\u1ee5c ch\u00ednh (v\u00ed d\u1ee5: b\u00ean tr\u00e1i n\u1ebfu l\u00e0 row).<\/p>\n\n\n\n main-end: \u0111i\u1ec3m k\u1ebft th\u00fac c\u1ee7a tr\u1ee5c ch\u00ednh.<\/p>\n\n\n\n cross-start: \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u c\u1ee7a tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n cross-end: \u0111i\u1ec3m k\u1ebft th\u00fac c\u1ee7a tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n Nh\u1eefng thu\u1eadt ng\u1eef n\u00e0y gi\u00fap \u0111\u1ecbnh h\u01b0\u1edbng v\u1ecb tr\u00ed v\u00e0 d\u00f2ng ch\u1ea3y c\u1ee7a c\u00e1c ph\u1ea7n t\u1eed trong b\u1ed1 c\u1ee5c Flexbox, \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c thu\u1ed9c t\u00ednh c\u0103n ch\u1ec9nh ho\u1eb7c khi c\u1ea7n \u0111\u1ea3o chi\u1ec1u s\u1eafp x\u1ebfp (flex-direction: row-reverse, column-reverse).<\/p>\n\n\n\n Sau khi ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c khai b\u00e1o l\u00e0 display: flex, b\u1ea1n c\u00f3 th\u1ec3 t\u00f9y ch\u1ec9nh c\u00e1ch c\u00e1c ph\u1ea7n t\u1eed con (Flex Item) s\u1eafp x\u1ebfp v\u00e0 gi\u00e3n n\u1edf th\u00f4ng qua nhi\u1ec1u thu\u1ed9c t\u00ednh kh\u00e1c nhau c\u1ee7a Flex Container. Nh\u1eefng thu\u1ed9c t\u00ednh n\u00e0y cho ph\u00e9p b\u1ea1n ki\u1ec3m so\u00e1t h\u01b0\u1edbng, \u0111\u1ed9 bao, kho\u1ea3ng c\u00e1ch v\u00e0 c\u0103n ch\u1ec9nh gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c.<\/p>\n\n\n\n Thu\u1ed9c t\u00ednh quan tr\u1ecdng nh\u1ea5t \u0111\u1ec3 kh\u1edfi t\u1ea1o Flexbox l\u00e0 display. Khi \u0111\u1eb7t display: flex, ph\u1ea7n t\u1eed tr\u1edf th\u00e0nh Flex Container v\u00e0 c\u00e1c ph\u1ea7n t\u1eed con tr\u1ef1c ti\u1ebfp b\u00ean trong n\u00f3 tr\u1edf th\u00e0nh Flex Item.<\/p>\n\n\n\n V\u00ed d\u1ee5:<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n display: flex;<\/p>\n\n\n\n }<\/p>\n\n\n\n X\u00e1c \u0111\u1ecbnh h\u01b0\u1edbng ch\u00ednh (Main Axis) m\u00e0 c\u00e1c Flex Item \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp.<\/p>\n\n\n\n row (m\u1eb7c \u0111\u1ecbnh): s\u1eafp x\u1ebfp theo chi\u1ec1u ngang, t\u1eeb tr\u00e1i sang ph\u1ea3i.<\/p>\n\n\n\n row-reverse: chi\u1ec1u ngang t\u1eeb ph\u1ea3i sang tr\u00e1i.<\/p>\n\n\n\n column: s\u1eafp x\u1ebfp theo chi\u1ec1u d\u1ecdc, t\u1eeb tr\u00ean xu\u1ed1ng d\u01b0\u1edbi.<\/p>\n\n\n\n column-reverse: t\u1eeb d\u01b0\u1edbi l\u00ean tr\u00ean.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n flex-direction: row; \/* ho\u1eb7c column *\/<\/p>\n\n\n\n }<\/p>\n\n\n\n Cho ph\u00e9p c\u00e1c Flex Item t\u1ef1 \u0111\u1ed9ng xu\u1ed1ng d\u00f2ng n\u1ebfu kh\u00f4ng \u0111\u1ee7 kh\u00f4ng gian.<\/p>\n\n\n\n nowrap (m\u1eb7c \u0111\u1ecbnh): kh\u00f4ng xu\u1ed1ng d\u00f2ng.<\/p>\n\n\n\n wrap: xu\u1ed1ng d\u00f2ng t\u1eeb tr\u00ean xu\u1ed1ng d\u01b0\u1edbi.<\/p>\n\n\n\n wrap-reverse: xu\u1ed1ng d\u00f2ng t\u1eeb d\u01b0\u1edbi l\u00ean tr\u00ean.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n flex-wrap: wrap;<\/p>\n\n\n\n }<\/p>\n\n\n\n L\u00e0 vi\u1ebft t\u1eaft c\u1ee7a hai thu\u1ed9c t\u00ednh: flex-direction v\u00e0 flex-wrap. Gi\u00fap vi\u1ebft g\u1ecdn h\u01a1n.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n flex-flow: row wrap;<\/p>\n\n\n\n }<\/p>\n\n\n\n C\u0103n ch\u1ec9nh c\u00e1c Flex Item tr\u00ean tr\u1ee5c ch\u00ednh (Main Axis).<\/p>\n\n\n\n flex-start: c\u0103n v\u1ec1 \u0111\u1ea7u tr\u1ee5c.<\/p>\n\n\n\n flex-end: c\u0103n v\u1ec1 cu\u1ed1i tr\u1ee5c.<\/p>\n\n\n\n center: c\u0103n gi\u1eefa.<\/p>\n\n\n\n space-between: gi\u00e3n \u0111\u1ec1u, ph\u1ea7n t\u1eed \u0111\u1ea7u\/ cu\u1ed1i s\u00e1t m\u00e9p.<\/p>\n\n\n\n space-around: gi\u00e3n \u0111\u1ec1u, c\u00f3 kho\u1ea3ng c\u00e1ch hai b\u00ean.<\/p>\n\n\n\n space-evenly: kho\u1ea3ng c\u00e1ch gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed b\u1eb1ng nhau.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n justify-content: space-between;<\/p>\n\n\n\n }<\/p>\n\n\n\n C\u0103n ch\u1ec9nh c\u00e1c Flex Item theo tr\u1ee5c ph\u1ee5 (Cross Axis).<\/p>\n\n\n\n stretch (m\u1eb7c \u0111\u1ecbnh): gi\u00e3n \u0111\u1ea7y chi\u1ec1u cao\/ r\u1ed9ng c\u1ee7a container.<\/p>\n\n\n\n flex-start: c\u0103n v\u1ec1 \u0111\u1ea7u tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n flex-end: c\u0103n v\u1ec1 cu\u1ed1i tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n center: c\u0103n gi\u1eefa tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n baseline: c\u0103n theo \u0111\u01b0\u1eddng baseline c\u1ee7a v\u0103n b\u1ea3n.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n align-items: center;<\/p>\n\n\n\n }<\/p>\n\n\n\n Ch\u1ec9 \u00e1p d\u1ee5ng khi c\u00f3 nhi\u1ec1u h\u00e0ng Flex Item (t\u1ee9c l\u00e0 khi flex-wrap: wrap). Thu\u1ed9c t\u00ednh n\u00e0y \u0111i\u1ec1u ch\u1ec9nh kho\u1ea3ng c\u00e1ch gi\u1eefa c\u00e1c d\u00f2ng tr\u00ean tr\u1ee5c ph\u1ee5.<\/p>\n\n\n\n flex-start, flex-end, center, space-between, space-around, stretch.<\/p>\n\n\n\n css<\/p>\n\n\n\n .container {<\/p>\n\n\n\n align-content: space-around;<\/p>\n\n\n\n }<\/p>\n\n\n\n
<\/figure>\n\n\n\nFlex CSS l\u00e0 g\u00ec?<\/h2>\n\n\n\n
\n
C\u1ea5u tr\u00fac c\u01a1 b\u1ea3n c\u1ee7a Flexbox<\/h2>\n\n\n\n
Kh\u00e1i ni\u1ec7m Flex Container v\u00e0 Flex Item<\/h3>\n\n\n\n
Tr\u1ee5c ch\u00ednh (Main Axis) v\u00e0 tr\u1ee5c ph\u1ee5 (Cross Axis)<\/h3>\n\n\n\n
Thu\u1eadt ng\u1eef li\u00ean quan: main-start, main-end, cross-start, cross-end<\/h3>\n\n\n\n
C\u00e1c thu\u1ed9c t\u00ednh c\u1ee7a Flex Container<\/h2>\n\n\n\n
display<\/h3>\n\n\n\n
flex-direction<\/h3>\n\n\n\n
flex-wrap<\/h3>\n\n\n\n
flex-flow<\/h3>\n\n\n\n
justify-content<\/h3>\n\n\n\n
align-items<\/h3>\n\n\n\n
align-content<\/h3>\n\n\n\n
\n