最近开始整理CSS,先来整理一下CSS基础概念,本文主要介绍一下CSS文档流和盒模型。css
CSS 全称层叠样式表。层叠分为三种:浏览器
目前使用最普遍的版本是 CSS 2.1,CSS 3 开始,CSS 使用模块化升级,这就致使有些浏览器可能不支持某些新特性,咱们能够经过使用 caniuse.com 来查询浏览器是否支持。bash
选择器{
属性名:属性值;
/*注释*/
}
复制代码
注意:模块化
@charset "UTF-8";
@import url(2.css);
@media (min-width:100px) and (max-width:200px){
语法一
}
复制代码
注意:布局
@charset
必须放在第一行,charset 是字符集的意思,但 UTF-8 是字符编码 encoding,属于历史遗留问题。文档流指的是文档流动方向,方向从左到右、从上到下。字体
inlin-block 元素,结合了 inline 元素和 block 元素的特色。必定是成块的,布局从左到右,不会一部分在上一行,一部分在下一行。flex
注意:编码
当内容宽度或高度大于容器的时,会出现溢出的状况,能够用 overflow 来设置是否出现滚动条。overflow 能够分为 overflow-x 和 overflow-y。url
上面咱们提到,block 元素高度由内部文档流元素决定,能够设置 height ,因此有些元素不在文档流中,就不会计算高度。那么,要如何实现元素脱离文档流,有两种方法。spa
那么怎么让元素不脱离文档流呢?不要用上面的属性就不会脱离文档流。
盒模型就是封装 HTML 元素的盒子。由外边距 margin、边框 border、内边距 padding、内容 content 组成。
盒模型分为两种:一种是 border-box、一种是 content-box。
如图所示。
使用 content-box 时,咱们给元素设置 width ,width 的值表明 content 宽度。
元素总宽度 = maring + border + padding + width
复制代码
使用 border-box 时,咱们给元素设置 width ,width 的值表明 border 的 + padding 的值 + content 宽度
元素总宽度 = margin + width
复制代码
在使用盒模型的过程当中,会存在 margin 合并的现象,有以下两种状况会合并
注意:
知道了存在 margin 合并的状况,接下来看下如何阻止合并。
父子合并
兄弟合并能够用 inline-block 消除,兄弟合并是符合预期的
最后,了解一下 CSS 基本单位
#FF6600
或者 #F60
rgb(0, 0, 0)
或者 rgba(0, 0, 0, 1)
hsl(360, 100%, 100%, 1)