Qual é exatamente a diferença entre margem e preenchimento no CSS? Realmente não parece ter muito propósito. Você poderia me dar um exemplo de onde estão as diferenças (e por que é importante saber a diferença)?
Lembre-se também de que o Internet Explorer soma as larguras de margens / bordas / preenchimento de maneira diferente (no modo não peculiares padrão) do que quase todos os outros navegadores.
David R Tribble
11
Se margem não funcionar, tente estofamento
JoelFan
Respostas:
410
paddingé o espaço entre o conteúdo e o border, enquanto que marginé o espaço fora da borda. Aqui está uma imagem que encontrei em uma rápida pesquisa no Google, que ilustra essa ideia.
Como isso se relaciona com a largura e a altura definidas do conteúdo? Onde isso é medido em tudo isso?
Nyerguds
128
Uma coisa importante que está faltando nas respostas aqui:
As margens superior / inferior são dobráveis.
Portanto, se você tiver uma margem de 20 px na parte inferior de um elemento e uma margem de 30 px na parte superior do próximo elemento, a margem entre os dois elementos será 30 px em vez de 50 px. Isso não se aplica à margem esquerda / direita ou ao preenchimento.
Observe que há circunstâncias muito específicas nas quais as margens verticais entram em colapso - e não apenas duas margens verticais o farão. O que só torna ainda mais confuso (a menos que você está muito familiarizado com o modelo de caixa).
BoltClock
76
A margem é aplicada ao elemento exterior de você, afetando a distância do elemento em relação a outros elementos.
O preenchimento é aplicado à parte interna do seu elemento, afetando a distância que o conteúdo do elemento está da borda.
Além disso, o uso da margem não afetará as dimensões do elemento, enquanto o preenchimento aumentará as dimensões dos elementos (definir altura + preenchimento). Por exemplo, se você tiver uma div de 100x100px com um preenchimento de 5 px, sua div será realmente 105x105px
Eu acredito que o preenchimento é aplicado a todos os lados, de modo que o elemento seria 110x110px
2013Asker
Ehm, o afaik padding não altera a largura do seu elemento se essa largura tiver sido definida para algo diferente de auto. Se a largura é auto, em seguida, o preenchimento adicional vai aumentar a largura do elemento almofadado de acordo com (e a partir de ambos os lados, como @ 2013Asker mencionado)
Flater
11
Acho um pouco enganador dizer que você div terá 110 px por 110 px porque a largura da sua div ainda será 100 px (assumindo que o tamanho da caixa seja definido como caixa de conteúdo).
Wmock 02/02
44
Lembre-se destes 3 pontos:
A margem é o espaço extra ao redor do controle.
O preenchimento é espaço extra dentro do controle.
O preenchimento de um controle externo é a margem de um controle interno .
Imagem de demonstração: (onde a caixa vermelha é o controle do desejo)
Isso não responde por que é importante saber a diferença.
GreenAsJade 9/02/19
38
A definição mais simples é; padding é um espaço fornecido dentro da borda do elemento container e a margem é fornecida fora. Para um elemento que não é um contêiner, o preenchimento pode não fazer muito sentido, mas a margem defenitly ajudará a organizá-lo.
Padding é uma propriedade CSS que define o espaço entre o conteúdo de um elemento e sua borda (se houver uma borda). Se um elemento tiver uma borda ao redor, o preenchimento dará espaço a partir dessa borda para o conteúdo do elemento que aparece nessa borda. Se um elemento não tiver uma borda ao redor, a adição de preenchimento não terá efeito algum sobre esse elemento, porque não há borda para a qual dar espaço.
Margem
Margin é uma propriedade CSS que define o espaço externo de um elemento para seu próximo elemento externo.
Margem afeta elementos que possuem ou não bordas. Se um elemento tiver uma borda, a margem definirá o espaço dessa borda para o próximo elemento externo. Se um elemento não tiver uma borda, a margem definirá o espaço do conteúdo do elemento para o próximo elemento externo.
Diferença entre preenchimento e margem
Portanto, a diferença entre margem e preenchimento é que, enquanto o preenchimento lida com o espaço interno, a margem lida com o espaço externo para o próximo elemento externo.
Uma das principais diferenças entre margem e preenchimento não é mencionada em nenhuma das respostas: clicabilidade e detecção de pairar
Aumentar o preenchimento aumenta o tamanho efetivo do elemento. Às vezes, tenho um ícone pequeno que não quero aumentar visivelmente, mas o usuário ainda precisa interagir com esse ícone. Aumentei o preenchimento do ícone para obter uma área maior para cliques e pairar. Aumentar a margem do ícone não terá o mesmo efeito.
Uma resposta para outra pergunta sobre esse tópico dá um exemplo.
A maioria das respostas principais refere-se ao preenchimento "dentro" do elemento e às margens "fora" dele, o que já implica que o preenchimento contribui para uma área maior de cliques. Não é tão óbvio quando você lida com uma caixa completamente transparente ...
BoltClock
9
margin = espaço ao redor (fora) do elemento da borda para fora.
padding = espaço ao redor (dentro) do elemento do texto à borda.
É bom saber sobre as diferenças entre margine padding. Como eu sei:
Margem é o espaço externo de um elemento, enquanto estofamento é o espaço interno de um elemento. Em outras palavras, margin é o espaço fora da borda de um elemento, enquanto padding é o espaço dentro de sua borda.
Você pode definir o autovalor para margem. No entanto, não é permitido o preenchimento. Veja isso .
Nota: Use margin: autopara centralizar um elemento de bloco dentro de seu pai horizontalmente. Além disso, é possível centralizar um elemento dentro de um flexbox vertical ou horizontalmente ou ambos, definindo a margem como automático. Veja isso .
A margem pode ser qualquer número flutuante, mas o preenchimento não deve ser negativo.
Quando você estiliza um elemento, o preenchimento também será estilizado; mas não margem. Margem obtém o estilo do elemento pai. Por exemplo, quando você define a background-colorpropriedade para preto, seu espaço interno (ou seja, preenchimento) será preto, mas não seu espaço externo (ou seja, margem).
Margem é espaço fora da caixa; preenchimento é espaço dentro da caixa. É difícil ver a diferença com um preenchimento branco, mas com um preenchimento colorido você pode vê-lo bem.
Margem e preenchimento são os dois tipos de preenchimento realmente ... Um (margem) sai da borda dos elementos para distanciar outros elementos e o outro (preenchimento) sai do conteúdo dos elementos para distanciar o conteúdo da borda dos elementos.
O preenchimento permite que o desenvolvedor mantenha espaço entre o texto e seu elemento envolvente. Margem é o espaço que o elemento mantém com outro elemento do DOM principal.
Consultar exemplo:
<head><metahttp-equiv="Content-Type"content="text/html; charset=UT-8"><title>Pseudo Elements</title><styletype="text/css">
body{font-family:Arial;font-size:16px;background-color:#f8e6ae;color:#888;}.page
{background-color:#fff;padding:10px30px50px50px;margin:30px100px30px300px;}</style></head><body><divclass="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>
Margem é uma propriedade em CSS usada para criar espaços ao redor dos elementos, fora da borda. O programador pode definir a margem para cima, direita, baixo e esquerda. Em outras palavras, ele pode definir esses valores usando margem superior, margem direita, margem inferior e margem esquerda.
Os valores da margem podem ser dos seguintes tipos.
Primeiro, auto permite que o navegador calcule a margem. Além disso, o comprimento denota uma margem em px, pt ou cm, enquanto% ajuda a descrever uma margem como uma porcentagem relativa à largura do elemento que o contém. Finalmente, herdar denota que a margem deve herdar do elemento pai.
Preenchimento é uma propriedade em CSS que ajuda a criar espaço em torno de um elemento dentro da borda. O programador pode definir o preenchimento para as partes superior, direita, inferior e esquerda. Em outras palavras, ele pode definir esses valores usando padding-top, padding-right, padding-bottom e padding-left.
Os valores de preenchimento podem ser dos seguintes tipos.
O comprimento descreve o preenchimento em px, pt ou cm, enquanto% indica o preenchimento como uma porcentagem relativa à largura do elemento que o contém. Por fim, herdar descreve que o preenchimento deve ser herdado do elemento pai.
Margin é uma propriedade CSS usada para criar espaço ao redor do elemento fora da borda definida, enquanto o preenchimento é uma propriedade CSS usada para criar espaço ao redor do elemento, dentro da borda definida. Assim, isso explica a principal diferença entre margem e preenchimento.
Valores
Além disso, os valores da margem podem ser automáticos, comprimento,% ou herança, enquanto os valores de preenchimento podem ser comprimento,% ou tipo de herança. Portanto, essa é outra diferença entre margem e preenchimento.
Em resumo, margem e preenchimento são duas propriedades no CSS que permitem estilizar as páginas da web. Não é possível atribuir valores negativos para essas propriedades. A principal diferença entre margem e preenchimento é que a margem ajuda a criar espaço ao redor do elemento fora da borda, enquanto o preenchimento ajuda a criar espaço ao redor do elemento dentro da borda.
Tente colocar uma cor de fundo em uma div de bloco com largura e altura. Você verá que o preenchimento aumenta o tamanho do elemento, enquanto a margem apenas o move dentro do fluxo do documento.
Uma coisa que acabei de notar, mas nenhuma das respostas acima mencionadas. Se eu tiver um elemento DOM criado dinamicamente e inicializado com conteúdo html interno vazio, é uma boa prática usar margem em vez de preenchimento, se você não quiser que esse elemento vazio ocupe espaço, exceto se o conteúdo for criado.
Margem - fica do lado de fora do elemento, ou seja, será aplicada a mudança de espaço em branco "depois" do início do elemento. Preenchimento - é por dentro, o outro aplicará o espaço em branco "antes" do elemento começar.
A margem é aplicada ao elemento externo, afetando a distância do elemento em relação a outros elementos.
O preenchimento é aplicado à parte interna do seu elemento, afetando a distância que o conteúdo do elemento está da borda.
Além disso, o uso da margem não afetará as dimensões do elemento, enquanto o preenchimento aumentará as dimensões dos elementos (definir altura + preenchimento). Por exemplo, se você tiver uma div de 100x100px com um preenchimento de 5 px, sua div será realmente 105x105px
você percebeu que esta resposta já foi dada? - e com uma ênfase adicional e apropriada?
JerryOL
-1
Basicamente, a diferença entre preenchimento e margem ocorre em termos de segundo plano. O preenchimento decidirá o espaço entre o conteúdo, enquanto a margem decidirá a borda externa dos elementos!
padding vs margin
. Eu acho que precisamos adicionar setas na barra de pesquisa e tornar verde.Respostas:
padding
é o espaço entre o conteúdo e oborder
, enquanto quemargin
é o espaço fora da borda. Aqui está uma imagem que encontrei em uma rápida pesquisa no Google, que ilustra essa ideia.fonte
Uma coisa importante que está faltando nas respostas aqui:
As margens superior / inferior são dobráveis.
Portanto, se você tiver uma margem de 20 px na parte inferior de um elemento e uma margem de 30 px na parte superior do próximo elemento, a margem entre os dois elementos será 30 px em vez de 50 px. Isso não se aplica à margem esquerda / direita ou ao preenchimento.
fonte
A margem é aplicada ao elemento exterior de você, afetando a distância do elemento em relação a outros elementos.
O preenchimento é aplicado à parte interna do seu elemento, afetando a distância que o conteúdo do elemento está da borda.
Além disso, o uso da margem não afetará as dimensões do elemento, enquanto o preenchimento aumentará as dimensões dos elementos (definir altura + preenchimento). Por exemplo, se você tiver uma div de 100x100px com um preenchimento de 5 px, sua div será realmente 105x105px
fonte
auto
. Se a largura éauto
, em seguida, o preenchimento adicional vai aumentar a largura do elemento almofadado de acordo com (e a partir de ambos os lados, como @ 2013Asker mencionado)Lembre-se destes 3 pontos:
Imagem de demonstração: (onde a caixa vermelha é o controle do desejo)
fonte
A definição mais simples é; padding é um espaço fornecido dentro da borda do elemento container e a margem é fornecida fora. Para um elemento que não é um contêiner, o preenchimento pode não fazer muito sentido, mas a margem defenitly ajudará a organizá-lo.
fonte
Preenchimento é espaço dentro da borda, enquanto Margem é espaço fora da borda.
fonte
Preenchimento
Padding é uma propriedade CSS que define o espaço entre o conteúdo de um elemento e sua borda (se houver uma borda). Se um elemento tiver uma borda ao redor, o preenchimento dará espaço a partir dessa borda para o conteúdo do elemento que aparece nessa borda. Se um elemento não tiver uma borda ao redor, a adição de preenchimento não terá efeito algum sobre esse elemento, porque não há borda para a qual dar espaço.
Margem
Margin é uma propriedade CSS que define o espaço externo de um elemento para seu próximo elemento externo.
Margem afeta elementos que possuem ou não bordas. Se um elemento tiver uma borda, a margem definirá o espaço dessa borda para o próximo elemento externo. Se um elemento não tiver uma borda, a margem definirá o espaço do conteúdo do elemento para o próximo elemento externo.
Diferença entre preenchimento e margem
Portanto, a diferença entre margem e preenchimento é que, enquanto o preenchimento lida com o espaço interno, a margem lida com o espaço externo para o próximo elemento externo.
fonte
Uma das principais diferenças entre margem e preenchimento não é mencionada em nenhuma das respostas: clicabilidade e detecção de pairar
Aumentar o preenchimento aumenta o tamanho efetivo do elemento. Às vezes, tenho um ícone pequeno que não quero aumentar visivelmente, mas o usuário ainda precisa interagir com esse ícone. Aumentei o preenchimento do ícone para obter uma área maior para cliques e pairar. Aumentar a margem do ícone não terá o mesmo efeito.
Uma resposta para outra pergunta sobre esse tópico dá um exemplo.
fonte
margin = espaço ao redor (fora) do elemento da borda para fora.
padding = espaço ao redor (dentro) do elemento do texto à borda.
veja aqui: http://jsfiddle.net/robx/GaMpq/
fonte
É bom saber sobre as diferenças entre
margin
epadding
. Como eu sei:auto
valor para margem. No entanto, não é permitido o preenchimento. Veja isso .Nota: Use
margin: auto
para centralizar um elemento de bloco dentro de seu pai horizontalmente. Além disso, é possível centralizar um elemento dentro de um flexbox vertical ou horizontalmente ou ambos, definindo a margem como automático. Veja isso .background-color
propriedade para preto, seu espaço interno (ou seja, preenchimento) será preto, mas não seu espaço externo (ou seja, margem).fonte
Margem é espaço fora da caixa; preenchimento é espaço dentro da caixa. É difícil ver a diferença com um preenchimento branco, mas com um preenchimento colorido você pode vê-lo bem.
fonte
Margem e preenchimento são os dois tipos de preenchimento realmente ... Um (margem) sai da borda dos elementos para distanciar outros elementos e o outro (preenchimento) sai do conteúdo dos elementos para distanciar o conteúdo da borda dos elementos.
fonte
O preenchimento permite que o desenvolvedor mantenha espaço entre o texto e seu elemento envolvente. Margem é o espaço que o elemento mantém com outro elemento do DOM principal.
Consultar exemplo:
fonte
Margem é uma propriedade em CSS usada para criar espaços ao redor dos elementos, fora da borda. O programador pode definir a margem para cima, direita, baixo e esquerda. Em outras palavras, ele pode definir esses valores usando margem superior, margem direita, margem inferior e margem esquerda.
Os valores da margem podem ser dos seguintes tipos.
Primeiro, auto permite que o navegador calcule a margem. Além disso, o comprimento denota uma margem em px, pt ou cm, enquanto% ajuda a descrever uma margem como uma porcentagem relativa à largura do elemento que o contém. Finalmente, herdar denota que a margem deve herdar do elemento pai.
Preenchimento é uma propriedade em CSS que ajuda a criar espaço em torno de um elemento dentro da borda. O programador pode definir o preenchimento para as partes superior, direita, inferior e esquerda. Em outras palavras, ele pode definir esses valores usando padding-top, padding-right, padding-bottom e padding-left.
Os valores de preenchimento podem ser dos seguintes tipos.
O comprimento descreve o preenchimento em px, pt ou cm, enquanto% indica o preenchimento como uma porcentagem relativa à largura do elemento que o contém. Por fim, herdar descreve que o preenchimento deve ser herdado do elemento pai.
Diferença entre margem e preenchimento
Margin é uma propriedade CSS usada para criar espaço ao redor do elemento fora da borda definida, enquanto o preenchimento é uma propriedade CSS usada para criar espaço ao redor do elemento, dentro da borda definida. Assim, isso explica a principal diferença entre margem e preenchimento.
Valores Além disso, os valores da margem podem ser automáticos, comprimento,% ou herança, enquanto os valores de preenchimento podem ser comprimento,% ou tipo de herança. Portanto, essa é outra diferença entre margem e preenchimento.
Em resumo, margem e preenchimento são duas propriedades no CSS que permitem estilizar as páginas da web. Não é possível atribuir valores negativos para essas propriedades. A principal diferença entre margem e preenchimento é que a margem ajuda a criar espaço ao redor do elemento fora da borda, enquanto o preenchimento ajuda a criar espaço ao redor do elemento dentro da borda.
fonte
Tente colocar uma cor de fundo em uma div de bloco com largura e altura. Você verá que o preenchimento aumenta o tamanho do elemento, enquanto a margem apenas o move dentro do fluxo do documento.
Margem é especificamente para mudar o elemento.
fonte
Preenchimento é o espaço entre os componentes mais próximos na página da web e a margem é o espaço da margem da página da web.
fonte
Uma coisa que acabei de notar, mas nenhuma das respostas acima mencionadas. Se eu tiver um elemento DOM criado dinamicamente e inicializado com conteúdo html interno vazio, é uma boa prática usar margem em vez de preenchimento, se você não quiser que esse elemento vazio ocupe espaço, exceto se o conteúdo for criado.
fonte
Há uma diferença importante:
Margem - fica do lado de fora do elemento, ou seja, será aplicada a mudança de espaço em branco "depois" do início do elemento. Preenchimento - é por dentro, o outro aplicará o espaço em branco "antes" do elemento começar.
fonte
A margem é aplicada ao elemento externo, afetando a distância do elemento em relação a outros elementos.
O preenchimento é aplicado à parte interna do seu elemento, afetando a distância que o conteúdo do elemento está da borda.
Além disso, o uso da margem não afetará as dimensões do elemento, enquanto o preenchimento aumentará as dimensões dos elementos (definir altura + preenchimento). Por exemplo, se você tiver uma div de 100x100px com um preenchimento de 5 px, sua div será realmente 105x105px
fonte
Basicamente, a diferença entre preenchimento e margem ocorre em termos de segundo plano. O preenchimento decidirá o espaço entre o conteúdo, enquanto a margem decidirá a borda externa dos elementos!
fonte
Preenchimento é o espaço entre o conteúdo e a borda. Onde Margem é o espaço entre a borda e o outro elemento.
fonte