post image

Position Property

Khi đã sử dụng CSS để thiết kế giao diện thì Position Property là một trong những phần quan trọng nhất mà bạn cần hiểu rõ. Position Property chi phối mối tương quan giữa các thành phần của trang web. Có tất cả 4 giá trị cho Position property là: Static, Absolute, Fixed và Relative. Trong đó Static là giá trị mặc định khi không có giá trị nào được gán. Trong ví dụ dưới đây bạn sẽ thấy có 4 đoạn văn ngắn. Đoạn văn thứ 1, 2 và 4 tôi để giá trị mặc định là Static và đoạn văn thứ 3 được gán id để chúng ta có thể thay đổi nó mà không ảnh hưởng đến các đoạn khác.

Static Position

Trước hết là chế độ Static mặc định khi không có giá trị nào được gán, bạn sẽ thấy 4 đoạn văn xếp chồng lên nhau

Position Static CSS

Với giá trị Static (giá trị mặc định) các thành phần chỉ đơn thuần được sắp xếp theo thứ tự xuất hiện và được phân cách bởi các giá trị margin mặc định. Để thay đổi cách sắp xếp này, bạn cần sử dụng một trong những cách sau đây.

Relative Position

Bây giờ chúng ta sẽ thử di chuyển đoạn văn thứ 2 bằng cách gán cho nó giá trị là relative. Ở mỗi giá trị này sẽ có 4 tuỳ biến lần lượt là top, right, bottom và left cho bạn sử dụng. Tuy nhiên trong hầu hết các trường hợp, bạn chỉ cần sử dụng hai giá trị là top và left là đủ đạt được mục đích.

p#second {position: relative; top: 10px;left: 20px;
border: 1px solid #a4a4a4;background: #faf3c7;}

Ở code HTML bạn phải có

<p>Đoạn văn bản thứ nhất …</p>
<p id="second">Đoạn văn bản thứ 2 …</p>
<p>Đoạn văn bản thứ 3 ..</p>
<p>Đoạn văn bản thứ 4 …</p>
Position Relative CSS

Ở trình duyệt bạn sẽ thấy đoạn văn bản thứ 2 bị dịch chuyển xuống dưới 10px và lệch sang phải 20px. Như đã nói ở trên các thành phần có mối liên quan đến nhau, do vậy khi bạn đặt giá trị {top: 10px; left: 20px;} thì đoạn văn này sẽ bị di chuyển tương ứng với đoạn văn nằm trên nó. Cụ thể cạnh trên của nó cách cạnh đáy của đoạn thứ 1 là 30px.

Ở trong trường hợp Relative này, khi đoạn văn bị di chuyển nó cũng để lại một khoảng trống bằng với kích thước cũ của nó và dù nó di chuyển sang vị trí mới. Khoảng không nó chiếm vẫn không bị mất đi. Cho nên nếu bạn sử dụng phương pháp này vào giao diện, bạn cũng cần di chuyển đoạn văn thứ 4 sao cho nó không bị đè lên nhau.

Absolute Position

Trong phần này ta sẽ thử với giá trị là absolute

Position absolute CSS

Bạn sẽ thấy đoạn văn thứ2 bị di chuyển lên trên và cách biên trình duyệt là 10px và 20px tương ứng với trên và trái. Bởi vì khi định vị với giá trị là absolute cho một thành phần nào đó, nó sẽ bị tách ra khỏi vị trí thông thường của nó. Khoảng không cũ nó bỏ lại đã bị đoạn văn thứ 3 di chuyển lên lấp lại. Đoạn văn thứ 2 này trở nên hoàn toàn độc lập với các thành phần xung quanh.

Fixed Position

Fixed Position cho hiệu ứng giống y như absolute chỉ có điều khi bạn kéo thanh cuộn dọc, đoạn văn thứ 3 sẽ giữ nguyên vị trí và không bị cuốn theo trình duyệt. Đặc tính này hiện nay ít được sử dụng hơn. Nhưng nếu bạn muốn một thành phần nào đó như là nút bấm hoặc hình quảng cáo luôn kè kè theo sát người đọc mỗi khi họ kéo thanh cuộn dọc, thì bạn có thể sử dụng tính năng này.

