padding

1. padding 与容易尺寸关系复杂

1.1 对于 block 水平元素

  1. { width: 50cm; padding: 0 15cm; } 容器占据宽度尺寸为 80cm;
  2. 如果 width: auto 或者 box-sizing: border-box 时。增加 padding 会使元素的 content area 宽度减小;但是如果 padding 的值大于宽度了,还是会改变容器的宽度,且内容区域变为内联元素的最小宽度。


    设置 padding 值大于宽度值时,width 变大,内容区域变为内联元素的最小宽度
  3. 结论
    下图第二点:宽度非 auto 且 box-sizing 非 border-box,padding 影响尺寸。


    padding 与 block 水平元素

1.2 对于 inline 水平元素

如果继续增大 padding,会增大 scrollHeight。


padding 与 inline 水平元素

1.3 实例

使用 padding 实现垂直对齐。


高度可控的分割线

2. padding 负值与百分比值

2.1 padding 不支持任何形式的负值 >.<

2.2 百分比值

与 margin 类似,都是相对于 width 来计算的。
通过 padding: 50%; 可实现一个与父容器等宽的正方形。

2.3 inline 水平元素的 padding 百分比值

  1. 同样相对于宽度计算。
  2. 默认的宽度和高度细节有差异。因为 inline 元素的垂直 padding 会让“幽灵空白节点”显现,也就是规范中的“strut”出现。“幽灵空白节点”是 inline 元素的 content area,设置 font-size: 0; 可消除,设置 line-height 没用。
  3. padding 会断行。

3. 标签元素的内置 padding

很多标签元素都有内置的 padding,比如 ul/ol,表单项。
button 标签的 padding 设置后的 width/height 计算不兼容。
视频地址

/* 使用 label 来模拟 button,因为 button 兼容性不好
<button id="btn"></button>
<label for="btn">按钮</label>

label {
  display: inline-block;
  padding: 10px;
  line-height: 20px;
}

4. padding 与画图

  1. 三道杠
<div class="line-tri"></div>
.line-tri {
   width: 150px; height 30px;
   padding: 15px 0;
   border-top: 30px solid;
   border-bottom: 30px solid;
   background-color: currentColor;
   background-clip: content-box;
}
  1. 波浪圆
<div class="eye"></div>
.eye {
   width: 150px; height: 150px;
   padding: 10px;
   border: 10px solid;
   border-radius: 50%;
   background-color: currentColor;
   background-clip: content-box;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,507评论 0 6
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,788评论 0 2
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,195评论 0 11
  • 夜里十点,对面小区的老张给先生电话,问他有没有睡下,没有的话请他现在下楼,一起去夜宵摊陪他喝一杯。 先生从被窝里坐...
    端木婉清阅读 1,755评论 23 39