CSS盒模型

82 阅读1分钟

一、元素

  1. 块元素:独占一行,可以设置宽高。常用的块元素有 p,h1-h6,div,ul,ol,tr,li,form
  2. 内联元素:所有内联元素都在一行显示,放不下会截断,不可以设置宽高。常用的内联元素有a,span,em,i,strong,u
  3. 行内块元素:在一行内显示,可以设置宽高。常用的行内块元素有input img 注意:HTML5中已经抛弃了【内联元素】的概念,所有元素都可以通过CSS变成内联的!

二、盒模型

1. content-box(内容盒)

1.jpg

  • width只包含content,不包含padding和border

2. border-box(边框盒)

2.jpg

  • width包含padding和border

三、margin外边距合并

1. 外边距合并出现的条件:

  • 只有垂直方向的外边距会出现合并,水平方向上不会出现外边距合并;
  • 垂直方向上相邻的元素才会有外边距合并的问题

2. 兄弟元素间的外边距合并

  • 若两者都是正值,取值为两者间最大值;
  • 若两个外边距一正一负,取值为两者之和;
  • 若两个外边距都是负值,取值为绝对值较大的外边距

3. 父子元素间的外边距合并

  • 第一个和最后一个子元素才会与父元素的外边距合并

4. 解决办法

  • 给原本设置给子元素的margin值,修改为设置父元素的padding,并相应减少父元素的height;
  • 给父元素添加边框属性;
  • 给父元素或子元素设置浮动属性;
  • 给父元素设置overflow:hidden;
  • 给父元素或子元素设置display:inline-block