1.CSS单位
CSS中包含了多种单位,用于描述长度、百分比等度量。
相对单位(em):元素大小参照另一个对象的大小来决定。
em特点:
-
em
参照的对象是其父元素的font-size
,1em
等于其父元素的font-size
一倍; -
em
的具体值会出现嵌套计算的现象
绝对单位(px):元素大小是所设定的固定的绝对值。
像素(px)是最常用的单位,它表示屏幕上的一个物理像素点。像素单位在不同设备上具有相对固定的大小,可以精确控制元素的尺寸和位置。
CSS中的相对单位主要分为两大类:
字体相对单位:与font-size
属性有关的单位,常见的字体相对单位有em
和rem
浏览器窗口相对单位:与浏览器窗口大小有关的单位,常见的浏览器窗口相对单位有vw
、vh
、vmax
和vmin
。
rem特点:
1.rem参照的对象是根元素html的font-size,1rem = 16px;
2.rem的具体值不会出现嵌套计算的现象,因为无论在哪个层级使用rem单位,都是参照根元素html的font-size。
rem:rem单位也是相对于根元素(即html元素)的字体大小计算的。与em不同,rem单位不会受到父元素字体大小的影响。
百分比(%):百分比单位是相对于父元素的尺寸进行计算的。例如,如果一个元素的宽度设置为50%,那么它的宽度将是父元素宽度的一半
2.flex布局
声明定义
容器里面包含着项目元素,使用 display:flex
或 display:inline-flex
声明为弹性容器
flex-direction属性:
flex-direction属性用于设置主轴方向,通过设置主轴方向可以规定项目的排列方向。
row:默认值,主轴为从左到右的水平方向。
row-reverse:主轴为从右到左的水平方向。
column:主轴为从上到下的垂直方向。
column-reverse:主轴为从下到上的垂直方向。
flex布局的作用
- 在父内容里面垂直居中一个块内容。
- 使容器的所有子项占用等量的可用宽度/高度,而不管有多少宽度 / 高度可用。
- 使多列布局中的所有列采用相同的高度,即使它们包含的内容量不同。
justify-content属性
justify-content属性用于设置项目在主轴方向上的对齐方式,能够分配项目之间及其周围多余的空间。
flex-start:默认值,表示项目对齐到主轴起点,项目间不留空隙。
flex-end:项目对齐到主轴终点,项目间不留空隙。
center:项目在主轴上居中排列,项目间不留空隙。
align-items属性
align-items属性用于设置项目在交叉轴上的对齐方式。
center:项目在交叉轴的中间位置对齐。
flex-start:项目顶部与交叉轴起点对齐
flex-end:项目底部与交叉轴终点对齐。
baseline:项目的第一行文字的基线对齐。
3.元素定位
在CSS中,元素的定位主要通过position
属性来实现,它决定了元素在网页上的布局方式。
position
属性有多个可能的值,每个值都对应一种不同的定位方式:
- static:这是元素的默认值。当元素的
position
属性设置为static
时,元素按照正常的文档流进行布局,即按照其在HTML中出现的顺序进行排列。此时,top
、right
、bottom
和left
属性将无效。 - relative:相对定位。元素首先按照正常的文档流进行布局,然后可以通过
top
、right
、bottom
和left
属性进行偏移。偏移是相对于元素原来的位置进行的。 - absolute:绝对定位。元素会脱离正常的文档流,其位置相对于最近的已定位父元素。如果没有已定位的父元素,那么它的位置就相对于初始包含块。此时,
top
、right
、bottom
和left
属性用于指定元素的位置。 - fixed:固定定位。元素会脱离正常的文档流,其位置相对于浏览器窗口进行定位,即使页面滚动,它也会始终停留在同一位置。
top
、right
、bottom
和left
属性用于指定元素的位置。
4.伪元素选择器
所谓“ 伪元素 ”,就是在dom结构中本来是不存在的,但是通过css创建出来的元素
::before
在选定元素的内容之前插入生成的内容。这常常与content属性结合使用,用于在元素内部的前端插入文本、图片或其他内容。
::after
在选定元素的内容之后插入生成的内容。同样,它也与content属性结合使用,常用于在元素内部的尾端添加内容。
5.元素的浮动
float
属性
浮动属性允许元素脱离正常的文档流,并移动到其父元素的左侧或右侧,使得其他元素可以环绕它。
float
属性有三个可能的值:none
、left
和right
。
none
:这是默认值,元素不浮动,按照正常的文档流进行布局。left
:元素向左浮动,其他元素会环绕在它的右侧。right
:元素向右浮动,其他元素会环绕在它的左侧。