回顾一下 CSS 知识

139 阅读1分钟

1. 盒模型

先来看个图

这个盒子有个两种类型,一个是标准盒模型,另一个是替代(IE)盒模型,然后分别的说一下区别:

一、标准盒模型

在这种情况下,设置的 widthheight 只是设置的上图中的 content 的宽高,那么这个盒子的实际宽度是 width + padding-left + padding-right + border-left + border-right

二、替代(IE)盒模型

这种情况就好理解了,不管 widthheight 设置的是多少,就是盒子的大小,如果设置了 borderpadding 值,浏览器会自动计算。

那么问题来了,我们平时在写页面的时候怎么使用这两种盒模型呢?其实我们在什么都没有设置的时候使用的就是 标准盒模型,也就是 box-sizing: content-box; 如果想使用 替代(IE)盒模型,也就是需要设置为 box-sizing: border-box; 就可以了。

2. margin 的一些小细节

一、父子元素嵌套的结构时(上下 margin 的传递)

子元素的 margin-top 值会传递给父元素

如何防止出现传递问题?

  1. 给父元素设置 padding-top
  2. 给父元素设置 border
  3. 触发 BFC

二、垂直方向相邻的两个元素(上下 margin 的重叠)

如果一个有 margin-bottom,一个有 margin-top,那么他们两的值会被重叠,取最大值

3. 行内非替换元素的一些小细节

使用以下属性会怎么样?

一、 width / height: 不生效

二、padding:上下左右都会被撑起来,但是上下撑起来是不会占据空间的,如果下边还有元素,那么会紧挨着此元素的

三、border:同 padding 一样

四、margin:上下 margin 不生效,左右 margin 生效