Різниця між маржею та прокладкою?


371

Яка саме різниця між маржами та padding в CSS? Це, здається, не служить великій меті. Чи можете ви надати мені приклад того, де лежать відмінності (і чому важливо знати різницю)?


14
stackoverflow.com/questions/2189452/… stackoverflow.com/questions/3060456/… stackoverflow.com/questions/4619899/… Перші три посилання з пошуку padding vs margin. Я думаю, нам потрібно додати стрілки до панелі пошуку та зробити зеленим.
Лайм

2
Це може допомогти вам зрозуміти різницю digizol.com/2006/12/margin-vs-padding-css-properties.html
lkamal

2
Також майте на увазі, що Internet Explorer підсумовує ширину поля / меж / прокладки по-різному (в режимі непридатності за замовчуванням), ніж майже всі інші браузери.
David R Tribble

1
Якщо маржа не працює, спробуйте набивання
JoelFan

Відповіді:


410

padding- це простір між вмістом і border, тоді marginяк простір поза межами. Ось зображення, яке я знайшов під час швидкого пошуку в Google, що ілюструє цю ідею.

введіть тут опис зображення


3
Також ознайомтеся з цими сайтами для визначення. Але графіка - це ідеальна ілюстрація. w3schools.com/css/css_margin.asp w3schools.com/css/css_padding.asp
Suroot

@maclunian: Також перегляньте цей сайт w3schools.com/css/css_boxmodel.asp на додаток до посилань @ Suroot, наведених вище.
abcd

Як це пов'язано із встановленою шириною та висотою вмісту? Де це вимірюється на всьому цьому?
Nyerguds

128

Одне ключове, чого не вистачає у відповідях тут:

Поле вгорі / внизу є розбірним.

Отже, якщо у вас є поле 20px в нижній частині елемента і 30px запас у верхній частині наступного елемента, поле між двома елементами буде 30px, а не 50px. Це не стосується лівого / правого поля або підкладки.


6
Зауважте, що є дуже специфічні обставини, коли вертикальні поля руйнуються - не будь-які два вертикальні поля будуть робити це. Що просто робить його ще більш заплутаним (якщо ви не дуже знайомі з моделлю коробки).
BoltClock

76

Маржа застосовується зовні елемента, що впливає на те, наскільки ваш елемент знаходиться далеко від інших елементів.


Накладка наноситься зсередини сторони елемента, а отже, впливає на те, наскільки вміст вашого елемента знаходиться далеко від межі.

Крім того, використання поля не вплине на розміри вашого елемента, тоді як підкладка зробить розміри елементів (встановити висоту + набивання), так, наприклад, якщо у вас є роздільник 100x100px з накладкою 5 пікселів, ваш дів насправді буде 105x105px


15
Я вважаю, що накладка застосовується з усіх боків, тому елемент буде 110x110px
2013Asker

Так, накладки afaik не змінюють ширину вашого елемента, якщо для цієї ширини було встановлено щось інше, ніж auto. Якщо ширина auto, то додаткове накладення відповідно збільшить ширину прокладеного елемента (і з обох сторін, як згадував @ 2013Asker)
Flater

1
Я думаю, що це трохи оманливо, якщо ви сказали, що ваш div буде 110px на 110px, тому що ширина вашого div ще буде 100px (якщо припустити, що розмір поля встановлений як поле вмісту).
wmock

44

Запам’ятайте ці 3 пункти:

  • Маржа - це додатковий простір навколо елемента управління.
  • Накладка - це додатковий простір всередині управління.
  • Прокладка зовнішнього керування - це межа внутрішнього керування .

Демонстраційне зображення: (де червоне поле - це контроль за бажаннями) введіть тут опис зображення


2
Це не відповідає чому важливо знати різницю.
GreenAsJade

38

Найпростіше визначення; padding - це простір, який надається всередині рамки елемента контейнера, а поле надається зовні. Для елемента, який не є контейнером, прокладка може не мати особливого сенсу, але поле, напевно, допоможе впорядкувати його.


30

