Show Định nghĩa và sử dụngThuộc tính position xác định loại của phương pháp định vị trí cho thành phần. Thuộc tính position thường dùng kèm với các thuộc tính định vị trí: left, right, bottom, top Cấu trúctag { position: giá trị; } Với giá trị như sau:
HTML viết:<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html> Giả sử ban đầu CSS viết:div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; } Hiển thị trình duyệt khi chưa có thuộc tính position:Thêm thuộc tính position vào CSS:div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; } Hiển thị trình duyệt khi có CSS:Trình duyệt hỗ trợThuộc tính position được hỗ trợ trong đa số các trình duyệt. Giá trị "inherit" không hỗ trợ trình duyệt IE7 trở xuống, IE8 đòi hỏi phải có !Doctype Nếu bạn mới làm quen với CSS, việc căn chỉnh các phần tử với thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 có thể không dễ dàng như bạn tưởng tượng. Mọi thứ sẽ trở nên phức tạp hơn khi dự án lớn hơn và nếu không hiểu rõ cách CSS giải quyết vấn đề căn chỉnh các phần tử HTML, bạn sẽ không thể khắc phục các vấn đề về căn chỉnh của mình. Có nhiều cách/phương pháp khác nhau để định vị (xác định vị trí) các phần tử bằng CSS thuần túy. Sử dụng các thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>7, <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>8 và <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 trong CSS là những phương pháp phổ biến nhất. Trong bài viết này, mình sẽ giải thích một trong những cách khó hiểu nhất để căn chỉnh các phần tử bằng CSS thuần túy: thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6. Bạn cũng có thể xem hướng dẫn căn chỉnh với <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 trong CSS bằng video tại đây. Bây giờ thì bắt đầu thôi! Thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 và helperChúng ta có 5 giá trị chính cho thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6: div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }4 và các thuộc tính bổ sung để thiết lập tọa độ của một phần tử (mình gọi chúng là “thuộc tính helper”): div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }5 AND the div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }6
div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }6 là gì?Tưởng tượng rằng chúng ta có các thuộc tính div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; }0 (chiều cao) là div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; }1 và div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; }2 (chiều rộng) là div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; }3. Vậy div { border: 1px solid red; height: 80px; position: relative; } div p { background: #00CCFF; width: 80px; position: absolute; right: -20px; top: 15px; }4 là chiều thứ 3. Một phần tử trong trang web đứng trước các phần tử khác khi giá trị z-index của nó tăng lên. div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }6 không hoạt động vớidiv { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }8 hoặc không có<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 nào được khai báo. Các phần tử được sắp xếp từ sau ra trước, khi div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }6 của chúng tăng lên: Bạn có thể xem video tại đây để biết cách sử dụng z-index chi tiết hơn. Giờ thì tiếp tục với các giá trị của thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6! 1. Staticdiv { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }8 là giá trị mặc định. Cho dù chúng ta có khai báo hay không, các phần tử vẫn sẽ được định vị theo thứ tự bình thường trên trang web. Ví dụ: Đầu tiên, chúng ta định nghĩa một cấu trúc HTML:
Sau đó, tạo 2 hộp và xác định widths, heights & positions của chúng:
Kết quả là như nhau với việc có và không có khai báo div { border: 1px solid red; height: 80px; } div p { background: #00CCFF; width: 80px; }8: 2. Relative 2: Vị trí mới của một phần tử so với vị trí bình thường của nó.Vị trí mới của một phần tử so với vị trí bình thường của nó.Bắt đầu từ 2 (và đối với tất cả các giá trị <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 non-static) trở đi, chúng ta có thể thay đổi vị trí mặc định của phần tử bằng cách sử dụng các thuộc tính helper mà mình đã đề cập ở trên. Thử di chuyển hộp màu cam sang bên cạnh hộp màu xanh:
Hộp màu cam được di chuyển 100px xuống dưới cùng và bên phải, so với vị trí bình thường của nó:
3. AbsoluteTrong 2 , phần tử được định vị tương đối với chính nó. Tuy nhiên, một phần tử có 7 (định vị tuyệt đối) lại liên quan đến phần tử cha của nó.Phần tử 7 bị xóa khỏi vị trí bình thường trên trang web. Nó được định vị tự động đến điểm bắt đầu (góc trên bên trái) của phần tử cha. Nếu nó không có bất kỳ phần tử cha nào thì thẻ gốc ban đầu 9 sẽ là phần tử cha của nó.Từ vị trí của phần tử có thuộc tính 7, các phần tử khác có thể bị ảnh hưởng và hoạt động như phần tử 7 đã bị xóa hoàn toàn khỏi trang web.Ví dụ nhé, thêm một 2 làm phần tử chính:
7 đưa phần tử màu cam về đầu phần tử cha của nó:Bây giờ nhì thì có vẻ như hộp màu xanh lam đã biến mất, nhưng chưa đâu Hộp màu xanh dương hoạt động giống như hộp màu cam bị loại bỏ, vì vậy nó sẽ dịch chuyển đến vị trí của hộp màu cam. Giờ thì thử di chuyển hộp màu cam 5 pixels, chúng ta đã có thể nhìn thấy hộp màu xanh đang nằm ở vị trí nào rồi nhé!
Tọa độ của một phần tử có 7 là tương đối với phần tử cha của nó nếu phần tử cha cũng có vị trí non-static.<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>0 4. FixedGiống như 7, các phần tử có 6 cũng bị xóa khỏi vị trí bình thường trên trang. Sự khác biệt là:
<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>1 Ví dụ: Thay đổi vị trí của hộp màu cam thành 6 và lần này nó có vị trí tương đối là 5px so với lề phải của thẻ 9 chứ không phải so với phần tử cha (vùng chứa) của nó:<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>2 <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>3 Xem cụ thể cuộn trang tại đây. Như chúng ra có thể thấy, việc cuộn trang cũng không ảnh hưởng đến vị trí cố định của hộp màu cam. Nó không còn liên quan đến phần tử cha (vùng chứa) của nó nữa. 5. Sticky 0 có thể được giải thích như là sự pha trộn giữa 2 và 6.Ban đầu, nó hoạt động như một phần tử có 2, cho đến khi thuộc tính helper được khai báo thì nó được thay đổi hành vi thành 6. Cách tốt nhất để giải thích 0 là bằng một ví dụ:ví dụ:<html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>4 <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>5 Ban đầu khi chưa có thao tác cuộn hoặc có thao tác cuộn nhưng phần tử có 0 chưa ở vị trí 7 thì nó hoạt động như 2:Khi thao tác cuộn và phần tử có 0 bắt đầu lên đến vị trí 7 thì nó hoạt động như 6:
Cách tốt nhất để hiểu thuộc tính <html> <head></head> <body> <div> <p>HỌC WEB CHUẨN</p> </body> </div> </html>6 trong CSS là thực hành. Tiếp tục viết mã cho đến khi bạn hiểu rõ hơn. Nếu có bất kỳ thắc mắc nào về bài viết, hãy dể lại ý kiến ở phần bình luận nhé! Tham khảo: Nguồn bài viếtNguồn bài viết Thank for reading!! |