盒模型分为区块盒子
和行内盒子
两种。
核心知识点在于CSS
盒模型
定义:CSS
盒模型整体上适用于区块盒子,它定义了盒子的不同部分(外边距、边框、内边距和内容)如何协同工作,以创建一个在页面上可以看到的盒子。
主要有标准盒模型
和替代盒模型
(也叫怪异盒模型
)两种。
以下面的CSS
设置为例
width
+padding
+border
height
+padding
+border
width
,padding
+border
会占用width
height
,padding
+border
会占用height
float
属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。该元素从网页的正常流动(文档流)中移除,但是仍然保持部分的流动性(与绝对定位相反)
绝对定位:
position
属性用于指定一个元素在文档中的定位方式。top
,right
,bottom
和left
属性则决定了该元素的最终位置
当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移直到碰到了所处盒子的边界,或者碰到另外一个浮动的元素。
overflow:visible
以外的参数值div
,添加clear:both
属性display: flow-root
定义:浏览器通过优先级来判断哪些属性值与一个元素最为相关,从而在该元素上应用这些属性值。优先级是基于不同种类选择器组成的匹配规则。
下面是不同选择器的权重:
!important
> 行内样式 > ID选择器 > 类选择器、属性选择器、伪类选择器 > 元素选择器、伪元素选择器 > 通配符选择器 > 继承的样式
实际应用中,需要组合选择器达到想要的结果。
定义:BFC
表示一个“块级格式上下文”,它是一个由块级元素(如div
、p
等)组成的区域,决定了这些元素如何进行布局和定位。
下列方式会创建BFC
:
<html>
)float
值不为 none
的元素)。position
值为 absolute
或 fixed
的元素)。display
值为 inline-block
的元素)。display
值为 table-cell
,HTML
表格单元格默认值)。display
值为 table-caption
,HTML
表格标题默认值)。display
值为 table
(HTML
表格默认值)、table-row
(表格行默认值)、table-row-group
(表格体默认值)、table-header-group
(表格头部默认值)、table-footer-group
(表格尾部默认值)或 inline-table
)。overflow
值不为visible
或clip
的块级元素。display
值为flow-root
的元素。contain
值为 layout
、content
或 paint
的元素。display
值为 flex
或 inline-flex
元素的直接子元素),如果它们本身既不是弹性、网格也不是表格容器。display
值为 grid
或 inline-grid
元素的直接子元素),如果它们本身既不是弹性、网格也不是表格容器。column-count
或 column-width
值不为 auto
,且含有 column-count: 1
的元素)。column-span
值为 all
的元素始终会创建一个新的格式化上下文,即使该元素没有包裹在一个多列容器中特点:
BFC
内元素的margin
会重叠
BFC
BFC
内,浮动元素不会与BFC
内的元素重叠