Прокладка - це простір всередині кордону, тоді як маржа - це простір поза кордоном.


25

Прокладки

Padding - це властивість CSS, яка визначає простір між вмістом елемента та його межею (якщо він має межу). Якщо в елемента є рамка навколо нього, прокладка дасть простір від цієї межі до вмісту елемента, який відображається на цій межі. Якщо елемент не має рамки навколо нього, то додавання прокладки взагалі не впливає на цей елемент, оскільки немає межі, щоб дати простір.

Маржа

Маржина - це властивість CSS, яка визначає простір зовні елемента для його наступного зовнішнього елемента.

Маржа впливає на елементи, які мають або не мають кордонів. Якщо елемент має межу, межа визначає простір від цієї межі до наступного зовнішнього елемента. Якщо елемент не має межі, то поле визначає простір від вмісту елемента до наступного зовнішнього елемента.

Різниця між прокладкою та запасом

Отже, різниця між полем і накладкою полягає в тому, що в той час як оббивка стосується внутрішнього простору, запас стосується зовнішнього простору до наступного зовнішнього елемента.


1
Які елементи не мають межі?
Сарим Джавайд Хан

10

Одна з ключових відмінностей між маржами та прокладками не згадується в жодній із відповідей: клікабельність та виявлення наведення курсору

Збільшення обшивки збільшує ефективний розмір елемента. Іноді у мене є невеликий значок, який я не хочу робити помітно більшим, але користувачеві все одно потрібно взаємодіяти з цим значком. Я збільшую прокладку піктограми, щоб надати їй більший слід для клацань і наведення курсора. Підвищення поля піктограми не матиме однакового ефекту.

Відповідь на інше запитання з цієї теми дає приклад.


Більшість найпопулярніших відповідей стосуються того, що прокладки знаходяться "всередині" елемента, а поля знаходяться "зовні" від нього, що вже передбачає, що прокладка сприяє збільшенню області клацання. Це не так очевидно, коли ти маєш справу з цілком прозорим ящиком, хоча ...
BoltClock

9

margin = простір навколо (зовні) елемента від межі назовні.

padding = пробіл навколо (всередині) елемента від тексту до межі.

дивіться тут: http://jsfiddle.net/robx/GaMpq/


9

Добре знати про відмінності між marginта padding. На скільки я знаю:

  • Поле - це зовнішній простір елемента, тоді як підкладка - це внутрішній простір елемента. Іншими словами, запас - це простір поза межами елемента, а прокладка - це простір всередині його межі.
  • Ви можете встановити autoзначення для маржі. Однак заборонено для прокладки. Дивіться це .
    Примітка. Використовуйте margin: autoдля центрування блокового елемента всередині його батьківського місця по горизонталі. Крім того, можна центрувати елемент всередині флексокса вертикально або горизонтально або обидва, встановлюючи поле для автоматичного. Дивіться це .
  • Маржа може бути будь-яким числом поплавця, але прокладка не повинна бути негативною.
  • Коли ви стилюєте елемент, також буде стилізована підкладка; але не маржа. Маржа отримує стиль батьківського елемента. Наприклад, коли ви встановите background-colorвластивість чорного кольору, його внутрішній простір (тобто прокладка) буде чорним, але не його зовнішній простір (тобто межа).

4

Поле - це простір поза коробкою; підкладка - це простір всередині коробки. Важко помітити різницю з білою заливкою, але з кольоровою заливкою ви можете це бачити прекрасно.


2

Поля і підкладка - це обидва типи прокладки. Один (запас) виходить за межі елементів, щоб віддалити його від інших елементів, а інший (підкладка) виходить за межі вмісту елементів, щоб віддалити вміст від межі елементів.


2

Прокладка дозволяє розробникові зберігати простір між текстом і його вкладеним елементом. Поле - це простір, який елемент підтримує з іншим елементом батьківського DOM.

Див. Приклад:

<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>

1

Маржа - це властивість у CSS, яка використовується для створення пробілів навколо елементів, поза межами кордону. Програміст може встановити поле для верхнього, правого, нижнього та лівого. Іншими словами, він може встановлювати ці значення, використовуючи margin-top, margin-right, margin-bottom та margin-left.

