一、css盒模型
1.基本概念
在讨论CSS盒模型之前,我们需要了解CSS中的几个基本概念:内容(Content)、内边距(Padding)、外边距(Margin)和边框(Border)。
2.标准盒模型和IE模型(怪异模型)
- 标准盒模型:在标准盒模型中,元素的宽度和高度只包括内容区域。内边距、边框和外边距不包括在内,它们会额外添加到内容区域的尺寸上。
- 在IE盒模型中,元素设置的宽度和高度包括内容、内边距和边框,但不包括外边距。这意味着,元素的实际宽度是宽度值加上左右内边距和边框的宽度。
区别:
- 标准模型的width=content
- IE模型的width=content+padding+border
3.可以使用box-sizing属性来控制盒模型
- box-sizing: content-box 指定使用标准盒模型
- box-sizing: border-box 指定使用IE盒模型
4.外边距重叠
普通文档流中两个垂直度的盒子,外边距会合并,取较大的值
二、什么是BFC?如何触发BFC?
BFC(Block Formatting Context,块级格式化上下文)是一个独立的布局环境,环境内部的元素不会影响其他环境的布局。
BFC的特性包括以下几点:
- BFC内部的块级盒子会在垂直方向一个接着一个地放置
- BFC内部的块级盒子垂直方向的magrin会发生重叠,取较大值
- BFC区域不会与浮动元素重叠
- 计算BFC高度时,浮动元素也会参与计算
- BFC一个独立的容器,内部元素与外部元素互不影响
BFC的创建条件包括:
- 根元素:如<html>标签
- 浮动元素:float的值不为none
- 溢出元素:overflow的值不为visible(如hidden,auto,srcoll)
- 显示类型:display的值为inline- block,table-cell,table- caption,flex,inline-flex
- 定位元素:position的值为absolute或者fixed
三、CSS选择器
- 基础选择器:
- 元素选择器(<标签名>):也称为标签选择器,通过标签名选择指定元素,例如
p
选择器会选择所有<p>
元素。 - 类选择器(.类名):通过类名选择元素,类选择器以点号
.
开头,后跟类名,例如.my-class。 - id选择器(#ID名):他从个ID选择元素,ID选择器以井号#开头,后跟ID名,例如
#my-id
。
- 元素选择器(<标签名>):也称为标签选择器,通过标签名选择指定元素,例如
- 组合选择器:
- 后代选择器:空格分隔 ,例如 div p,会选择所有位于<div>元素内的<p>元素(子孙后代)
- 子元素选择器:“>”分隔,例如 div > p,会选择直接位于<div>元素内的<p>元素(子辈)
- 相邻兄弟选择器:“+”分隔,例如 h1 + p, 会选择所有紧跟在<h1>元素后面的<p>元素(同级后面第一个<p>元素)
- 通用兄弟选择器:“~”分隔,例如 h1 ~ p,会选择同一父元素下,所有在<h1>元素后面的<p>元素(同级后面所有的<p>元素)
- 属性选择器:
- [attr]:选择有attr属性的所有元素
- [att