Padding trong CSS là khoảng trống nằm giữa nội dung của phần tử và viền (border) của nó. Nó giúp tạo không gian bên trong phần tử, đảm bảo nội dung không bị dính vào viền, và làm cho phần tử trông thoáng hơn. Padding là một trong những thuộc tính quan trọng trong CSS để tạo bố cục và định dạng giao diện trang web.
Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về thuộc tính padding trong CSS, cách sử dụng các thuộc tính liên quan như padding-top, padding-right, padding-bottom, padding-left, và cách sử dụng padding để kiểm soát không gian nội bộ của phần tử.
1. Tổng quan về padding
padding là khoảng cách giữa nội dung của một phần tử và viền của nó. Nó giúp tạo ra khoảng trống bên trong phần tử, làm cho nội dung không bị dính chặt vào cạnh của phần tử.
Cấu trúc của phần tử với padding:

Các thuộc tính chính của padding:
padding-top: Điều chỉnh khoảng cách bên trên nội dung.padding-right: Điều chỉnh khoảng cách bên phải nội dung.padding-bottom: Điều chỉnh khoảng cách bên dưới nội dung.padding-left: Điều chỉnh khoảng cách bên trái nội dung.
2. Cách sử dụng thuộc tính padding
2.1. Thiết lập một giá trị duy nhất cho tất cả các cạnh
Nếu bạn chỉ cung cấp một giá trị duy nhất cho thuộc tính padding, giá trị đó sẽ được áp dụng cho tất cả các phía của phần tử (trên, phải, dưới, và trái).
Ví dụ:
div {
padding: 20px;
}Kết quả: Tất cả các cạnh của phần tử div sẽ có khoảng trống 20px giữa nội dung và viền.
2.2. Thiết lập hai giá trị
Khi bạn chỉ định hai giá trị cho thuộc tính padding:
- Giá trị thứ nhất sẽ được áp dụng cho trên và dưới.
- Giá trị thứ hai sẽ được áp dụng cho trái và phải.
Ví dụ:
div {
padding: 10px 30px;
}Kết quả:
- 10px cho phía trên và dưới.
- 30px cho hai bên trái và phải.
2.3. Thiết lập ba giá trị
Khi bạn chỉ định ba giá trị:
- Giá trị thứ nhất áp dụng cho trên.
- Giá trị thứ hai áp dụng cho trái và phải.
- Giá trị thứ ba áp dụng cho dưới.
Ví dụ:
div {
padding: 15px 30px 20px;
}Kết quả:
- 15px cho phía trên.
- 30px cho hai bên trái và phải.
- 20px cho phía dưới.
2.4. Thiết lập bốn giá trị
Khi bạn chỉ định bốn giá trị cho thuộc tính padding, thứ tự lần lượt sẽ là:
- Giá trị thứ nhất: Trên.
- Giá trị thứ hai: Phải.
- Giá trị thứ ba: Dưới.
- Giá trị thứ tư: Trái.
Ví dụ:
div {
padding: 10px 20px 30px 40px;
}Kết quả:
- 10px cho phía trên.
- 20px cho phía phải.
- 30px cho phía dưới.
- 40px cho phía trái.
3. Các thuộc tính con của padding
Bạn có thể kiểm soát padding cho từng phía của phần tử một cách chi tiết bằng cách sử dụng các thuộc tính con như padding-top, padding-right, padding-bottom, và padding-left.
Ví dụ:
div {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 30px;
padding-left: 40px;
}Trong ví dụ này:
padding-top: 10px;: Khoảng trống phía trên nội dung là 10px.padding-right: 20px;: Khoảng trống bên phải nội dung là 20px.padding-bottom: 30px;: Khoảng trống phía dưới nội dung là 30px.padding-left: 40px;: Khoảng trống bên trái nội dung là 40px.
4. Padding với đơn vị khác nhau
Ngoài đơn vị px (pixel), bạn có thể sử dụng nhiều đơn vị khác để chỉ định giá trị padding, bao gồm:
- %: Padding được tính theo tỷ lệ phần trăm của chiều rộng chứa phần tử.
- em: Tính theo kích thước chữ của phần tử hiện tại.
- rem: Tính theo kích thước chữ của phần tử gốc (root element).
- vw: Đơn vị viewport width (tính theo phần trăm của chiều rộng cửa sổ trình duyệt).
- vh: Đơn vị viewport height (tính theo phần trăm của chiều cao cửa sổ trình duyệt).
Ví dụ:
div {
padding: 10%; /* Padding là 10% chiều rộng của phần tử chứa */
}Trong ví dụ trên, padding sẽ chiếm 10% của chiều rộng phần tử chứa.
5. Lưu ý về kích thước khi sử dụng padding
Khi bạn sử dụng padding, tổng kích thước của phần tử (bao gồm width và height) sẽ tăng lên, vì padding được tính từ bên trong phần tử nhưng nằm ngoài nội dung.
Ví dụ:
div {
width: 200px;
padding: 20px;
}Trong ví dụ trên:
- Chiều rộng nội dung của div là 200px.
- Tuy nhiên, tổng chiều rộng thực tế của div sẽ là: 200px + 20px (trái) + 20px (phải) = 240px.
Để tránh thay đổi kích thước tổng của phần tử khi thêm padding, bạn có thể sử dụng thuộc tính box-sizing với giá trị border-box.
Ví dụ với box-sizing:
div {
width: 200px;
padding: 20px;
box-sizing: border-box; /* Padding sẽ không ảnh hưởng đến tổng kích thước */
}Với box-sizing: border-box, tổng kích thước của phần tử sẽ luôn giữ nguyên, và padding sẽ được tính bên trong kích thước đã định sẵn.
6. So sánh giữa padding và margin
Mặc dù cả padding và margin đều tạo khoảng trống cho phần tử, nhưng chúng có những điểm khác biệt quan trọng:
- Padding: Tạo khoảng trống bên trong phần tử, giữa nội dung và viền.
- Margin: Tạo khoảng trống bên ngoài phần tử, giữa viền của phần tử với các phần tử khác.
Ví dụ:
div {
padding: 20px; /* Tạo khoảng trống bên trong giữa nội dung và viền */
margin: 30px; /* Tạo khoảng trống bên ngoài phần tử với các phần tử khác */
}Kết quả:
paddingsẽ tạo khoảng cách bên trong phần tử giữa nội dung và viền.marginsẽ tạo khoảng cách bên ngoài phần tử với các phần tử xung quanh.
