Bài 10: Position relative - absolute trong CSS

Thuộc tính position 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 ...

Thuộc tính position 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 đây nhưng trong bài này mình chỉ trình bày hai thuộc tính đó là relativeabsolute.

Tên giá trị Ý nghĩa
static Dạ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)
inherit Thừ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à absolute trong CSS

Ta có thể ví relative như một cái khung và 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ên
  • right: qua bên phải
  • bottom: xuống phía dưới
  • left: 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 trong tọ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ẻ HTML cấ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ọn khung là thẻ có khai báo relative gần nó nhất và thẻ đó chính là thẻ cấp 2.

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

 

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ùng làm khung.

<div class="relative">
    <div class="absolute red"></div>
    <div class="absolute yellow"></div>
    <div class="absolute white"></div>
</div>

CSS: Chúng ta viết CSS cho các class trong đoạn mã HTML trên.

.relative{
    height: 300px;
    awidth: 300px;
    position: relative;
    margin: 100px auto;
    background: blue;
}

.absolute{
    position: absolute;
    height: 40px;
    awidth: 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:

 

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.

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.

BÀI KẾ SAU
BÀI KẾ TIẾP
 

Nguồn: code24h.com

Bài liên quan

[Bài 13]After và Before trong CSS

After và Before trong CSS. After và Before trong CSS được dùng để thêm nội dung vào trước hoặc sau thẻ HTML. Ví dụ : After dùng để thêm nội dung vào sau thẻ HTML XHTML <!DOCTYPE html> <html> <head> <me ...

Trần Trung Dũng viết 3 tuần trước

[BÀI 14]Kỹ thuật Clearfix trong CSS

Kỹ thuật Clearfix trong CSS Clearfix trong CSS không phải là một thuộc tính, mà nó là một kỹ thuật để loại bỏ ảnh hưởng của float lên các vùng. Clearfix là gì? Khi một thẻ cha có thẻ con sử dụng float thì chiều cao của thẻ cha so với thẻ con đó là 0px. Chiều cao của thẻ cha chỉ phụ ...

Trần Trung Dũng viết 3 tuần trước

[BÀI 4]Class và ID trong CSS

Class và ID trong CSS Class : class hay còn gọi là lớp dùng để chỉ một lớp các đối tượng có chung các thuộc tính. Các đối tượng trong cùng một class có tính thừa kế lẫn nhau, chính vì vậy trong một trang HTML của bạn có thể có rất nhiều các đối tượng có thể thuộc một class nào đó. Ví dụ : ...

Trần Trung Dũng viết 3 tuần trước

[BÀI 5] Định dạng nền trong CSS

Định dạng nền trong CSS – Background Background là một thuộc tính rất quan trọng khi bạn sử dụng CSS để tạo nên một trang web hoàn chỉnh. Bài hôm nay chúng ta sẽ đi tìm hiểu về Background và các thành phần cơ bản mà ta hay sử dụng. Các thành phần của background mà chúng ta sẽ tìm hiểu trong bài ...

Vũ Văn Thanh viết 3 tuần trước

[BÀI 9]Position Relative và Absolute trong CSS

Position Relative và Absolute trong CSS Position là thuộc tính giúp bạn tùy chỉnh khu vực hiển thị cho phần tử và việc tùy chỉnh này không hề làm ảnh hưởng đến các phần tử khác . Nó gồm 5 giá trị là relative, absolute, fixed static và inherit. Absolute là cách định vị trí của một ...

Tạ Quốc Bảo viết 3 tuần trước
0