Hộp CSS (CSS Box Model)

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 21 tháng 1, 2025

Trong bài học này, bạn sẽ tìm hiểu về CSS Box Model, một khái niệm quan trọng trong việc quản lý giao diện. Hiểu rõ Box Model sẽ giúp bạn thiết kế bố cục web chính xác và hiệu quả hơn.

Box Model

1. Giới thiệu Box Model

Box Model định nghĩa cách các phần tử HTML được hiển thị và chiếm không gian trên trang web. Mỗi phần tử được coi như một hộp, bao gồm 4 thành phần:

  1. Content:

    • Phần nội dung của phần tử.
    • Được xác định bởi các thuộc tính như widthheight.
  2. Padding:

    • Khoảng cách giữa nội dung và đường viền của phần tử.
    • Tăng kích thước phần tử nhưng không ảnh hưởng đến content.
  3. Border:

    • Đường viền bao quanh phần tử.
    • Có thể định dạng bằng các thuộc tính như border-width, border-style, và border-color.
  4. Margin:

    • Khoảng cách giữa phần tử và các phần tử khác.

Hình minh họa:

+-----------------------------------+
|              Margin               |
+-----------------------------------+
|              Border               |
+-----------------------------------+
|              Padding              |
+-----------------------------------+
|             Content               |
+-----------------------------------+

2. Cách sử dụng Box Model trong thiết kế layout

  • Quản lý khoảng cách: Dùng margin để tạo không gian giữa các phần tử.
  • Tạo hiệu ứng bên trong: Dùng padding để đảm bảo nội dung không dính sát đường viền.
  • Kiểm soát kích thước tổng thể: Tích hợp các giá trị padding, border, và margin.

3. Thuộc tính box-sizing

  • Giá trị:
    • content-box (mặc định): Kích thước widthheight chỉ áp dụng cho content, không bao gồm paddingborder.
    • border-box: Kích thước widthheight bao gồm cả content, padding, và border.

So sánh:

div {
  width: 200px;
  padding: 10px;
  border: 5px solid black;
}
  • Với content-box: Tổng chiều rộng là 200px + 10px*2 (padding) + 5px*2 (border) = 230px.
  • Với border-box: Tổng chiều rộng giữ nguyên là 200px.

4. Thực hành

Tạo một trang HTML minh họa các thành phần của Box Model.

File HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Box Model</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="box content-box">Content Box</div>
  <div class="box border-box">Border Box</div>
</body>
</html>

File CSS (styles.css):

/* Định dạng chung */
body {
  font-family: Arial, sans-serif;
  margin: 20px;
}

.box {
  margin: 20px auto;
  padding: 20px;
  border: 5px solid black;
  text-align: center;
  width: 200px;
}

/* Content Box */
.content-box {
  box-sizing: content-box;
  background-color: lightblue;
}

/* Border Box */
.border-box {
  box-sizing: border-box;
  background-color: lightcoral;
}

Kết luận

Box Model là nền tảng của việc bố trí giao diện web. Hiểu rõ cách hoạt động và sử dụng hợp lý thuộc tính box-sizing sẽ giúp bạn thiết kế bố cục chính xác và hiệu quả.

Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