Trong CSS, thuộc tính box-sizing quyết định cách mà kích thước của các phần tử được tính toán. Việc nắm rõ hai giá trị phổ biến nhất là border-box và content-box sẽ giúp bạn quản lý bố cục một cách hiệu quả và tối ưu hóa trải nghiệm người dùng trên trang web của mình.
content-boxcontent-box là giá trị mặc định của thuộc tính box-sizing. Với giá trị này, kích thước của phần tử được tính bằng chiều rộng và chiều cao của nội dung bên trong. Điều này có nghĩa là padding và border không được tính vào kích thước tổng thể của phần tử.
border-boxNgược lại, khi bạn sử dụng border-box, kích thước của phần tử sẽ bao gồm cả nội dung, padding và border. Điều này đồng nghĩa với việc khi bạn thêm padding hoặc border, chiều rộng và chiều cao tổng thể của phần tử sẽ không thay đổi.
content-box.box {
box-sizing: content-box;
width: 200px; /* Chiều rộng phần tử */
padding: 20px; /* Padding */
border: 5px solid black; /* Border */
}
Trong ví dụ trên, chiều rộng và chiều cao của phần tử .box sẽ được tính như sau:
Kết quả: Chiều rộng tổng thể sẽ là 200px + 40px + 10px = 250px.
border-box.box {
box-sizing: border-box;
width: 200px; /* Chiều rộng phần tử */
padding: 20px; /* Padding */
border: 5px solid black; /* Border */
}
Với border-box, chiều rộng và chiều cao của phần tử sẽ được tính như sau:
Kết quả: Chiều rộng của phần tử vẫn là 200px, không bị ảnh hưởng bởi padding và border.
content-boxborder-boxNắm vững sự khác biệt giữa border-box và content-box không chỉ giúp bạn tránh những vấn đề về bố cục mà còn giúp bạn trở thành một lập trình viên CSS hiệu quả hơn. Hãy sử dụng border-box để dễ dàng kiểm soát kích thước phần tử, đặc biệt trong các layout phức tạp.