«

»

18 Comments

( Comment bài này )
  1. Trần Quốc Thịnh says:

    Bạn ơi, cho mình hỏi là bạn có biết cái hiệu ứng fix vị trí của 1 khối chỉ di chuyển trong một vùng diện tích nhất định như là cái khối adMarket của Admicro ở site này ko bạn: http://kenh14.vn/home.chn

    Mình tìm trên mạng mà không biết nó gọi là gì. @_@ Nếu được nhờ bạn chỉ giúp mình.

    Cám ơn bạn!

  2. huyvan says:

    co nghia la hien thi noi dung 1 bai viet ve tin tuc va cai phan hoi y kein nay co giong nhau hay hong vay neu vay thi cung chang co gi dac biet ha addmin

  3. huyvan says:

    ua thu cai phan hoi nay xem the nao
    ko bit la cach hien thi 1 bai viet va cai phan hoi y kein nay khac nhau gi hong ta

  4. natuhp says:

    Chào anh DW! Anh cho em hỏi khi định dạng trang web bằng CSS thi ta nên định dạng thành phần nào trước.

  5. thanhtruong5390 says:

    bai viet rat hay va bo ich

  6. Hòa Vaio says:

    anh dw ơi sao em thấy anh dùng cái tool edit css trên firefox khi anh anh refresh sao code css của anh không mất đi?. Em viết trên cái đây cứ mỗi lần refresh để xem kết quả là lại mất hết

  7. [...] H?c thi?t k? web theo chu?n. » CSS … other posts by admin [...]

  8. Xítrai_inthelife says:

    Bài viết hay, rất dễ hiểu, Thanks for share!!! :d

  9. Trung Đại Sơn says:

    Chào izwebz.com, chào anh Clackken Smith !
    Trong khoảng thời gian gần đây em đã xem video hướng dẫn của anh…trước tiên em cũng thay mặt những người thích tìm hiểu về web xin chân thành cảm ơn anh và những người đã cùng anh tham gia hướng dẫn làm website trong trang web izwebz.com .
    Em rất thích làm web nhưng phần tạo những hiệu ứng cho baner thì em chưa được biết nhiều, em chỉ tạo baner bằng “Aleo Flash Intro and Banner Maker v3.2 Portable” nhưng chỉ được một số hiệu ứng thôi, nên nhân tiện đây em mong được anh chia sẽ cho em cũng như các bạn trẻ thích làm web các video có liên quan đến phần tạo hiệu ứng baner.
    Vây kính mong anh sẽ giúp em hoàn thành video hướng dẫn trong thời gian sớm nhất.
    Trong khi cho đợi sự chia sẽ anh em xin chân thành cảm ơn !

  10. arjmoto says:

    Không biết dùng nhiều position có coi bị là lạm dụng không anh nhỉ.Em xem xong bài này và video về Display Property.? em thử làm css và thấy nội dung và hình không theo ý, thế là em lại áp dụng thẻ position vào. kể cả đối với những thành phần inline em cũng dùng và hầu như em hay dùng position.Nếu không dùng position thì em phải làm nhiều thẻ div.Có lẽ em mới làm CSS nên còn bỡ ngỡ ! anh có lời khuyên cho em vể dùng position nhé ! em cũng sẽ nghiền lại những video của anh về CSS để có thể làm tốt hơn.

  11. nhung bai hoc that don gian nhung vo cung hieu qua..cam o anh rat nhieu

  12. Phùng Anh Tú says:

    Bài viết của anh lúc nào cũng hay! Cám ơn anh.

  13. sailormoon0459 says:

    Còn chữ Reltaive ở phần mở đầu nữa anh !

  14. Ý, đúng rồi ha! cám ơn em nhé! chắc tại nhiều “đoạn văn bản” quá :D
    Đã sửa!

  15. alex says:

    Đoạn văn bản thứ nhất …

    Đoạn văn bản thứ 2 …
    Đoạn văn bản thứ 3 ..

    Đoạn văn bản thứ 4 …

    đoạn này,a viết sai thì phải ^^!nếu thế đoạn 3 di chuyển chứ :D !

  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt