CSS3专题-[上篇]:过渡、2D转换、动画

news2024/9/17 8:20:49

目录

CSS3:前置特性

CSS3:盒子模型

CSS3:图片滤镜与模糊处理

blur():高斯模糊

CSS3:计算盒子宽度calc()函数

CSS3:过渡效果

transition属性

2D转换:transform属性

 translate()方法

* translate应用:结合定位实现水平+垂直居中

rotate()方法

*rotate应用案例:结合transition过渡实现盒子过渡旋转

*rotate应用案例:绘制倒三角

转换中心点:transform-origin属性

* rotate + transform-origin:旋转案例

scale()方法

 使用多个2D转换

CSS3:动画(animation)

定义动画:@keyframes 规则

*动画案例:运动的DOM元素

动画序列

 *动画序列案例:转圈的DOM元素

动画常见属性

动画速度曲线

* 速度曲线案例:进度条分步长加载


CSS3:前置特性

CSS3:盒子模型

        CSS3中可以通过borde-sizing来指定盒模型,属性值有2个:context-boxborder-box,其中:

        ①context-box:盒子大小的计算方式为-width+padding+border(传统默认方式);

        ②border-box:盒子大小的计算方式为-width。

        属性值为border-box的盒子,可以避免由于指定了padding和border属性值时,盒子会被撑大的问题。

CSS3:图片滤镜与模糊处理

        CSS3提供了filter属性,可以实现DOM元素的模糊或者颜色偏移等视觉效果。filter属性值默认为none,即:没有任何特殊效果。

        除了下面介绍的高斯模糊效果,其它方法可参考:CSS3 filter(滤镜) 属性 | 菜鸟教程。

blur():高斯模糊

        blur()可以实现高斯模糊,并且,blur()函数的参数越大、模糊度越高。

         如下示例代码,实现图片的高斯模糊处理,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>高斯模糊</title>
  <style>
    img{
      filter: blur(3px);
    }
  </style>
</head>
<body>
  <img src="./images/hu.jpg" alt="">
</body>
</html>

CSS3:计算盒子宽度calc()函数

        CSS3中提供了calc()函数,可以实现width、height等宽高属性的数学计算,括号内部可以实现基本的+、-、*、\运算。

        如下所示,定义Div盒子的宽度比视口宽度永远小80px。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>calc-计算盒子宽高属性</title>
  <style>
    .calc{
      margin: 0 auto;
      width: calc(100% - 80px);
      height: 150px;
      background-color: skyblue;
    }
  </style>
</head>
<body>
  <div class="calc"></div>
</body>
</html>

CSS3:过渡效果

        CSS3的过渡效果,可以使我们在无需使用Flash和JavaScript的情况下,实现元素从一种状态转换为另一种状态时,提供一种视觉上的过渡效果。

        所谓过渡效果,也称过渡动画,是指:从一个状态,渐渐过渡到另一个状态。可以使我们的网页页面切换时,更加流畅,无缝衔接,极具体验感,同时又不会影响页面布局。

transition属性

        transition属性用于设置DOM元素的过渡效果。而要实现过渡效果必须指定两项内容:添加效果的CSS属性、效果的持续时间。该属性的4个属性值参数为,

transition:过渡属性   花费时间   运动曲线    开始时间。

        上述4个参数的取值可参考:CSS3 transition 属性 | 菜鸟教程。

       如下代码,实现了在鼠标滑过div盒子时,其width宽度属性,从100px到400px变化的过渡效果,延迟0.0s执行,持续时间为0.5s。 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS3-过渡效果</title>
  <style>
    .trans{
      width: 100px;
      height: 50px;
      background-color: skyblue;
      /* 使用过渡效果 */
      transition: width 0.5s ease 0.0s;
    }
    .trans:hover{
      width: 400px;
    }
  </style>
</head>
<body>
  <div class="trans"></div>
</body>
</html>

 

2D转换:transform属性

        transform属性是CSS3中具有颠覆性的特征之一,可以实现元素的移动、缩放、旋转、拉伸等效果。

 translate()方法

        已知的可以实现盒子移动的方法有:定位(position)外边距(margin),现在可以通过2D转换的translate()方法,根据指定的X轴和Y轴位置给定的参数,实现元素的位置移动。

        如下代码,可以使得div盒子,向X轴方向移动100px,向Y轴方向移动200px的效果,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>2D转换</title>
  <style>
    div{
      width: 200px;
      height: 200px;
      background-color: skyblue;
    }
    .translate{
      /* 向X轴方向移动100px,向Y轴方向移动200px */
      transform: translate(100px,200px);
      -ms-transform: translate(100px,200px);/*IE9*/
      -webkit-transform: translate(100px,200px);/*safari,chrome */
    }

  </style>
