Padding là gì? Cách sử dụng Padding trong CSS từ cơ bản đến nâng cao

Ngày cập nhật lần cuối: 07/10/2026 Tác giả: Nguyễn Khoa Ty
Mục lục
Mục lục

Padding là gì? Padding là khoảng cách giữa nội dung bên trong một phần tử HTML và đường viền (border) của chính phần tử đó. Trong CSS, thuộc tính padding được sử dụng để tạo khoảng trống bên trong phần tử, giúp nội dung không bị sát vào viền và cải thiện khả năng trình bày, đọc và tương tác của giao diện.

Padding là một trong những thuộc tính nền tảng khi xây dựng giao diện website bằng HTML và CSS. Việc hiểu đúng padding không chỉ giúp kiểm soát khoảng cách giữa nội dung và khung chứa mà còn giúp tránh nhiều lỗi thường gặp liên quan đến kích thước phần tử, bố cục và thiết kế website.

1. Padding là gì?

Trong CSS, padding là khoảng không gian nằm ở bên trong một phần tử, giữa phần nội dung (content) và border.

Có thể hình dung cấu trúc của một phần tử HTML theo mô hình hộp (CSS Box Model) như sau:

  • Content: nội dung thực tế của phần tử.
  • Padding: khoảng cách từ nội dung đến border.
  • Border: đường viền bao quanh phần tử.
  • Margin: khoảng cách từ phần tử đến các phần tử bên ngoài.

Ví dụ:

.box {
  padding: 20px;
}

Đoạn CSS trên tạo khoảng cách 20px ở cả bốn phía bên trong phần tử .box.

Nếu phần tử có nền màu hoặc border, phần padding sẽ nằm bên trong vùng hiển thị của phần tử đó.


2. Padding nằm ở đâu trong CSS Box Model?

Để hiểu chính xác padding, cần nắm được CSS Box Model. Mỗi phần tử HTML có thể được xem như một chiếc hộp gồm các lớp từ trong ra ngoài:

Content → Padding → Border → Margin

Ví dụ một thẻ:

<div class="box">
  Nội dung
</div>

CSS:

.box {
  width: 300px;
  padding: 20px;
  border: 1px solid #333;
  margin: 30px;
}

Trong trường hợp này:

  • 300px là chiều rộng vùng content theo cách tính mặc định.
  • 20px là padding ở mỗi phía.
  • 1px là border ở mỗi phía.
  • 30px là margin ở mỗi phía.

Vì vậy, nếu sử dụng box-sizing: content-box mặc định, chiều rộng thực tế của hộp sẽ lớn hơn giá trị width: 300px do padding và border được cộng thêm vào.


3. Padding có tác dụng gì?

Padding được sử dụng chủ yếu để kiểm soát khoảng cách bên trong phần tử. Trong thiết kế giao diện web, thuộc tính này có nhiều vai trò quan trọng.

Tạo khoảng cách giữa nội dung và viền

Đây là công dụng cơ bản nhất của padding.

.box {
  border: 1px solid #ddd;
  padding: 20px;
}

Nội dung bên trong sẽ không nằm sát đường viền mà được tạo khoảng cách 20px.

Cải thiện khả năng đọc nội dung

Nếu văn bản nằm quá sát mép của một khối nội dung, giao diện sẽ khó đọc và tạo cảm giác chật chội. Padding giúp tạo khoảng thở giữa nội dung và thành phần bao quanh.

.content {
  padding: 24px;
}

Cách sử dụng này thường thấy ở các hộp nội dung, sidebar, thẻ sản phẩm, bài viết, banner hoặc các section trên website.

Tăng vùng tương tác của các thành phần giao diện

Padding đặc biệt hữu ích với các thành phần như nút bấm, menu và liên kết.

.button {
  padding: 10px 20px;
}