Значення маржі можуть бути таких типів.

По-перше, авто дозволяє браузеру обчислювати маржу. Більше того, довжина позначає запас у px, pt або cm, тоді як% допомагає описати запас у відсотках відносно ширини елемента, що містить. Нарешті, наслідування позначає, що маржа повинна успадковуватися від батьківського елемента.

Padding - це властивість у CSS, яка допомагає створити простір навколо елемента всередині кордону. Програміст може встановити прокладку вгорі, праворуч, знизу та зліва. Іншими словами, він може встановлювати ці значення, використовуючи padding-top, padding-right, padding-bottom та padding-left.

Значення Padding можуть бути таких типів.

Довжина описує прокладку в px, pt або cm, тоді як% позначає прокладку у відсотках відносно ширини елемента, що містить. Нарешті, наслідок описує, що прокладка повинна бути успадкована від батьківського елемента.

 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>

Різниця між маржею та прокладкою

Поле - це властивість CSS, яка використовується для створення простору навколо елемента за межами визначеної межі, тоді як підкладка - це властивість CSS, яка використовується для створення простору навколо елемента, всередині визначеної межі. Таким чином, цим пояснюється основна відмінність між маржами та прокладками.

Значення Крім того, значення маржі можуть бути автоматичними, довжиною,% або успадковуватими, тоді як значення набивання можуть бути довжиною,% або типом успадкування. Отже, це ще одна відмінність між маржею та прокладкою.

Коротше кажучи, поля та прокладка - це два властивості CSS, що дозволяє стилізувати веб-сторінки. Неможливо призначити негативні значення для цих властивостей. Основна відмінність поля та прокладки полягає в тому, що поле допомагає створювати простір навколо елемента за межами кордону, тоді як набивання допомагає створити простір навколо елемента всередині кордону.


0

Спробуйте навести фоновий колір на блок-розділ із шириною та висотою. Ви побачите, що набивання збільшує розмір елемента, тоді як поле просто переміщує його в потоці документа.

Поле спеціально для переміщення елемента навколо.


0

Прокладка - це простір між найближчими компонентами веб-сторінки, а поле - це простір від поля веб-сторінки.


0

Я щойно помітив, але жодної з вищезгаданих відповідей не було зазначено. Якщо у мене є динамічно створений елемент DOM, який ініціалізується порожнім внутрішнім вмістом html, то корисно використовувати поле замість прокладки, якщо ви не хочете, щоб цей порожній елемент займав будь-який простір, за винятком його вмісту.


-1

Є одна важлива відмінність:

Поля знаходиться на зовнішній стороні елемента, тобто слід застосувати зсув пробілу «після» елемента. Накладка - знаходиться з внутрішньої сторони, інший застосує пробіл "до" елемента починається.


-1

Поле застосовується до зовнішнього елемента, що впливає на те, наскільки ваш елемент знаходиться далеко від інших елементів.

Прокладка застосовується до внутрішньої сторони елемента, а отже, впливає на те, наскільки вміст вашого елемента знаходиться далеко від межі.

Крім того, використання поля не вплине на розміри вашого елемента, тоді як підкладка зробить розміри елементів (встановити висоту + набивання), так, наприклад, якщо у вас є роздільник 100x100px з накладкою 5 пікселів, ваш дів насправді буде 105x105px


ви помітили, що ця відповідь вже дана? - і з додаванням та відповідним наголосом?
JerryOL

-1

В основному, різниця між прокладкою і маржею приходить у фоновому режимі. Прокладки визначатимуть простір між вмістом, тоді як межа визначає зовнішній край елементів!


-7

Прокладка - це простір між вашим вмістом та межею. Де , як Маржа це простір між на кордоні , а інший елемент.


1
Поля не така проста, і це не говорить про те, що десяток переконливих відповідей ще не сказав.
Квентін

2
Ви щойно повторили попередні відповіді.
Джонро Пауло Каньямак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.