</head>
<body>
  <!-- 移动 -->
  <div class="translate"></div>
</body>
</html>

         translate()方法最大的优点是:不会影响其它盒子的位置,即:translate中的百分比是相对于自身元素的translate:(50%,50%),只会修改自身的位置,而不会影响其它盒子的位置。一个注意点是:translate()属性对于行内标签无效

* translate应用:结合定位实现水平+垂直居中

        translate()方法的参数可以是百分比,此时,百分比的计算是相对于盒子的宽高而言的。

        translate()方法的一个实际应用场景是:结合position定位,实现DOM元素的水平和垂直居中效果。示例代码如下,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>2D转换</title>
  <style>
    div{
      width: 200px;
      height: 200px;
      background-color: skyblue;
    }
    /* 盒子水平和垂直居中 */
    .center{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }

  </style>
</head>
<body>
  <!-- div盒子水平+垂直居中 -->
  <div class="center"></div>
</body>
</html>

 

rotate()方法

        rotate()方法可以实现DOM元素在二维平面中的旋转效果,给定一个正的度数,向顺时针旋转,单位为deg。

        如下代码,实现div元素的顺时针渲染45度。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS-旋转</title>
  <style>
    div{
      margin: 100px auto;
      width: 200px;
      height: 200px;
      background-color: skyblue;
    }
    .rotate{
      /* 顺时针旋转45度 */
      transform: rotate(45deg);
      -ms-transform: rotate(45deg);/*IE9*/
      -webkit-transform: rotate(45deg);/*safari,chrome */
    }

  </style>
</head>
<body>
    <div class="rotate"></div>
</body>
</html>

*rotate应用案例:结合transition过渡实现盒子过渡旋转

        效果描述:当属性悬浮在div上面时,div盒子从原始的旋转45度,逐渐过渡到旋转360度,延时0.5s执行,持续时间为1.0s。

        示例代码如下,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS-旋转</title>
  <style>
    div{
      margin: 100px auto;
      width: 200px;
      height: 200px;
      background-color: skyblue;
    }
    .rotate{
      /* 顺时针旋转45度 */
      transform: rotate(45deg);
      -ms-transform: rotate(45deg);/*IE9*/
      -webkit-transform: rotate(45deg);/*safari,chrome */
      transition: transform 1.0s ease 0.5s;
    }
    .rotate:hover{
      transform: rotate(360deg);
    }

  </style>
</head>
<body>
    <div class="rotate"></div>
</body>
</html>

*rotate应用案例:绘制倒三角

        rotate()属性,结合transition过渡属性,可以实现鼠标滑过时候的倒三角效果。

        示例代码如下,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>旋转-倒三角效果</title>
  <style>
    .trani{
      position: relative;
      width: 150px;
      height: 35px;
      border: 1px solid #ccc;
    }
    .trani::after{
      content: "";
      position: absolute;
      right: 7px;
      top: 7px;
      display: inline-block;
      width: 10px;
      height: 10px;
      border-right: 1px solid #ccc;
      border-bottom: 1px solid #ccc;
      transform: rotate(45deg);
      transition: transform 0.5s ease 0.1s;
    }
    .trani:hover::after{
      transform: rotate(225deg);
    }
  </style>
</head>
<body>
  <div class="trani"></div>  
</body>
</html>

转换中心点:transform-origin属性

        可以通过transform-origin属性,设置元素2D转换的中心点。基本语法如下,

transform-origin:x y;

        其中:x y默认是元素的中心点(50%,50%),但是我们可以通过transform-origin属性,设置自定义的中心点。其取值可以是像素值,或者是方位名词left、top、right、bottom、center。

* rotate + transform-origin:旋转案例

        示例代码如下,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>旋转案例</title>
  <style>
    .box{
      width: 150px;
      height: 150px;
      border: 1px solid #fff;
      background-color: #ccc;
      /* 溢出隐藏 */
      overflow: hidden;
    }
    .inner{
      width: 100%;
      height: 100%;
      /* 文字水平垂直居中 */
      color: #fff;
      font-weight: 700;
      font-size: 24px;
      text-align: center;
      line-height: 150px;
      background-color: skyblue;
      /* 设置旋转中心点位左下角 */
      transform-origin: left bottom;
      transform: rotate(90deg);
      /* 设置过渡效果 */
      transition: transform 1.0s ease 0.1s;
    }
    .box:hover .inner{
      transform: rotate(0deg);
    }
  </style>