Ở đây, padding tạo thêm không gian bên trong nút, giúp nút dễ nhìn và dễ thao tác hơn thay vì chỉ bao quanh sát phần chữ.

Tạo khoảng cách đồng đều trong bố cục

Thay vì đặt nhiều khoảng cách thủ công cho từng thành phần con, padding có thể được áp dụng cho phần tử cha để tạo một vùng đệm thống nhất.

.card {
  padding: 24px;
}

Toàn bộ nội dung bên trong card sẽ có khoảng cách với các cạnh của card theo cùng một quy tắc.


4. Cú pháp của thuộc tính Padding trong CSS

Cú pháp cơ bản:

padding: giá-trị;

Ví dụ:

padding: 20px;

Giá trị này áp dụng cho cả bốn phía: trên, phải, dưới và trái.

CSS cũng cho phép khai báo padding riêng cho từng phía bằng các thuộc tính:

  • padding-top: padding phía trên.
  • padding-right: padding phía bên phải.
  • padding-bottom: padding phía dưới.
  • padding-left: padding phía bên trái.

5. Padding 1 giá trị, 2 giá trị, 3 giá trị và 4 giá trị

Một trong những điểm quan trọng khi sử dụng CSS là cách trình duyệt phân bổ các giá trị khi viết shorthand padding.

Padding với 1 giá trị

padding: 20px;

Áp dụng:

  • Trên: 20px
  • Phải: 20px
  • Dưới: 20px
  • Trái: 20px

Padding với 2 giá trị

padding: 10px 20px;

Quy tắc:

  • Giá trị thứ nhất: trên và dưới.
  • Giá trị thứ hai: trái và phải.

Tức là:

padding-top: 10px;
padding-bottom: 10px;
padding-left: 20px;
padding-right: 20px;

Padding với 3 giá trị

padding: 10px 20px 30px;

Quy tắc:

  • Giá trị thứ nhất: trên.
  • Giá trị thứ hai: trái và phải.
  • Giá trị thứ ba: dưới.

Padding với 4 giá trị

padding: 10px 20px 30px 40px;

Thứ tự được tính theo chiều kim đồng hồ:

Trên → Phải → Dưới → Trái

Có thể ghi nhớ bằng thứ tự:

padding: top right bottom left;

6. Các đơn vị thường dùng cho Padding

Padding không bắt buộc phải sử dụng đơn vị px. CSS hỗ trợ nhiều loại đơn vị khác nhau.

Padding với px

padding: 20px;

px phù hợp khi cần kiểm soát kích thước khoảng cách tương đối cố định, chẳng hạn padding của button, card hoặc thành phần giao diện cụ thể.

Padding với %

padding: 5%;

Giá trị phần trăm của padding được tính dựa trên chiều rộng của containing block, kể cả khi padding đang áp dụng cho phía trên hoặc phía dưới.

Đây là điểm dễ gây nhầm lẫn khi làm responsive layout.

Padding với rem

padding: 1.5rem;

rem phụ thuộc vào kích thước font của phần tử gốc (root element), thường là phần tử html. Đơn vị này hữu ích khi muốn xây dựng hệ thống kích thước có tính nhất quán và dễ điều chỉnh.

Padding với em

padding: 1em;

em được tính dựa trên kích thước font của phần tử liên quan. Vì vậy, khi font-size thay đổi, padding sử dụng em cũng có thể thay đổi theo.

Padding với các đơn vị viewport

Có thể sử dụng các đơn vị như vw và vh trong những trường hợp cần khoảng cách phụ thuộc vào kích thước viewport.

.hero {
  padding: 5vw;
}

Tuy nhiên, không nên sử dụng đơn vị viewport một cách máy móc cho mọi thành phần vì khoảng cách có thể trở nên quá lớn hoặc quá nhỏ trên những màn hình khác nhau.


7. Box-sizing và Padding

Để kiểm soát kích thước phần tử dễ hơn, nhiều dự án sử dụng:

