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-box
content-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-box
Ngượ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-box
border-box
Nắ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.