Đị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 đó.
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:
- Viết một quy tắc CSS áp dụng cho phần tử
<div>có lớpbox2. - Đặt thuộc tính
positioncủa phần tử.box2thànhrelative. - Đặt thuộc tính
topcủa phần tử.box2thành20pxvà thuộc tínhleftthành40px. 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>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
11Kỹ thuật bố cục
Phần tử block và inlineCơ bản về định vịĐịnh vị tương đốiĐịnh vị tuyệt đốiĐịnh vị cố địnhCơ bản về z-indexThử thách ôn tập3Bộ chọn cơ bản
Giới thiệu về bộ chọnBộ chọn kiểuBộ chọn lớpBộ chọn IDBộ chọn nhómBộ chọn phổ quátThử thách về bộ chọn9Flexbox
Flexbox là gì?Hướng flexCăn chỉnh nội dungCăn chỉnh các phần tửCăn giữa hoàn hảoThử thách Flexbox12Kiến thức cơ bản về thiết kế đáp ứng
Thiết kế đáp ứng là gì?Thẻ meta viewportBố cục linh hoạtĐơn vị viewportKiến thức cơ bản về media queryHình ảnh linh hoạtTự luyện tập: Playground Web