* {
  box-sizing: border-box;
}

Khi sử dụng border-box, giá trị width và height được tính bao gồm cả padding và border.

Ví dụ:

.box {
  box-sizing: border-box;
  width: 300px;
  padding: 20px;
  border: 2px solid #333;
}

Lúc này chiều rộng tổng thể của phần tử vẫn là 300px. Phần content bên trong sẽ được thu hẹp để dành chỗ cho padding và border.

Đây là lý do box-sizing: border-box thường được sử dụng trong các hệ thống CSS hiện đại.


8. Padding trong thiết kế Responsive

Padding có vai trò quan trọng khi thiết kế website responsive vì khoảng cách phù hợp trên màn hình desktop chưa chắc phù hợp trên điện thoại.

Ví dụ:

.container {
  padding: 40px;
}

@media (max-width: 768px) {
  .container {
    padding: 20px;
  }
}

Trên màn hình lớn, phần tử có padding 40px. Khi màn hình nhỏ hơn 768px, padding được giảm xuống 20px để dành nhiều không gian hơn cho nội dung.

Điều này đặc biệt quan trọng với các website có nhiều nội dung văn bản, bảng, form, card hoặc menu trên thiết bị di động.


9. Padding trong Button và Link

Padding thường được sử dụng để tạo kích thước và vùng tương tác cho button.

.btn {
  padding: 10px 18px;
  border: 1px solid #005894;
}

Không nên chỉ sử dụng margin để tạo khoảng trống xung quanh chữ bên trong button. Padding phù hợp hơn khi mục tiêu là tạo không gian bên trong vùng tương tác.

Với các liên kết trong menu, padding cũng có thể giúp toàn bộ vùng bao quanh chữ trở thành khu vực tương tác thay vì chỉ phần ký tự.


10. Padding trong Card

Card là một trong những thành phần thường xuyên sử dụng padding.

.card {
  padding: 24px;
  border: 1px solid #ddd;
  border-radius: 8px;
}

Padding giúp tiêu đề, đoạn mô tả và các thành phần bên trong card không bị sát vào cạnh.

Trong trường hợp card có nhiều thành phần với khoảng cách riêng, có thể kết hợp padding của card với gap, margin hoặc các thuộc tính layout như Flexbox và Grid tùy cấu trúc.


11. Padding trong Flexbox và CSS Grid

Padding và Flexbox hoặc Grid có thể được sử dụng cùng nhau nhưng chúng giải quyết những vấn đề khác nhau.

Ví dụ:

.container {
  display: flex;
  gap: 20px;
  padding: 20px;
}

Trong ví dụ trên:

  • padding tạo khoảng cách giữa nội dung bên trong container và cạnh của container.
  • gap tạo khoảng cách giữa các item con.

Vì vậy, không nên nhầm padding với gap. Padding tác động đến khoảng trống bên trong phần tử chứa, còn gap kiểm soát khoảng cách giữa các item trong Flexbox hoặc Grid.


12. Padding và background

Một đặc điểm quan trọng của padding là vùng padding thường nằm trong vùng background của phần tử.

.box {
  background: #f5f5f5;
  padding: 30px;
}

Màu nền sẽ bao phủ cả vùng content và padding, nhưng không bao phủ margin.

Đây là điểm giúp phân biệt rõ padding và margin khi xây dựng các khối giao diện có nền màu.


13. Những lỗi thường gặp khi sử dụng Padding

1. Nhầm padding với margin

Đây là lỗi phổ biến nhất đối với người mới học CSS. Nếu muốn tạo khoảng cách giữa nội dung và cạnh của một box, nên xem xét padding. Nếu muốn tạo khoảng cách giữa box đó với box khác, margin hoặc các cơ chế layout như gap có thể phù hợp hơn.

2. Quên ảnh hưởng của box-sizing

Đặt width cố định rồi thêm padding trong chế độ content-box có thể khiến phần tử rộng hơn dự kiến.

