Căn giữa hoàn hảo
Thuộc phần Tạo kiểu với CSS trong hành trình HTML của Coddy. Bài học 48 trên 76.
Trong CSS, việc đạt được “vị trí chính giữa hoàn hảo”, tức là căn giữa một phần tử theo cả chiều ngang lẫn chiều dọc bên trong phần tử cha, là một thử thách bố cục phổ biến. Flexbox cung cấp giải pháp đơn giản và tinh tế cho vấn đề này. Bằng cách kết hợp thuộc tính justify-content và align-items, bạn có thể dễ dàng căn giữa phần tử con bên trong vùng chứa flex, bất kể kích thước của phần tử con hay phần tử cha.
Đây là cách căn giữa hoàn hảo bằng Flexbox:
.container {
display: flex; /* Biến phần tử cha thành vùng chứa flex */
justify-content: center; /* Căn giữa phần tử con theo chiều ngang trên trục chính */
align-items: center; /* Căn giữa phần tử con theo chiều dọc trên trục phụ */
}Để kỹ thuật này hoạt động hiệu quả, hãy đảm bảo vùng chứa flex có chiều cao xác định. Nếu bạn không đặt chiều cao rõ ràng cho vùng chứa, chiều cao của nó chỉ vừa bằng nội dung bên trong, nên bạn có thể không thấy nội dung được căn giữa theo chiều dọc.
Đây là ví dụ về cách dùng kỹ thuật này trong HTML:
<div class="container">
<div class="child">This is centered</div>
</div>.container {
display: flex;
justify-content: center;
align-items: center;
height: 300px; /* Đặt chiều cao cụ thể cho vùng chứa */
border: 1px solid black; /* Tùy chọn: Thêm đường viền để dễ quan sát */
}
.child {
padding: 20px;
border: 1px solid red;
}Trong ví dụ này, phần tử (element) .container có chiều cao là 300px, còn phần tử .child sẽ nằm chính giữa theo cả chiều ngang lẫn chiều dọc bên trong nó.
Thử thách
DễBạn được cung cấp một tài liệu HTML có một phần tử cha (<div>) chứa một phần tử con (<div>). Nhiệm vụ của bạn là dùng Flexbox để căn giữa hoàn hảo phần tử con bên trong phần tử cha. Hãy làm theo các bước sau:
- Viết một quy tắc CSS nhắm đến phần tử
<div>có lớpparent. - Đặt thuộc tính
displaycủa phần tử.parentthànhflexđể biến phần tử này thành một vùng chứa flex. - Đặt thuộc tính
justify-contentcủa phần tử.parentthànhcenterđể căn giữa phần tử con theo chiều ngang. - Đặt thuộc tính
align-itemscủa phần tử.parentthànhcenterđể căn giữa phần tử con theo chiều dọc. - Đặt chiều cao của phần tử
.parentlà200pxđể thấy rõ việc căn giữa theo chiều dọc.
Tự làm thử
<html>
<head>
<title>The Perfect Center</title>
<style>
/* Write CSS rules here */
</style>
</head>
<body>
<div class="parent">
<div class="child">Center Me</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
3Bộ 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