Chính xác thì sự khác biệt giữa lề và phần đệm trong CSS là gì? Nó thực sự không phục vụ nhiều mục đích. Bạn có thể cho tôi một ví dụ về sự khác biệt nằm ở đâu (và tại sao điều quan trọng là phải biết sự khác biệt)?
Chính xác thì sự khác biệt giữa lề và phần đệm trong CSS là gì? Nó thực sự không phục vụ nhiều mục đích. Bạn có thể cho tôi một ví dụ về sự khác biệt nằm ở đâu (và tại sao điều quan trọng là phải biết sự khác biệt)?
Câu trả lời:
padding
là không gian giữa nội dung và border
, trong khi đó margin
là không gian bên ngoài đường viền. Đây là một hình ảnh tôi tìm thấy từ một tìm kiếm nhanh của Google, minh họa cho ý tưởng này.
Một điều quan trọng còn thiếu trong các câu trả lời ở đây:
Lợi nhuận trên / dưới có thể thu gọn.
Vì vậy, nếu bạn có lề 20px ở dưới cùng của một phần tử và lề 30px ở đầu phần tử tiếp theo, thì lề giữa hai phần tử sẽ là 30px thay vì 50px. Điều này không áp dụng cho lề trái / phải hoặc phần đệm.
Ký quỹ được áp dụng cho bên ngoài phần tử của bạn do đó ảnh hưởng đến việc phần tử của bạn cách xa các phần tử khác bao xa.
Đệm được áp dụng cho bên trong phần tử của bạn do đó ảnh hưởng đến việc nội dung của phần tử của bạn cách xa biên giới bao xa.
Ngoài ra, sử dụng lề sẽ không ảnh hưởng đến kích thước của phần tử của bạn trong khi phần đệm sẽ làm cho kích thước phần tử của bạn (đặt chiều cao + phần đệm), ví dụ: nếu bạn có div 100x100px với phần đệm 5 px, div của bạn thực sự sẽ là 105x105px
auto
. Nếu chiều rộng là auto
, thì phần đệm bổ sung sẽ tăng chiều rộng của phần tử đệm tương ứng (và từ cả hai phía, như @ 2013Asker đã đề cập)
Hãy nhớ 3 điểm sau:
Nói xấu đơn giản nhất là; phần đệm là khoảng trắng được cho bên trong đường viền của phần tử container và lề được đưa ra bên ngoài. Đối với một yếu tố không phải là vật chứa, phần đệm có thể không có nhiều ý nghĩa, nhưng lề chắc chắn sẽ giúp sắp xếp nó.
Đệm là không gian bên trong đường viền, trong khi Margin là không gian bên ngoài đường viền.
Đệm
Padding là một thuộc tính CSS xác định khoảng trắng giữa một nội dung phần tử và đường viền của nó (nếu nó có đường viền). Nếu một phần tử có đường viền xung quanh nó, phần đệm sẽ cung cấp không gian từ đường viền đó cho nội dung phần tử xuất hiện trong đường viền đó. Nếu một phần tử không có viền xung quanh nó, thì việc thêm phần đệm không có tác dụng gì với phần tử đó, vì không có viền để tạo khoảng trống.
Ký quỹ
Margin là một thuộc tính CSS xác định không gian bên ngoài của một phần tử với phần tử bên ngoài tiếp theo của nó.
Ký quỹ ảnh hưởng đến các yếu tố mà cả hai có hoặc không có biên giới. Nếu một phần tử có đường viền, lề xác định khoảng trắng từ đường viền này đến phần tử bên ngoài tiếp theo. Nếu một phần tử không có viền, thì lề xác định khoảng trắng từ nội dung phần tử đến phần tử bên ngoài tiếp theo.
Sự khác biệt giữa đệm và ký quỹ
Vì vậy, sự khác biệt giữa lề và đệm là trong khi đệm giao dịch với không gian bên trong, lề liên quan đến không gian bên ngoài đến phần tử bên ngoài tiếp theo.
Một trong những khác biệt chính giữa lề và phần đệm không được đề cập trong bất kỳ câu trả lời nào: khả năng nhấp và phát hiện di chuột
Tăng phần đệm làm tăng kích thước hiệu quả của phần tử. Đôi khi tôi có một biểu tượng nhỏ mà tôi không muốn làm cho lớn hơn rõ rệt nhưng người dùng vẫn cần phải tương tác với biểu tượng đó. Tôi tăng phần đệm của biểu tượng để tạo cho nó một dấu chân lớn hơn cho các lần nhấp và di chuột. Tăng lề của biểu tượng sẽ không có tác dụng tương tự.
Một câu trả lời cho một câu hỏi khác về chủ đề này đưa ra một ví dụ.
lề = không gian xung quanh (bên ngoài) phần tử từ viền ra ngoài.
padding = khoảng trống xung quanh (bên trong) phần tử từ văn bản đến viền.
xem tại đây: http://jsfiddle.net/robx/GaMpq/
Thật tốt khi biết về sự khác biệt giữa margin
và padding
. Theo tôi biết:
auto
giá trị thành lề. Tuy nhiên, nó không được phép để đệm. Xem này .
margin: auto
để căn giữa một phần tử khối bên trong cha mẹ theo chiều ngang. Ngoài ra, có thể căn giữa một phần tử bên trong flexbox theo chiều dọc hoặc chiều ngang hoặc cả hai, bằng cách đặt lề thành tự động. Xem này .
background-color
tính thành màu đen, không gian bên trong của nó (tức là phần đệm) sẽ có màu đen, nhưng không phải là không gian bên ngoài của nó (tức là lề).
Ký quỹ là không gian bên ngoài hộp; đệm là không gian bên trong hộp. Thật khó để thấy sự khác biệt với màu trắng, nhưng với màu tô bạn có thể thấy nó ổn.
Đệm cho phép nhà phát triển duy trì không gian giữa văn bản và phần tử kèm theo. Margin là không gian mà phần tử duy trì với một phần tử khác của DOM cha.
Xem ví dụ:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UT-8">
<title>Pseudo Elements</title>
<style type="text/css">
body{font-family:Arial; font-size:16px; background-color:#f8e6ae; color:#888;}
.page
{
background-color: #fff;
padding: 10px 30px 50px 50px;
margin:30px 100px 30px 300px;
}
</style>
</head>
<body>
<div class="page">
Notice the distance between the top and this text. Then compare it with the distance between the bottom border and the this text.
</div>
</body>
Margin là một thuộc tính trong CSS được sử dụng để tạo khoảng trắng xung quanh các phần tử, bên ngoài đường viền. Lập trình viên có thể đặt lề cho đỉnh, phải, dưới và trái. Nói cách khác, anh ta có thể đặt các giá trị đó bằng cách sử dụng lề trên, lề phải, lề dưới và lề trái.
Các giá trị Margin có thể thuộc các loại sau.
Đầu tiên, auto cho phép trình duyệt tính toán lề. Hơn nữa, độ dài biểu thị một lề trong px, pt hoặc cm, trong khi% giúp mô tả một lề là tỷ lệ phần trăm so với chiều rộng của phần tử chứa. Cuối cùng, kế thừa biểu thị rằng lề phải kế thừa từ phần tử cha.
Padding là một thuộc tính trong CSS giúp tạo không gian xung quanh một phần tử bên trong đường viền. Lập trình viên có thể đặt phần đệm cho đỉnh, phải, dưới và trái. Nói cách khác, anh ta có thể đặt các giá trị đó bằng cách sử dụng padding-top, padding-right, padding-bottom và padding-left.
Các giá trị Padding có thể thuộc các loại sau.
Độ dài mô tả phần đệm theo px, pt hoặc cm, trong khi% biểu thị phần đệm là phần trăm so với chiều rộng của phần tử chứa. Cuối cùng, kế thừa mô tả rằng phần đệm nên được kế thừa từ phần tử cha.
div.special {
width:200px;
border-style: solid;
border-width:thin;
border-color:#000;
margin:30px 20px 10px 25px;
}
div.special2 {
width:200px;
border-style: solid;
border-width:thin;
border-color:#000;
padding:30px 20px 10px 25px;
}
<div class="special">
Hello its margin test
</div>
<div class="special2">
Hello its padding test
</div>
Sự khác biệt giữa ký quỹ và đệm
Margin là một thuộc tính CSS được sử dụng để tạo không gian xung quanh phần tử bên ngoài đường viền được xác định, trong khi phần đệm là thuộc tính CSS được sử dụng để tạo không gian xung quanh phần tử, bên trong đường viền được xác định. Do đó, điều này giải thích sự khác biệt chính giữa lề và phần đệm.
Các giá trị Hơn nữa, các giá trị của lề có thể là tự động, độ dài,% hoặc kế thừa, trong khi các giá trị của phần đệm có thể là độ dài,% hoặc kiểu kế thừa. Do đó, đây là một sự khác biệt khác giữa lề và đệm.
Tóm lại, lề và phần đệm là hai thuộc tính trong CSS cho phép tạo kiểu cho các trang web. Không thể gán giá trị âm cho các thuộc tính đó. Sự khác biệt chính giữa lề và phần đệm là lề giúp tạo không gian xung quanh phần tử bên ngoài viền, trong khi phần đệm giúp tạo không gian xung quanh phần tử bên trong viền.
Một điều tôi chỉ nhận thấy nhưng không có câu trả lời nào ở trên được đề cập. Nếu tôi có một phần tử DOM được tạo động được khởi tạo với nội dung html trống bên trong, thì nên sử dụng lề thay vì đệm nếu bạn không muốn phần tử trống này chiếm bất kỳ khoảng trống nào ngoại trừ nội dung của nó được tạo.
Ký quỹ được áp dụng cho bên ngoài phần tử của bạn do đó ảnh hưởng đến việc phần tử của bạn cách xa các phần tử khác bao xa.
Đệm được áp dụng cho bên trong phần tử của bạn do đó ảnh hưởng đến việc nội dung của phần tử của bạn cách xa biên giới bao xa.
Ngoài ra, sử dụng lề sẽ không ảnh hưởng đến kích thước của phần tử của bạn trong khi phần đệm sẽ làm cho kích thước phần tử của bạn (đặt chiều cao + phần đệm), ví dụ: nếu bạn có div 100x100px với phần đệm 5 px, div của bạn thực sự sẽ là 105x105px
Về cơ bản, sự khác biệt giữa phần đệm và lề đến từ nền tảng. Đệm sẽ quyết định không gian giữa các nội dung, trong khi lề quyết định cạnh bên ngoài của các yếu tố!
Đệm là khoảng trống giữa nội dung của bạn và đường viền. Trong trường hợp như Margin là khoảng cách giữa các biên giới và các yếu tố khác.
padding vs margin
. Tôi nghĩ rằng chúng ta cần thêm mũi tên vào thanh tìm kiếm và tạo màu xanh lá cây.