3. Dùng quá nhiều padding

Padding quá lớn có thể khiến nội dung bị thu hẹp, đặc biệt trên màn hình điện thoại. Vì vậy nên kiểm tra giao diện trên nhiều kích thước màn hình.

4. Sử dụng padding để giải quyết mọi vấn đề khoảng cách

Padding không phải công cụ duy nhất để kiểm soát khoảng cách. Tùy trường hợp nên cân nhắc margin, gap, line-height, Flexbox hoặc Grid.


14. Ví dụ tổng hợp cách sử dụng Padding trong CSS

Ví dụ một card sản phẩm đơn giản:

.product-card {
  box-sizing: border-box;
  width: 300px;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
}

.product-card h2 {
  margin-top: 0;
}

.product-card .button {
  display: inline-block;
  padding: 10px 18px;
}

Trong ví dụ này:

  • padding: 20px tạo khoảng cách bên trong card.
  • border tạo đường viền của card.
  • box-sizing: border-box giúp width 300px bao gồm cả padding và border.
  • Padding của button tạo vùng đệm xung quanh nội dung nút.

15. Bảng phân biệt Padding, Margin, Border và Content

Thành phần Vị trí Chức năng Background có bao phủ?
Content Trung tâm phần tử Chứa nội dung Có
Padding Giữa content và border Tạo khoảng cách bên trong Có
Border Bao quanh padding Tạo đường viền Có thể có background phía sau tùy thuộc cách vẽ nền
Margin Bên ngoài border Tạo khoảng cách với phần tử khác Không

16. Cách chọn Padding phù hợp khi thiết kế website

Không có một giá trị padding cố định phù hợp cho mọi website. Giá trị nên được lựa chọn dựa trên kích thước thành phần, mật độ nội dung, kiểu chữ, thiết bị và hệ thống spacing của toàn bộ giao diện.

Một số nguyên tắc có thể áp dụng:

  • Sử dụng spacing nhất quán giữa các thành phần.
  • Không để nội dung quá sát cạnh của container.
  • Giảm padding trên màn hình nhỏ nếu không gian hiển thị bị hạn chế.
  • Kiểm tra cả desktop, tablet và mobile.
  • Kết hợp padding với gap, margin và layout phù hợp thay vì dùng một thuộc tính cho mọi trường hợp.
  • Đối với button và thành phần tương tác, cần đảm bảo vùng bấm đủ thuận tiện.

17. Những câu hỏi thường gặp về Padding

Padding là khoảng cách trong hay ngoài?

Padding là khoảng cách bên trong phần tử, nằm giữa content và border.

Padding và margin khác nhau thế nào?

Padding tạo khoảng cách bên trong phần tử, còn margin tạo khoảng cách bên ngoài phần tử.

Ví dụ:

.box {
  padding: 20px;
  margin: 30px;
}

Có thể hiểu đơn giản:

Padding = khoảng cách bên trong.

Margin = khoảng cách bên ngoài.

Một điểm khác biệt quan trọng là background của phần tử được vẽ tới vùng padding, trong khi margin nằm bên ngoài phần tử và không thuộc vùng background của phần tử đó.

Padding có làm tăng kích thước phần tử không?

Có thể. Với box-sizing: content-box, padding được cộng thêm vào kích thước content khi xác định kích thước ngoài của phần tử. Với box-sizing: border-box, padding nằm trong kích thước được khai báo bằng width hoặc height.

Mặc định, CSS sử dụng:

box-sizing: content-box;

Khi đó, nếu viết:

.box {
  width: 300px;
  padding: 20px;
}

Chiều rộng tổng thể theo phương ngang sẽ là:

300px + 20px + 20px = 340px

Trong đó:

  • 300px là content.
  • 20px là padding trái.
  • 20px là padding phải.

Border nếu có cũng được cộng thêm vào kích thước ngoài của phần tử.

