Menu
CoddyTech

Định vị tương đối

Thuộc phần Tạo kiểu với CSS trong hành trình HTML của Coddy. Bài học 56 trên 76.

Trong CSS, định vị tương đối là một kiểu định vị cho phép bạn định vị một phần tử so với vị trí bình thường của nó trong luồng tài liệu. Khi đặt một phần tử thành position: relative;, phần tử đó vẫn nằm trong luồng bình thường, nhưng bạn có thể dùng các thuộc tính top, right, bottom và left để dịch chuyển phần tử khỏi vị trí ban đầu. 

Đây là cú pháp cơ bản để dùng định vị tương đối:

selector {
    position: relative;
    top: value;
    right: value;
    bottom: value;
    left: value;
}
  • position: relative;: Khai báo này đặt cơ chế định vị của phần tử thành tương đối.
  • top, right, bottom, left: Các thuộc tính này xác định độ lệch của phần tử so với vị trí bình thường. Bạn có thể dùng giá trị dương hoặc âm, được chỉ định bằng pixel (px), em (em), phần trăm (%) hoặc các đơn vị CSS hợp lệ khác.

Ví dụ:

.box {
    position: relative;
    top: 20px;
    left: 30px;
}

Trong ví dụ này, phần tử có lớp box sẽ được định vị thấp hơn 20 pixel và lệch phải 30 pixel so với vị trí bình thường trong luồng tài liệu. Khoảng trống mà phần tử vốn chiếm vẫn được giữ nguyên, và các phần tử khác sẽ không tràn vào khoảng trống đó.

challenge icon

Thử thách

Dễ

Bạn được cung cấp một tài liệu HTML có một phần tử <div> chứa ba phần tử con <div> với các lớp box1, box2 và box3. Nhiệm vụ của bạn là dùng định vị tương đối để di chuyển phần tử box2. Hãy làm theo các bước sau:

  1. Viết một quy tắc CSS áp dụng cho phần tử <div> có lớp box2.
  2. Đặt thuộc tính position của phần tử .box2 thành relative.
  3. Đặt thuộc tính top của phần tử .box2 thành 20px và thuộc tính left thành 40px. Thao tác này sẽ di chuyển hộp xuống 20 pixel và sang phải 40 pixel so với vị trí ban đầu.

Tự làm thử

<html>
<head>
    <title>Relative Positioning</title>
    <style>
        .container {
            width: 400px;
            height: 200px;
            border: 1px solid black;
        }
        .box1 {
            width: 100px;
            height: 100px;
            background-color: lightblue;
        }
        .box2 {
            width: 100px;
            height: 100px;
            background-color: lightgreen;
        }
        .box3 {
            width: 100px;
            height: 100px;
            background-color: lightcoral;
        }
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="container">
        <div class="box1">Box 1</div>
        <div class="box2">Box 2</div>
        <div class="box3">Box 3</div>
    </div>
</body>
</html>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Tạo kiểu với CSS

Tự luyện tập: Playground Web