Thuộc tínhposition trong CSS dùng để xác định vị trí hiển thị cho thẻ HTML và thường được dùng để xây dựng CSS cho menu đa cấp,tooltip hoặc một số chức năng khác.Position có tổng cộng 5 gias trị như bảng dưới đâynhưng trong bài này mình chỉ trình bày hai thuộc tính đó là relative và absolute.

Bạn đang xem: Position relative là gì

*


*

Tên giá trịÝ nghĩa
staticDạng mặc định - sẽ hiển thị theo đúng thứ tự của nó (thường dùng để hủy các thuộc tính bên dưới)
relativeĐịnh vị trí tuyệt đối (vị trí bao ngoài), lúc này các thẻ HTML bên trong sẽ coi nó là thẻ cha
absoluteĐịnh vị trí tương đói theo thẻ cha (thẻ khai báo relative) hoặc thẻ body nếu ko có khai báo
fixedĐịnh vị trí tương đối cho của sổ Browser của trình duyệt (khi kéo scroll nó sẽ không bị ẩn đi)
inheritThừa hưởng các thuộc tính từ thành phần cha (thành phần bao ngoài nó)

1. Position relative và absolutetrong CSS

Ta có thể ví relative như một cái khungvà absolute là một hòn bi di chuyển bên trong cái khung nên nó có thể lăn tới bất kìvị trí nào, thậm chí nó có thể lăn ra bên ngoài khung. Và để thiết lập vị trí thì ta sử dụng bốn thuộc tính sau:

top: lên phía trênright: qua bên phảibottom: xuống phía dướileft: qua bên trái

Bạn chỉ có thể sử dụng nhiều nhất là 2 giá trị liền kề nhau tuân theo tọa độ đề cát, các cặp đó là: (top,right) - (right, bottom) - (bottom, left) - (left,top).


Lưu ý: Vì các giá trị (top, left, right, bottom) nằm trongtọa độ đề cát và tâm chính là các một trong những góc vuông (tùy vào cách chọn cặp)nên nếu nó mang số âm thì đối tượng HTML sẽ nằm ngoài khung.

Giả sử có ba thẻ HTMLcấp 1, cấp 2, cấp 3, nếu thẻ cấp 3 là relative và thẻ cấp 2 cũng relative thì lúc này thẻ cấp 1 nếu khai báo là absolute thì nò sẽ chọnkhunglà thẻ có khai báo relative gần nó nhất và thẻ đó chính là thẻ cấp 2.

Bài viết này được đăng tại


Ví dụ: Xây dựng HTML như hình sau:

XEM DEMO

Nếu chúng ta sử dụng float và margin để làm bài này vẫn được nhưng rất phức tạp. Nhưng nếu sử dụng position và các thuộc tính bổ trợ (top, left, bottom, right)thì nó quá đơn giản.

HTML: Chúng ta tạo một thẻ div ngoài cùng và position của nó là relative, còn ba ô nhỏ bên trong ta cũng tạo 3 thẻ div và position của nó là absolute nê nó sẽ lấy thẻ div ngoài cùnglàm khung.


.relative{ height: 300px; width: 300px; position: relative; margin: 100px auto; background: blue;}.absolute{ position: absolute; height: 40px; width: 40px;}.red{ top: 200px; left: 100px; background: red;}.yellow{ top: 100px; left: 200px; background: yellow;}.white{ top: 150px; left: 250px; background: white;}

Trường hợp chúng ta không khai báo thẻ ngoài cùng là relative thì giao diện sẽ vỡ như sau:

XEM DEMO

Lý do là nó không tìm thấy thẻ cha nào được khai báo relative nên nó sẽ lấy thẻ body làm khung.

2. Lời kết

Thuộc tính position được sử dụng khá nhiều và điển hình nhất là xây dựng menu đa cấp bằng CSS, sau đó là các hiệu ứng tooltip kết hợp với Hover.

Xem thêm: Giải Bài 1 Trang 43 Toán 12 (Khảo Sát Sự Biến Thiên Và Vẽ Đồ Thị Của Các Hàm Số)

Vì bài viết có hạn nên mình sẽ không đưa thêm ví dụ nữa mà sẽ nói rõ hơn ở các bài thực hành tiếp theo.