</head>
<body>
  <div class="box">
    <div class="inner">Box</div>
  </div>
</body>
</html>

scale()方法

        scale()方法可以实现元素的宽度width+高度height的缩放效果。相比基于transition过渡效果直接操作width、height宽高属性来说,可以实现等比缩放,并且不会影响其它盒子,并且可以设置缩放的中心点。

        基本语法规则为:

transform: scale(x,y);

        如下示例代码,可以实现相对于元素的本身1.2倍的等比缩放。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>scale缩放</title>
  <style>
    .scale{
      margin: 200px auto;
      width: 200px;
      height: 200px;
      border: 1px solid #ccc;
      background-color: skyblue;
      /* 过渡效果 */
      transition: transform 1.5s ease 0.1s;
    }
    .scale:hover{
      /* 等比扩大1.2倍 */
      transform: scale(1.2,1.2);
    }

  </style>
</head>
<body>
  <div class="scale"></div>
</body>
</html>

 使用多个2D转换

        同时使用多个2D转换时,基本语法格式为:

transform: translate() rotate() scale()...等;

        注意:transform属性值中的方法的顺序,会影响转换的效果。当同时有位置和其它属性的时候,记得应当将位移translate()方法放在最前面。

CSS3:动画(animation)

        动画(animation)是CSS3中最具有颠覆性的特征之一,可通过设置多个节点,来精确控制一个或者一组动画,常用来实现复杂的动画效果。

        相比transition过渡属性,动画可以实现更多变化,更多控制,连续自动播放等效果。

        例如:如下的跑马灯效果,就可以通过CSS3动画实现。

定义动画:@keyframes 规则

        想要定义一个动画,需要了解@keyframes规则。

        @keyframes规则是创建动画;而在@keyframes规则内部,可以指定一个样式和动画,实现从当前样式到目标样式的逐步过渡。

        @keyframes规则的基本格式如下,

@keyframes 动画名称{
    0%{
        width:100px;
    }
    100%{
        width:200px;
    }
}

         其中:0%对应起始时DOM元素的样式;100%对应结束时DOM元素的样式。

*动画案例:运动的DOM元素

        如下代码,实现了这样的动画效果:当页面渲染时,div盒子就从页面的左边运动到右边。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>动画定义</title>
  <style>
    .animation {
      width: 150px;
      height: 150px;
      border: 1px solid #ccc;
      background-color: skyblue;
      /* 使用动画 */
      animation-name: move;
      /* 动画的持续时间 */
      animation-duration: 3s;
    }

    @keyframes move {
      /* 开始时的动画 */
      0% {
        transform: translateX(0px);
      }
      /* 结束时的动画 */
      100% {
        transform: translateX(1600px);
      }
    }
  </style>
</head>

<body>
  <div class="animation"></div>
</body>

</html>

         

动画序列

        在CSS3中,只要@keyframes中规定了某项CSS样式,就能由当前样式逐渐改变到新样式的动画效果。

        一个完整的动画, 是由若干个动画序列组成的,其中:0%表示动画的开始,100%表示动画的结束,中间可以创建任意多个样式效果,这样的@keyframes规则,就定义了一个动画序列。     

          除了上面例子中,0%和100%的写法,也可以使用from和to的关键字,来定义起始、终止动画的样式,两者对于简单动画来讲是等价的。

 *动画序列案例:转圈的DOM元素

 

        动画效果如上,示例代码如下,

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>动画序列</title>
  <style>
    .animation {
      width: 150px;
      height: 150px;
      border: 1px solid #ccc;
      background-color: skyblue;
      /* 使用动画 */
      animation-name: move;
      /* 动画的持续时间 */
      animation-duration: 5s;
    }

    @keyframes move {
      /* 开始时的动画 */
      0% {
        transform: translate(0px, 0px);
      }
      25% {
        transform: translate(1700px, 0px);
      }
      50% {
        transform: translate(1700px, 800px);
      }
      75% {
        transform: translate(0px, 800px);
      }
      /* 结束时的动画-回到原点 */
      100% {
        transform: translate(0px, 0px);
      }
    }
  </style>
</head>

<body>
  <div class="animation"></div>
</body>

</html>

