:Margin是在针对“容器”(block elements)的外围padding则是内部。Margin属性是针对容器与容器之间的距离而padding是容器与自身内部之间的距离。
:给你看可以直观的了解两者的区别和功能。
有一點需要注意IE浏览器相对特殊只渲染Content区域部分指定的宽度,所以要针对整个布局计算
:对我而言,两者最大的区别是Margin可以叠加值(collapse)padding則不可。两个容器相邻设定Padding值为1em,浏览器会默认padding值为容器的一部分例如,从第一个容器里内容的尾部添加padding属性然后添加第二个容器嘚padding属性,再紧跟第二个容器的内容两者之间就会原本应该是1em的间隔将累加为2em。
但如果用margin设定的话就不会出现此类现象margin是针对容器外围嘚间距,而且可以与相邻的属性叠加所以,在上述例子中两个内容区域的间隔会保持为1em,而不是2em这才符合刚开始设计的思想,而且margin昰针对所有元素都有效
此外,两者还有两个比较大的区别padding属性包括点击区域和背景颜色/图片,margin不包括平时我常用的还是margin,除非当我需要对一个边框或背景里添加一个空间
:这有一篇非常不错的文章里面详细的描述了两者的区别,图文并茂
:也许对你会有所帮助。當你使用padding时记住一点padding是添加容器的宽或高。
:下面是一个padding和margin的实例源代码也可以点击查看。