Search…

Các Phương Pháp Canh Giữa 1 Trang Web

03/07/20222 min read
Canh giữa website với CSS bằng 2 cách đơn giản - margin và flex.

Bài viết hướng dẫn canh giữa trang web với CSS bằng 2 cách - margindisplay: flex.

Canh giữa trang web với margin

Nguyên tắc của thuộc tính margin khi gán giá trị auto trái (margin-left: auto) hoặc phải (margin-right: auto) sẽ chiếm phần còn thừa của block chứa nó.

__________________________________________
|A                                       |
|                         ______________ |
|                         |B           | |
|                         |margin-left | |
| <---------------------> |auto        | |
|                         |____________| |
|________________________________________|

__________________________________________
|A                                       |
| ______________                         |
| |B           |                         |
| |margin-right|                         |
| |auto        | <---------------------> |
| |____________|                         |
|________________________________________|

Khi muốn 1 block nằm ở giữa 1 block khác, có thể sử dụng đặt tính này bằng cách sử dụng margin-left: automargin-right: auto đồng thời, điều này nghĩa là block ở bên trong sẽ chiếm "phần còn lại" để margin cho 2 bên, 2 phần này sẽ đều nhau, tạo nên hiệu ứng canh giữa cho 1 block trong 1 block khác.

.B {
    margin-left: auto;
    margin-right: auto;
}
__________________________________________
|A             ____________              |
|              |B         |              |
| <----------> |          | <----------> |
|              |          |              |
|              |__________|              |
|________________________________________|

Canh giữa trang web với display: flex

Thuộc tính display: flex hỗ trợ nhiều phương pháp sắp xếp các phần tử bên trong nó, trong đó có thể sắp xếp giữa dù là block hay chuỗi theo chiều ngang lẫn chiều dọc.

Ở block chứa block cần canh giữa, có thể gán các thuộc tính với giá trị như bên dưới.

.A {
    display: flex;
    flex-direction: row;
    justify-content: center;
}
__________________________________________
|A             ____________              |
|              |B         |              |
| <----------> |          | <----------> |
|              |          |              |
|              |__________|              |
|________________________________________|

Nên sử dụng cách nào?

Đa phần các trang web sử dụng cách canh giữa bằng margin-left/margin-right auto. Do đó, các frontend developer có thể sử dụng cách này.

display: flex xuất hiện từ CSS3 và đến thời điểm hiện tại đã ổn định, do đó các developer có thể xem xét thay đổi qua cách làm mới này để có nhiều lựa chọn và hiện đại hơn.

Bài viết này được dịch từ phiên bản tiếng Anh How to Center a div in CSS với nội dung đầy đủ hơn.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024