CSS属性之padding

0.inline元素中的padding

大家都知道padding对于block元素和inline-block元素的影响,而对于inline元素,padding只会在水平方向产生影响,垂直方向不会产生影响。

这么说其实不准确,给inline元素设置垂直方向的padding,不会改变元素的高度,也不会影响其他元素,但是会改变他自身的背景的高度。

<div class="wrap">
  这是一小段文字,但是在这段文字当中有一个inline元素span,<span class="con">这就是span</span>,垂直方向上的padding不会影响其他元素,但是同样会改变他自身的背景大小
</div>

 

* {margin:0; padding:0;}

.wrap {
  width: 400px;
  height: 500px;
  margin: 50px auto;
  border: 1px solid #ccc;
}
.con {
  padding: 8px;
  background-color: #f32;
}

效果图:

684501-20170208141624354-1421484447.png

1.百分比值的padding

对于inline-block元素和block元素,当元素的padding值为百分比的时候,其实际的padding值等于父元素的宽度*百分比值;

对于绝对定位元素而言,实际padding值等于第一个相对定位的父元素的宽度*百分比。

 

通过这个特点,我们可以实现一些比较有意思的效果,比如通过inline-block元素来实现响应式的正方形。

<div class="wrap">
  <div class="con red"></div>
  <div class="con green"></div>
  <div class="con yellow"></div>
  <div class="con blue"></div>
</div>
* {margin:0; padding:0;}

.wrap {
  width: 400px;
  height: 800px;
  margin: 50px auto;
  border: 1px solid #ccc;
  font-size: 0;
}
.con {
  display: inline-block;
  padding: 25%;
}
.red {background-color: red;}
.green {background-color: green;}
.yellow {background-color: yellow;}
.blue {background-color: blue;}

684501-20170208144145947-1323306347.png

 

### CSS `margin` 和 `padding` 属性的区别 #### 定义与功能差异 `margin`(外边距)属性定义元素周围的空间,主要用于在元素的外部创建空白区域,以便分隔该元素与其他相邻元素之间的距离[^4]。而`padding`(填充)则是在元素内部创建空白区,具体来说是指元素内容与边框之间的空间,用于控制文本或其他内部元素与元素边界间的距离。 #### 对布局的影响 由于`margin`位于元素之外,所以它直接影响到页面上的其他元素的位置;增加某个元素的`margin`会使周围的元素远离这个元素移动相应量的距离。相反,`padding`只影响其所在元素的内容显示范围而不改变整个文档流中的相对定位关系[^1]。 #### 设置方式 对于两者而言,在设置具体的数值时都支持四个方向分别指定——即上右下左顺序依次赋值给对应的参数项。如果某些方向上的取值相同,则可以通过简化形式来表达: - 当全部四个方向相同时可以直接写作单个长度单位; - 上下左右成对相等的情况下可以用两个数表示,前者代表垂直方向后者水平方向; - 若仅有三个方位需特别设定的话就采用三元组的形式,其中间那个数字对应于左右两侧[^3]。 ```css /* 单一值应用于四面 */ .margin-all { margin: 20px; } .padding-all { padding: 20px; } /* 前者上下 后者左右 */ .margin-vertical-horizontal { margin: 10px 20px; } .padding-vertical-horizontal { padding: 10px 20px; } /* 首位顶部 中间左右 尾部底部 */ .margin-three-sides { margin: 10px 20px 30px; } .padding-three-sides { padding: 10px 20px 30px; } ``` #### 实际应用场景举例 假设有一个按钮组件,想要让此按钮四周留有一定间距以避免紧贴页面边缘或其它控件放置得太近显得拥挤不堪,这时就可以适当增大它的`margin`值使得整体看起来更加美观舒适。而对于按钮本身内部的文字和背景颜色之间也需要保持一定间隙以免视觉效果不佳,此时便可通过调整`padding`达到理想状态[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值