Padding khác Border như thế nào?

Border là đường viền nằm giữa padding và margin.

.box {
  padding: 20px;
  border: 2px solid #333;
}

Trong ví dụ này:

  • padding: 20px tạo khoảng trống bên trong.
  • border: 2px tạo đường viền.

Thứ tự của các vùng là:

Content
   ↓
Padding
   ↓
Border
   ↓
Margin

Padding có thể âm không?

Không. CSS không cho phép giá trị padding âm.

Padding có thể đặt bằng 0:

padding: 0;

Cách này thường được sử dụng để loại bỏ padding mặc định hoặc reset khoảng cách của một phần tử.

Ngược lại, padding không chấp nhận giá trị âm. Nếu cần tạo khoảng cách âm hoặc kéo một phần tử về phía phần tử khác, CSS thường sử dụng các kỹ thuật khác như margin âm hoặc positioning tùy trường hợp.

Padding có áp dụng cho cả bốn phía không?

Có. Bạn có thể dùng một giá trị để áp dụng giống nhau cho cả bốn phía hoặc sử dụng hai, ba, bốn giá trị để kiểm soát từng phía.

Nên dùng padding hay margin?

Nếu cần tạo khoảng cách giữa nội dung và cạnh của phần tử, hãy sử dụng padding. Nếu cần tạo khoảng cách giữa phần tử này với phần tử khác, margin hoặc gap thường phù hợp hơn tùy cấu trúc layout.

Padding có ảnh hưởng đến SEO không?

Padding không phải là yếu tố xếp hạng SEO trực tiếp. Việc thay đổi padding trong CSS không khiến một trang tự động có thứ hạng cao hơn trên Google.

Tuy nhiên, padding có thể ảnh hưởng gián tiếp đến chất lượng trải nghiệm người dùng và khả năng hiển thị nội dung. Khoảng cách hợp lý giúp giao diện dễ đọc, dễ thao tác và phù hợp với nhiều kích thước màn hình.

Do đó, khi tối ưu website, padding nên được xem là một phần của việc xây dựng giao diện và trải nghiệm người dùng, thay vì một thủ thuật SEO.

Padding có ảnh hưởng đến tốc độ tải website không?

Bản thân thuộc tính padding rất nhẹ và không phải nguyên nhân đáng kể làm website tải chậm.

Vấn đề hiệu suất thường liên quan nhiều hơn đến hình ảnh, JavaScript, CSS quá lớn, font, quảng cáo, bên thứ ba và cách trình duyệt phải xử lý bố cục.

Tuy nhiên, việc sử dụng CSS hợp lý vẫn cần thiết để tránh các vấn đề về bố cục, đặc biệt khi giao diện phải thích ứng với nhiều kích thước màn hình.


18. Kết luận

Padding là gì? Đây là thuộc tính CSS dùng để tạo khoảng cách giữa nội dung bên trong phần tử và đường viền của phần tử đó. Padding là một thành phần quan trọng của CSS Box Model và được sử dụng rộng rãi trong card, button, menu, form, banner, container và nhiều thành phần giao diện khác.

Để sử dụng padding hiệu quả, cần nắm được bốn khái niệm cốt lõi: content, padding, border và margin. Bên cạnh đó, hiểu rõ box-sizing sẽ giúp kiểm soát kích thước phần tử chính xác hơn và hạn chế các lỗi bố cục.

Padding không phải yếu tố SEO trực tiếp, nhưng cách sử dụng hợp lý có thể góp phần tạo giao diện dễ đọc, dễ thao tác và phù hợp với thiết bị di động. Đây là một kiến thức CSS cơ bản nhưng rất quan trọng đối với bất kỳ ai học HTML, CSS hoặc tham gia thiết kế website.

Nguyễn Khoa Ty
Cánh Cam Team
Nguyễn Khoa Ty
Tác giả