padding和margin的区别和作用及各种场合出现的bug

CSS Margin与Padding详解
本文详细介绍了CSS中Margin和Padding的使用方法,包括其语法结构和常见应用场景,并针对IE8及以下版本浏览器中出现的相关bug提供了有效的解决方案。

一、padding

 Padding: 包括padding-top, padding-right, padding-bottom, padding-left, 控制块级元素内部, content与border之间的距离

1、语法结构

(1)padding-left:10px; 左内边距

(2)padding-right:10px; 右内边距

(3)padding-top:10px; 上内边距

(4)padding-bottom:10px; 下内边距

(5)padding:10px; 四边统一内边距

(6)padding:10px 20px; 上下、左右内边距

(7)padding:10px 20px 30px; 上、左右、下内边距

(8)padding:10px 20px 30px 40px; 上、右、下、左内边距

二、margin

  Margin: 包括margin-top, margin-right, margin-bottom, margin-left, 控制块级元素之间的距离, 它们是透明不可见的。

1、语法结构

(1)margin-left:10px; 左外边距

(2)margin-right:10px; 右外边距

(3)margin-top:10px; 上外边距

(4)margin-bottom:10px; 下外边距

(5)margin:10px; 四边统一外边距

(6)margin:10px 20px; 上下、左右外边距

(7)margin:10px 20px 30px; 上、左右、下外边距

(8)margin:10px 20px 30px 40px; 上、右、下、左外边距

 

三、margin和padding的区别用图表示为

 

 IE8下input[button | submit] 设置margin:auto无法居中bug:

  发生场合:ie8下,如果给像button这样的标签(如button input[type="button"] input[type="submit"])设置{ display: block; margin:0 auto; }如果不设置宽度的话无法居中。

  解决方法:可以给为input加上宽度。

IE8百分比padding垂直margin bug:

  发生场合:当父元素设置了百分比的padding,子元素有垂直的margin的时候,就好像父元素被设置了margin一样。

  解决方法:给父元素加一个overflow:hidden/auto。

IE6/7下margin与absolute元素重叠bug:

  发生场合:双栏自适应布局中,左侧元素absolute绝对定位,右侧的margin撑开距离定位。在IE6/7下左侧应用了absolute属性的块级元素与右边的自适应的文字内容重叠。

  解决方法:把左侧块级元素更改为内联元素,比如把div更换为span。

转载于:https://www.cnblogs.com/king-govern/p/8191007.html

### CSS 中 padding margin区别及用法 #### 一、基本概念 在 CSS 中,`padding` `margin` 是用于控制元素周围空白区域的两个重要属性。它们的主要作用是调整元素其他元素或内容之间的距离[^1]。 - **Padding** 是指元素边框内部内容之间的空白区域。它直接影响到元素内部的空间大小。 - **Margin** 是指元素边框外部其他元素之间的空白区域。它决定了元素其他元素之间的距离。 #### 二、主要区别 1. **位置差异** - `padding` 位于元素的边框内侧,用于分隔元素的内容边框[^2]。 - `margin` 位于元素的边框外侧,用于分隔当前元素其他元素或父容器的距离[^3]。 2. **透明性颜色** - `padding` 是透明的,但它会影响元素的宽度高度计算[^4]。 - `margin` 同样是透明的,但不会影响元素自身的尺寸,仅改变其其他元素的相对位置[^5]。 3. **塌陷现象** - `margin` 在某些情况下会发生外边距合并(collapse),即相邻元素的垂直外边距会合并为一个更大的值。 - `padding` 不会发生类似的合并现象,因此在需要精确控制间距时更稳定[^4]。 4. **负值支持** - `margin` 支持负值,允许元素重叠或向内收缩[^4]。 - `padding` 不支持负值,始终为正值或零[^5]。 #### 三、代码示例 以下是一个简单的代码示例,展示如何使用 `padding` `margin`: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Padding vs Margin</title> <style> .box { width: 100px; height: 100px; background-color: lightblue; border: 1px solid black; } .with-padding { padding: 20px; /* 内部空白 */ } .with-margin { margin: 20px; /* 外部空白 */ } </style> </head> <body> <div class="box with-padding">Padding 示例</div> <div class="box with-margin">Margin 示例</div> </body> </html> ``` #### 四、实际应用 1. **Padding 的应用场景** 当需要增加元素内部内容边框之间的空间时,使用 `padding`。例如,在按钮设计中,可以通过设置 `padding` 来调整文字按钮边框之间的距离[^1]。 2. **Margin 的应用场景** 当需要调整元素其他元素或父容器之间的距离时,使用 `margin`。例如,在布局中通过设置 `margin` 来避免元素过于靠近页面边缘或其他兄弟元素[^2]。 #### 五、注意事项 - 如果需要同时设置多个方向的 `padding` 或 `margin`,可以分别指定上、右、下、左四个方向的值,或者使用简写形式[^5]。 - 在处理垂直外边距合并问题时,可以通过添加一个透明的分隔元素来避免塌陷。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值