From 3f405d9467fd5a5c3a7af462c6bff300caea65d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=9B=A6?= <2196258247@qq.com>
Date: Sun, 27 Oct 2024 21:19:35 +0800
Subject: [PATCH 1/3] =?UTF-8?q?20241021=E7=AC=AC=E5=8D=81=E5=85=AD?=
=?UTF-8?q?=E6=AC=A1=E7=AC=94=E8=AE=B0+=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...32\344\275\215\345\261\236\346\200\247.md" | 267 ++++++++++++++++++
1 file changed, 267 insertions(+)
create mode 100644 "\345\210\230\346\233\246/20241021 -css\345\261\236\346\200\247\357\274\232\345\256\232\344\275\215\345\261\236\346\200\247.md"
diff --git "a/\345\210\230\346\233\246/20241021 -css\345\261\236\346\200\247\357\274\232\345\256\232\344\275\215\345\261\236\346\200\247.md" "b/\345\210\230\346\233\246/20241021 -css\345\261\236\346\200\247\357\274\232\345\256\232\344\275\215\345\261\236\346\200\247.md"
new file mode 100644
index 0000000..cedf4d1
--- /dev/null
+++ "b/\345\210\230\346\233\246/20241021 -css\345\261\236\346\200\247\357\274\232\345\256\232\344\275\215\345\261\236\346\200\247.md"
@@ -0,0 +1,267 @@
+## CSS定位属性
+
+在CSS中,定位属性(`position`)是用来指定元素在页面中的定位方式。这个属性决定了元素如何在文档流中摆放,以及如何与其他元素相互作用。
+
+`position`属性有五个可能的值:`static`、`relative`、`fixed`、`absolute`和`sticky`。
+
+每个值都有其特定的行为方式,影响元素的布局和显示。
+
+### 代码示例
+
+**以下是一些基本的CSS定位属性的使用示例:**
+
+```cs
+/* 静态定位 */
+static {
+position: static;
+}
+
+/* 相对定位 */
+relative {
+position: relative;
+top: 10px;
+left: 20px;
+}
+
+/* 固定定位 */
+fixed {
+position: fixed;
+bottom: 0;
+right: 0;
+}
+
+/* 绝对定位 */
+absolute {
+position: absolute;
+top: 50px;
+right: 100px;
+}
+
+/* 粘性定位 */
+sticky {
+position: sticky;
+top: 0;
+}
+```
+
+### 定位详解
+
+- 静态定位(`static`):这是元素的默认定位方式,元素出现在正常的文档流中,不会被`top`、`bottom`、`left`、`right`属性影响。
+
+- 相对定位(`relative`):元素相对于其原本位置进行定位。即使元素被移动,它原本占据的空间仍然保留。
+
+- 固定定位(`fixed`):元素相对于浏览器窗口进行定位,即使页面滚动,元素也会停留在屏幕的同一位置。
+
+- 绝对定位(`absolute`):元素相对于最近的非静态(`non-static`)定位祖先元素进行定位。如果没有这样的祖先元素,它将相对于初始包含块进行定位。
+
+- 粘性定位(`sticky`):元素根据用户的滚动位置在`relative`和`fixed`定位之间切换。它依赖于用户的滚动,当元素到达指定的偏移位置时,它会像`fixed`定位一样固定在那个位置。
+
+### 重要注意事项
+
+1. 层叠上下文(`Stacking Context`):使用`fixed`或`sticky`定位的元素会创建新的层叠上下文。这意味着它们可以在z轴上高于或低于其他元素。
+
+2. `z-index`:`z-index`属性用于控制重叠元素的堆叠顺序。具有更高`z-index`值的元素会覆盖具有较低值的元素。
+
+3. 兼容性:不是所有的浏览器都支持所有定位类型,特别是`sticky`定位在某些旧版浏览器中可能不受支持。
+
+## 作业
+### 1
+```html
+
+
+
+
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+
+
+
+```
+
+### 3
+```html
+
+
+
+ 问君能有几多愁,恰似一江春水向东流.
+
+
+
+
主体区域第1段文本
+
主体区域第2段文本
+
主体区域第3段文本
+
+
+```
+## 作业
+### 1
+```html
+
+
+
+
+
+
Document
+
+
+
+
8888
+
+
+```
+
+### 2
+```html
+
+
+
+
+
+
Document
+
+
+
+
8888
+
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+ 333333333333333333333333333333333
+
+
+
+```
+
+### 3
+```html
+
+
+
+
+
+
Document
+
+
+
+
+
+ 卢诗语
+
+
+
+
+
+```
+
+### 4
+```html
+
+
+
+
+
+
Document
+
+
+
+
+
+
付款图标
+
存款图标
+
删除图标
+
粘贴图标
+
笑脸图标
+
编辑图标
+
+
+
+```
+### 6
+```html
+
+
+
+
+
+
Document
+
+
+
+
+
+
+```
\ No newline at end of file
--
Gitee
From b094f0f14c56f3f936a5d821fd53c95ae4f2727e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=9B=A6?= <2196258247@qq.com>
Date: Sun, 27 Oct 2024 21:24:51 +0800
Subject: [PATCH 3/3] =?UTF-8?q?20241024=E7=AC=AC=E5=8D=81=E5=85=AB?=
=?UTF-8?q?=E6=AC=A1=E7=AC=94=E8=AE=B0+=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...50\347\224\273\350\257\246\350\247\243.md" | 523 ++++++++++++++++++
1 file changed, 523 insertions(+)
create mode 100644 "\345\210\230\346\233\246/20241024 -css3\345\261\236\346\200\247\350\257\246\350\247\243\357\274\232\345\212\250\347\224\273\350\257\246\350\247\243.md"
diff --git "a/\345\210\230\346\233\246/20241024 -css3\345\261\236\346\200\247\350\257\246\350\247\243\357\274\232\345\212\250\347\224\273\350\257\246\350\247\243.md" "b/\345\210\230\346\233\246/20241024 -css3\345\261\236\346\200\247\350\257\246\350\247\243\357\274\232\345\212\250\347\224\273\350\257\246\350\247\243.md"
new file mode 100644
index 0000000..a19c52c
--- /dev/null
+++ "b/\345\210\230\346\233\246/20241024 -css3\345\261\236\346\200\247\350\257\246\350\247\243\357\274\232\345\212\250\347\224\273\350\257\246\350\247\243.md"
@@ -0,0 +1,523 @@
+## css3动画详解
+
+- 过渡:`transition`
+
+- 2D 转换 `transform`
+
+- 3D 转换 `transform`
+
+- 动画:`animation`
+
+## 过渡:transition
+
+`transition`的中文含义是**过渡**。
+
+过渡是CSS3中具有颠覆性的一个特征,可以实现元素**不同状态间的平滑过渡**(补间动画),经常用来制作动画效果。
+
+- 补间动画:自动完成从起始状态到终止状态的的过渡。不用管中间的状态。
+
+- 帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片。
+
+transition 包括以下属性:
+
+- `transition-property: all;` 如果希望所有的属性都发生过渡,就使用all。
+
+- `transition-duration: 1s;` 过渡的持续时间。
+
+- `transition-timing-function: linear;` 运动曲线。属性值可以是:
+
+ - `linear` 线性
+ - `ease` 减速
+ - `ease-in` 加速
+ - `ease-out` 减速
+ - `ease-in-out` 先加速后减速
+
+- `transition-delay: 1s;` 过渡延迟。多长时间后再执行这个过渡动画。
+
+上面的四个属性也可以写成综合属性:
+
+```cs
+ transition: 让哪些属性进行过度 过渡的持续时间 运动曲线 延迟时间;
+
+ transition: all 3s linear 0s;
+```
+
+## 2D 转换
+
+转换是 CSS3 中具有颠覆性的一个特征,可以实现元素的**位移**、**旋转**、**变形**、**缩放**,甚至支持矩阵方式。
+
+转换再配合过渡和动画,可以取代大量早期只能靠 Flash 才可以实现的效果。
+
+在 CSS3 当中,通过 `transform` 转换来实现 2D 转换或者 3D 转换。
+
+ - 2D转换包括:缩放、移动、旋转。
+
+### 缩放:scale
+
+格式:
+
+```cs
+ transform: scale(x, y);
+
+ transform: scale(2, 0.5);
+```
+
+参数解释: x:表示水平方向的缩放倍数。y:表示垂直方向的缩放倍数。如果只写一个值就是等比例缩放。
+
+取值:大于1表示放大,小于1表示缩小。不能为百分比。
+
+格式举例:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### 位移:translate
+
+格式:
+
+```cs
+ transform: translate(水平位移, 垂直位移);
+
+ transform: translate(-50%, -50%);
+```
+
+参数解释:
+
+ - 参数为百分比,相对于自身移动。
+
+ - 正值:向右和向下。 负值:向左和向上。如果只写一个值,则表示水平移动。
+
+格式举例:
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+如果想让一个标准流中的盒子在父亲里居中(水平方向看),可以将其设置margin: 0 auto属性。
+
+### 旋转:rotate
+
+格式:
+
+```cs
+ transform: rotate(角度);
+
+ transform: rotate(45deg);
+```
+
+参数解释:正值 顺时针;负值:逆时针。
+
+举例:
+
+```html
+
+
+
+
+
+
+
+
+
1
+
+
+
+
+```
+
+### 3D 转换
+
+#### 旋转的方向:(左手法则)
+
+左手握住旋转轴,竖起拇指指向旋转轴的正方向,正向就是其余手指卷曲的方向。
+
+从上面这句话,我们也能看出:所有的3d旋转,对着正方向去看,都是顺时针旋转。
+
+格式:
+
+```cs
+ transform: rotateX(360deg); //绕 X 轴旋转360度
+
+ transform: rotateY(360deg); //绕 Y 轴旋转360度
+
+ transform: rotateZ(360deg); //绕 Z 轴旋转360度
+```
+
+#### 移动:translateX、translateY、translateZ
+
+```cs
+ transform: translateX(100px); //沿着 X 轴移动
+
+ transform: translateY(360px); //沿着 Y 轴移动
+
+ transform: translateZ(360px); //沿着 Z 轴移动
+```
+
+#### 透视:perspective
+
+电脑显示屏是一个 2D 平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。
+
+透视可以将一个2D平面,在转换的过程当中,呈现3D效果。但仅仅只是视觉呈现出3d 效果,并不是正真的3d。
+
+格式有两种写法:
+
+ - 作为一个属性,设置给父元素,作用于所有3D转换的子元素
+
+ - 作为 transform 属性的一个值,做用于元素自身。
+
+#### 3D呈现(transform-style)
+
+3D元素构建是指某个图形是由多个元素构成的,可以给这些元素的父元素设置transform-style: preserve-3d来使其变成一个真正的3D图形。属性值可以如下:
+
+```cs
+ transform-style: preserve-3d; //让 子盒子 位于三维空间里
+
+ transform-style: flat; //让子盒子位于此元素所在的平面内(子盒子被扁平化)
+```
+
+## 动画
+
+### 定义动画的步骤
+
+- 通过@keyframes定义动画;
+
+- 将这段动画通过百分比,分割成多个节点;然后各节点中分别定义各属性;
+
+- 在指定元素里,通过 animation 属性调用动画。
+
+之前,我们在 js 中定义一个函数的时候,是先定义,再调用:
+
+```cs
+ js 定义函数:
+ function fun(){ 函数体 }
+
+ 调用:
+ fun();
+```
+
+同样,我们在 CSS3 中定义动画的时候,也是先定义,再调用:
+
+```cs
+ 定义动画:
+ @keyframes 动画名{
+ from{ 初始状态 }
+ to{ 结束状态 }
+ }
+
+ 调用:
+ animation: 动画名称 持续时间;
+```
+
+其中,animation属性的格式如下:
+
+```cs
+ animation: 定义的动画名称 持续时间 执行次数 是否反向 运动曲线 延迟执行。(infinite 表示无限次)
+
+ animation: move1 1s alternate linear 3;
+
+ animation: move2 4s;
+```
+
+### 动画属性
+
+animation属性的格式如下:
+
+```cs
+ animation: 定义的动画名称 持续时间 执行次数 是否反向 运动曲线 延迟执行。(infinite 表示无限次)
+
+ animation: move1 1s alternate linear 3;
+
+ animation: move2 4s;
+```
+
+可以看出,这里的 animation 是综合属性,接下来,我们把这个综合属性拆分看看。
+
+1. 动画名称:
+```cs
+ animation-name: move;
+```
+
+2. 执行一次动画的持续时间:
+```cs
+ animation-duration: 4s;
+```
+
+备注:上面两个属性,是必选项,且顺序固定。
+
+4. 动画的执行次数:
+```cs
+ animation-iteration-count: 1; //iteration的含义表示迭代
+```
+
+属性值infinite表示无数次。
+
+5. 动画的方向:
+```cs
+ animation-direction: alternate;
+```
+
+属性值:normal 正常,alternate 反向。
+
+6. 动画延迟执行:
+```cs
+ animation-delay: 1s;
+```
+
+7. 设置动画结束时,盒子的状态:
+```cs
+ animation-fill-mode: forwards;
+```
+
+属性值: forwards:保持动画结束后的状态(默认), backwards:动画结束后回到最初的状态。
+
+8. 运动曲线:
+```cs
+ animation-timing-function: ease-in;
+```
+
+属性值可以是:linear ease-in-out steps()等。
+
+注意,如果把属性值写成steps(),则表示动画不是连续执行,而是间断地分成几步执行。我们接下来专门讲一下属性值 steps()。
+
+**steps()的效果**
+
+```cs
+ animation: move2 4s steps(2);
+```
+
+## 作业
+```html
+
+
+
+