Đăng nhập

Bài 5: Cách viết layout với các lớp margin, padding

Khi xây dựng bất kỳ giao diện web nào, việc sắp xếp bố cục, căn lề, và tạo khoảng trống giữa các thành phần là điều không thể thiếu. Trong CSS truyền thống, chúng ta thường dùng marginpadding bằng cách viết từng dòng CSS cho từng phần tử.

Trong Tailwind CSS, việc xử lý layout này được đơn giản hóa bằng các class tiện ích (utility class) như m-4, p-2, mt-6, pl-3
Trong bài học này, bạn sẽ được hướng dẫn chi tiết cách dùng các lớp này để bố trí khoảng cách bên trong (padding) và bên ngoài (margin), cũng như các biến thể như mx-auto, space-x-*, space-y-*.


Margin và Padding là gì?

Margin là khoảng cách bên ngoài phần tử (ra ngoài so với phần tử khác).

Padding là khoảng cách bên trong phần tử (tạo khoảng cách giữa nội dung và viền của chính nó).

Xem thêm về margin và padding trong bài học dưới đây:

Nếu bạn quên khái niệm này, hãy tưởng tượng một hộp quà:

  • Lớp giấy lót bên trong chính là padding
  • Khoảng trống giữa hộp và các hộp khác là margin

Cú pháp margin và padding trong Tailwind

Tailwind dùng cú pháp thống nhất:

[loại]-[kích-thước]

Loại (prefix):

Ký hiệuÝ nghĩa
mmargin toàn bộ
mtmargin-top
mbmargin-bottom
mlmargin-left
mrmargin-right
mxmargin trái + phải
mymargin trên + dưới
ppadding toàn bộ
ptpadding-top
pbpadding-bottom
plpadding-left
prpadding-right
pxpadding trái + phải
pypadding trên + dưới

Kích thước:

Tailwind cung cấp hệ thống giá trị chuẩn:

SốTương đương (rem)Pixel gần đúng
00rem0px
10.25rem4px
20.5rem8px
30.75rem12px
41rem16px
51.25rem20px
61.5rem24px
82rem32px
102.5rem40px

Ví dụ: Tạo khoảng cách giữa các phần tử

Padding toàn bộ

<div class="p-4 bg-gray-100">
  Nội dung có padding đều 1rem (16px)
</div>

Padding riêng chiều ngang

<div class="px-6 py-2 bg-blue-100">
  Padding trái – phải là 24px, trên – dưới là 8px
</div>

Margin giữa các hộp

<div class="m-4 bg-green-100">Hộp 1</div>
<div class="m-4 bg-green-200">Hộp 2</div>

Căn giữa với mx-auto

Một class rất phổ biến để căn giữa phần tử theo chiều ngang là:

<div class="mx-auto w-64 bg-yellow-100">
  Tôi được căn giữa
</div>

Điều kiện: phần tử phải có width cụ thể (ví dụ: w-64 tương đương 16rem)


Khoảng cách tự động giữa các phần tử: space-x-*, space-y-*

Tailwind có tính năng rất hay để tự tạo khoảng cách giữa các phần tử con, thay vì thêm mr- hoặc mb- cho từng cái.

Ví dụ: space-x-4

<div class="flex space-x-4">
  <div class="bg-red-300 p-2">A</div>
  <div class="bg-red-400 p-2">B</div>
  <div class="bg-red-500 p-2">C</div>
</div>

Khoảng cách ngang giữa các phần tử con là 1rem (16px), không ảnh hưởng tới phần tử đầu và cuối.

Ví dụ: space-y-2

<div class="space-y-2">
  <p>Hàng 1</p>
  <p>Hàng 2</p>
  <p>Hàng 3</p>
</div>

Khoảng cách dọc giữa các dòng là 0.5rem (8px)


Tương tác nhỏ

Bạn hãy thử viết đoạn code sau, chạy trong trình duyệt và quan sát:

<div class="w-64 mx-auto p-6 bg-white rounded shadow space-y-4">
  <h2 class="text-lg font-bold">Thông báo</h2>
  <p class="text-gray-700">Đây là ví dụ sử dụng padding và spacing.</p>
  <button class="bg-blue-500 text-white px-4 py-2 rounded">OK</button>
</div>

Hãy thử thay đổi giá trị p-6 thành p-2 hoặc p-10 và xem kết quả khác biệt ra sao. Bạn sẽ thấy Tailwind rất linh hoạt để tinh chỉnh giao diện từng chút một.


Tổng kết kiến thức

ClassTác dụng
p-4Padding toàn phần 1rem
mx-2Margin trái – phải 0.5rem
pt-6Padding-top 1.5rem
space-x-4Tạo khoảng cách ngang giữa các con
mx-autoCăn giữa phần tử theo chiều ngang

Tóm tắt bài học

  • Margin (m-*) và Padding (p-*) là các class cơ bản để tạo bố cục.
  • Tailwind cho phép căn chỉnh từng hướng (mt-, py-, ml-…) rất linh hoạt.
  • mx-auto giúp căn giữa phần tử có chiều rộng xác định.
  • space-x-*space-y-* giúp bạn tạo khoảng cách đều giữa các phần tử con mà không cần viết class riêng từng cái.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.