margin和padding如何权重使用?

margin和padding如何权重使用?

阅读 4.1k
3 个回答

一个是 外边距,一个是 內边距,顾名都可以思意啦!

从设计的角度上说,外边距类似出血,它属于不可视部分的留白;而內边距就是留白了。但尽管它是“白的”,但它是视觉设计上不可缺少的部分。当然在 Web 应用里,margin 也是不可缺少的部分,不象印刷用的出血是预留的可以被舍弃的部分。

Web Design 总是在一大片“画布”上排列组合一个一个的小盒子,小盒子里面是各种内容。把 margin 视作小盒子与小盒子之间保持合适距离的工具,把 padding 视作小盒子里的内容与小盒子边框的合适距离就对了。

从实用价值考量:

  • 背景可以铺到padding区域,而不能铺到margin区域
    控制背景裁剪的background-clip不支持margin-box,换言之,无论如何,背景都无法铺到margin区域中
  • 对于块级元素,若其width不为auto/default,可以设置margin: auto,可用于水平或垂直(需额外设置)方向上的自动居中,padding则无此功能
  • margin有折叠行为,padding则无
    在子元素之上写margin表达子元素和父元素之间的留白时,需要在父元素上加入BFC,否则margin会与父元素折叠。padding则无此后顾之忧
  • margin可以设置为负值,padding则无法设置为负值
    margin负值可以让元素交叠,或撑宽元素的内容区域,这在有一定间隙的列表布局中极其有用

也可以这么理解:你想置border于何处,虽然设置了border:0 none;但真实的使用过程就是对border的位置进行确定的,如果border的位置可以忽略,其实margin/padding无多大区别(扯上width,line-height差距就多了)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题