Đăng nhập

Bài 18: Position (relative, absolute, fixed, sticky) trong Tailwind CSS

Trong bài học này, bạn sẽ học cách kiểm soát vị trí chính xác của phần tử trong layout — từ header cố định đến popup nổi, hay một badge nhỏ nằm gọn ở góc.

Khi bạn muốn một nút luôn nằm ở góc dưới màn hình, hoặc một thanh điều hướng “dính trên đầu” khi cuộn trang — đó chính là lúc bạn cần điều khiển position.

Trong CSS truyền thống, bạn viết position: absolute; top: 0; right: 0;, hoặc position: sticky kết hợp với top: 0. Tailwind giúp bạn rút gọn điều này thành các class ngắn gọn, dễ đọc như absolute, top-0, sticky, inset-x-0

Hôm nay, chúng ta sẽ học:

  • Các loại position: relative, absolute, fixed, sticky
  • Cách sử dụng top, bottom, left, right, inset-*
  • Kỹ thuật đặt phần tử nổi, dính, hoặc neo chính xác theo thiết kế

Các class position

ClassTác dụng tương đương CSS
staticposition: static (mặc định)
relativeposition: relative
absoluteposition: absolute
fixedposition: fixed
stickyposition: sticky

Ví dụ:

<div class="relative">
  <div class="absolute top-0 right-0 bg-red-500 text-white p-1 rounded-full text-xs">
    NEW
  </div>
  <img src="..." class="w-32" />
</div>

Ở đây:

  • Khối cha là relative để làm mốc định vị
  • Badge absolute top-0 right-0 nằm lên góc phải phía trên

Điều chỉnh vị trí – top, bottom, left, right

Tailwind cung cấp các class:

ClassÝ nghĩa
top-0, top-1, top-4, top-1/2Khoảng cách từ phía trên
left-0, right-0, bottom-0Các cạnh khác tương tự
inset-0top: 0; right: 0; bottom: 0; left: 0
inset-x-0left: 0; right: 0
inset-y-0top: 0; bottom: 0

Bạn cũng có thể dùng -top-4 để đẩy phần tử ra ngoài.


Ví dụ thực tế

Header cố định trên đầu trang:

<header class="fixed top-0 left-0 w-full bg-white shadow z-50 p-4">
  <h1 class="text-lg font-bold">Logo</h1>
</header>

Popup nằm chính giữa màn hình:

<div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center">
  <div class="bg-white p-6 rounded shadow-lg">
    <p>Đây là nội dung popup</p>
  </div>
</div>

Sticky header (dính khi cuộn):

<header class="sticky top-0 bg-white z-40 p-4 shadow">
  Menu luôn nằm trên cùng khi cuộn
</header>

So sánh với CSS truyền thống

Tác vụCSS thuầnTailwind CSS
Đặt position: relativeposition: relativerelative
Đặt một badge ở gócposition: absolute; top: 0; right: 0;absolute top-0 right-0
Cố định headerposition: fixed; top: 0;fixed top-0
Dính khi cuộnposition: sticky; top: 0;sticky top-0

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

ClassChức năng
relative, absolute, fixed, stickyLoại vị trí
top-*, left-*, inset-*Điều chỉnh vị trí cụ thể
z-*Xác định thứ tự chồng lớp
inset-0, inset-x-0, inset-y-0Thiết lập nhiều cạnh cùng lúc

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

  • Tailwind giúp bạn định vị phần tử nhanh chóng và rõ ràng bằng positioninset-*.
  • Sử dụng relative làm mốc để định vị các phần tử absolute.
  • fixedsticky rất hữu ích để tạo thanh điều hướng, popup, và hiệu ứng tương tác hiện đại.

Bài tiếp theo

Giờ bạn đã có thể đặt phần tử chính xác tại nơi mình muốn, nhưng còn một khái niệm nữa rất hay gặp khi làm layout: thứ tự hiển thị của phần tử trong Flex hoặc Grid.

bài 19, bạn sẽ học:

  • Cách dùng z-index kết hợp order trong Flex/Grid
  • Sắp xếp thứ tự phần tử con
  • Các mẹo đảo thứ tự layout trên mobile/desktop

Hẹn gặp bạn trong bài 19: Layering và thứ tự hiển thị (z-index, order) trong Tailwind CSS!

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.