动画常见属性

        常见的动画属性如下,

         基于以上动画属性,例如:为上面的转圈的DOM元素添加animation-iteration-count:infinite,使其可以循环播放。也可以通过绑定按钮的点击事件,通过修改animation-play-state属性,来控制动画的运行或者停止状态

循环动画

 

动画速度曲线

        在常见的动画属性中有一个较为有意思的属性:animation-timing-function,即:动画的速度曲线。该属性的默认值是:ease,但是也存在着其它的属性值。

         例如,我们可以通过设置steps属性值,来规定整个动画分几步执行。

* 速度曲线案例:进度条分步长加载

 

        下面,我们看一个如上图所示的例子:进度条,分成100个步长来执行进度条加载;并且,当鼠标悬浮到进度条上面时,暂时停止进度条加载,示例代码如下,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>动画-速度曲线</title>
  <style>
    .box{
      margin: 0 auto;
      width: 200px;
      height: 25px;
      border: 1px solid #ccc;
      background-color: #ccc;
      border-radius: 5px;
    }
    /* 鼠标悬浮在box上面时,暂时停止动画 */
    .box:hover::after{
        animation-play-state: paused;
    }
    .box::after{
      content: "";
      display: inline-block;
      width: 0%;
      height: 100%;
      background-color: skyblue;
      border-radius: 5px;
      /* 设置动画名称 */
      animation-name: progress;
      /* 设置动画持续时间 */
      animation-duration: 10s;
      /* 设置步长:进度条到100%,那么可设置步长为100 */
      animation-timing-function: steps(100);
      /* 设置循环动画 */
      animation-iteration-count: infinite;
    }
    /* 进度条动画 */
    @keyframes progress{
        from{
          width: 0%;
        }
        to{
          width: 100%;
        }
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

matrix

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11、Microsoft Visual Studio 2022 Installer Projects踩坑一

前言&#xff1a;VS自带的打包工具对于单文件简单程序很好用&#xff0c;对于多文件涉及到依赖其他程序就需要多一点配置了&#xff0c;之前打包过一个简单程序&#xff0c;后来程序变大后再执行生成的时候就出现问题了&#xff0c;要么执行不成功&#xff0c;要么生成成功安装…

猿创征文|后端开发工程师提升开发效率神器推荐

简介 对于现在的后端工程师来说&#xff0c;并不仅仅局限于编写代码和解决bug&#xff0c;这两个要素了。如果你目前还只是忙碌的写代码和改bug的话&#xff0c;那要深度思考一下&#xff0c;我为什么日复一日的写这些重复代码&#xff1f;这样有何意义&#xff1f;或者说&…

Java开发必须掌握的运维知识 (七)-- 性能监控日志收集,数据实时分析存储工具Influxdb实战

从这节起&#xff0c;我们要循序渐进的学习InfluxDB、Cadvisor、Grafana。这三种工具组合使用可以完成对容器的各项指标实时监控&#xff0c;也为后面的k8s打好基础。 一、InfluxDB的介绍 InfluxDB是一种用Go编写的时间序列数据库&#xff0c;主要用来存储一些时间序列的数据…

项目管理之沟通管理

目录 前言 一、沟通模型是什么&#xff1f; 二、项目沟通管理过程 三、规划沟通管理 1.规划沟通管理的ITO 2.工具与技术的使用 四、管理沟通 1.管理沟通的ITO 2.三种绩效区别 五、控制沟通 1.控制沟通的ITO 2.工具与技术的使用 总结 前言 本文章主要介绍以下项目…

JVM垃圾回收——三色标记法

目录 一、什么是三色标记 二、三色标记的过程 三、三色标记的缺点 四、垃圾回收机如何弥补三色标记的缺点 在CMS、G1这种并发的垃圾收集器收集对象时&#xff0c;假如一个对象A被GC线程标记为不可达对象&#xff0c;但是用户线程又将A对象标记为可达对象&#xff0c;那么此…

基于Session实现短信登录

目录 一、基于Session实现登录 1.1 业务流程图​编辑 二、发送短信验证码 2.1 发送短信请求方式及参数说明 2.2 业务层代码模拟发送短信 三、登录功能 3.1 短信验证的请求方式及路径 3.2 业务层代码实现用户登录 3.3 拦截器——登录验证功能 三、隐藏用户敏感信息 …

React-Hooks源码深度解读

useState 解析 useState 使用 通常我们这样来使用 useState 方法 function App() {const [num, setNum] useState(0);const add () > {setNum(num 1);};return (<div><p>数字: {num}</p><button onClick{add}> 1 </button></div>…

前Zynga中国总裁田行智联合创办的亚创拟上市:市值25亿美元 公司PPT曝光

雷递网 雷建平 10月31日前Zynga中国总裁田行智&#xff08;Andy Tian&#xff09;联合创办的亚洲创新集团&#xff08;Asia Innovations Group Limited&#xff0c;简称“亚创集团”&#xff09;日前拟通过SPAC模式上市。亚创集团已与特殊目的收购公司&#xff08;SPAC&#xf…

【C++】内联函数auto关键字基于范围的for循环指针空值nullptr

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;内联函数…

Bitquery与Moonbeam集成,为多链提供链上数据访问

Moonbeam是一个智能合约平台&#xff0c;用于构建跨链互连应用程序&#xff0c;能够访问任何链上的用户、资产和服务。通过将来自以太坊、Cosmos、波卡等功能整合到一个平台中。近日&#xff0c;Moonbeam与Bitquery集成&#xff0c;为市场分析、资金流、DeFi等多链提供链上数据…

JavaScript 53 JavaScript 箭头函数

JavaScript 文章目录JavaScript53 JavaScript 箭头函数53.1 语法53.2 this 怎么办&#xff1f;53.2.1 常规函数53.2.2 箭头函数53.3 浏览器支持53 JavaScript 箭头函数 ES6 中引入了箭头函数。 箭头函数允许我们编写更短的函数 53.1 语法 以前定义函数 hello function() …

一位小镇做题家的付费咨询

前几天&#xff0c;有位知乎读者咨询我&#xff0c;感觉很迷茫&#xff0c;不知道做什么。这可能也是大多数在校大学生的状态&#xff0c;忙忙碌碌&#xff0c;浑浑噩噩&#xff0c;不知道该怎么办。 首先&#xff0c;不管从事哪个行业&#xff0c;你的学历一定是亮点。专业的话…

Flutter ChoiceChip 用来实现选择标签效果

程序员如果敲一会就停半天&#xff0c;抱着一杯茶&#xff0c;表情拧巴&#xff0c;那才是在编程&#xff0c;在之前我要实现一级标签效果&#xff0c;我还在苦苦写了好多嵌套的代码&#xff0c;当我看到 Clip 时&#xff0c;泪奔啊&#xff0c;原来一个组件就可以实现&#xf…

(8个方法)解决windows11/10/8/7卡在准备就绪一直转圈

许多用户会遇到Win10安装卡在准备就绪一直转圈的情况或者重装系统准备就绪转圈的问题。也有一些用户反映&#xff0c;Win10准备就绪后黑屏重启&#xff0c;一直循环。一开始大家会耐心等待&#xff0c;但是等了很久后发现没什么用&#xff0c;这该怎么办&#xff1f;本文教你一…

第32讲:MySQL数据库的体系结构组成

MySQL数据库的体系结构组成 MySQL数据库整个体系结构可以分为五个部分,如下图所示: 1)客户端连接器 这一层也是整个MySQL体系中的最上层,包含本地Sock通信和支持大多数客户端到服务端的TCP通信,像JAVA的JDBC、Python、PHP都可以连接到MySQL数据库。 2)数据库连接层 客…

嵌入式分享合集92

一、常用电路基础公式 1.欧姆定律计算 计算电阻电路中电流、电压、电阻和功率之间的关系。 欧姆定律解释了电压、电流和电阻之间的关系&#xff0c;即通过导体两点间的电流与这两点间的电势差成正比。说明两点间的电压差、流经该两点的电流和该电流路径电阻之间关系的定律。该…

2022年了,软件测试已经饱和了?

这个年头找工作跟找对象一样难&#xff0c;咳咳&#xff0c;工作对象都木有&#xff0c;双重打击5555。 关于今年的就业市场&#xff0c;很多人表示特别惨淡&#xff0c;以往简历一投就有大批企业来联系&#xff0c;今年自己投递一大堆简历出去&#xff0c;可能全部都是已读不…

链路状态路由协议OSPF——理解OSPF多区域原理

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.OSPF的多区域 1.OSPF概述 2.生成OSPF多区域的原因 二.OSP…

ArrayList源码解析(JDK8)

文章目录一、ArrayList继承体系二、ArrayList属性三、构造方法1、ArrayList(int initialCapacity)2、ArrayList()3、ArrayList(Collection<? extends E> c)四、ArrayList 相关操作方法1、add(E e)2、add(int index, E element)3、addAll(Collection<? extends E>…

【C++笔试强训】第十八天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…