CSS核心样式-04-定位属性+轮播图静态结构布局案例

目录

十、定位属性

概念

定位属性 position

偏移量属性

1. 相对定位

性质

注意事项

实际应用

应用1:导航栏位置微调

应用2:文字位置微调

2. 绝对定位

绝对定位的性质

注意事项

为参考元素的参考点

祖先级为参考元素

祖先元素参考点

3. 固定定位

4. 定位应用

压盖效果

居中

扩展应用

压盖顺序

默认压盖顺序

自定义压盖顺序

​编辑 十一、综合案例:轮播图静态结构布局


十、定位属性

我们已经了解过布局相关的盒模型、浮动等属性,而定位是另一种布局的重要属性,常用于制作压盖或者位置相关的效果。

跟背景定位区分开来,背景定位是给背景设置定位,不会出现在盒子之外,而这里的定位属性是给元素整体定位。

概念

定位属性 position

属性名:position
属性值:
     relative 相对定位
     absolute 绝对定位
     fixed 固定定位
作用:设置定位的元素,它需要根据某个参考元素发生位置的偏移

偏移量属性

定位的元素要想发生位置的移动,必须搭配偏移量属性进行设置
水平方向:left、right。
垂直方向:top、bottom。
属性值:常用 px 为单位的数值,或者百分比。

1. 相对定位

属性值:relative
参考元素:标签加载的原始位置。
必须搭配偏移量属性才能发生位置移动。

性质

相对定位的性质:相对定位的元素不脱离标签的原始状态(标准流、浮动),不会让出原来占
有的位置
。(所以脱离标准流的方法中没有相对定位)
元素显示效果上,原位留坑,形影分离。 

注意事项

① 偏移量属性的值是区分正负的
正数:表示偏移方向与属性名方向相反。
负数:表示偏移方向与属性名方向相同。

② 同一个方向,不能设置两个偏移量属性

如果水平方向同时设置了left 和right属性,只会加载left属性。垂直方向只加载top属性。
建议:书写时从水平方向和垂直方向各挑一个属性进行组合。

③ 由于相对定位的参考元素是自身,left 的正值等价于right的负值,top 的正值等价于bottom的负值。
为了方便记忆,可以选择只使用left、top 组合

想让元素去原始位置的右边,就是left:正值,去原始位置的左边就是left:负值

想让元素去原始位置的下边,就是top:正值,去原始位置的上边就是top:负值

实际应用

1.由于相对定位元素比较稳定,不会随意让出位置,可以将相对定位的元素作为后期绝对定位的参考元素,就是所说的子绝父相情况。

2. 相对定位比较稳定,可以在占有原始位置的情况下,对加载效果区域进行位置调整,进行微调设置。或者对文字进行微调。

应用1:导航栏位置微调

鼠标移上时盒子变成黄色:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .nav {
            list-style: none;
            width: 980px;
            height: 50px;
            margin: 100px auto;/*上下100,左右居中*/
        }
        .nav li {
            float: left;
            width: 180px;
            height: 50px;
        }
        .nav li a {
            display: block;
            width: 180px;
            height: 50px;
            font: 15px/50px "微软雅黑";/*行高等于盒子高度可以垂直居中*/
            text-align: center;
            text-decoration: none;/*清除下划线*/
            background-color: skyblue;
        }
        .nav li a:hover {
            background-color: yellow;/*鼠标移上时盒子变成黄色*/
        }
    </style>
</head>
<body>
   <ul class="nav">
    <li><a href="#">首页</a></li>
    <li><a href="#">首页</a></li>
    <li><a href="#">首页</a></li>
    <li><a href="#">首页</a></li>
    <li><a href="#">首页</a></li>
   </ul>
</body>

现在不想让鼠标移上时变黄色了,想让鼠标移上时上面出现一个小块且盒子本身位置不变

 想让盒子位置不变,就可以用相对定位

<style>
           .nav li a:hover {
            position: relative;
            top: -5px;/*数值与边框宽度一样,被挤下去多少就向上调多少*/
            border-top: 5px solid green;
        }
</style>

这个盒子实际占的位置还是之前的位置,只不过相对定位在视觉效果上帮我们微调了

应用2:文字位置微调

文字标注参考文献的上标

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        p {
            width: 300px;
            border: 2px solid greenyellow;
            font: 18px/32px "宋体";
            text-indent: 2em;/*首行缩进两个中文字符*/
        }
        span {
            font-size: 12px;
            position: relative;
            top: -5px;
        }
    </style>
</head>
<body>
   <p>这是一个段落<span>[1]</span>这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落</p>
</body>

2. 绝对定位

 属性值:absolute
参考元素:参考的是距离最近的有定位的祖先元素如果祖先都没有定位,参考<body>
必须搭配偏移量属性才会发生位置移动。

绝对定位的性质

性质:绝对定位的元素脱离标准流,会让出标准流位置(下面的标准流就可以跑过来占有它的位置),可以设置宽高,也可以随时定义位置,绝对定位的元素不设置宽高只能被内容撑开。

注意事项

注意1:绝对定位的参考元素是不固定的,不同的参考元素以及不同的偏移量组合,会导致绝对定位元素的参考点不同,具体位移效果不同
注意2:在绝对定位中,由于参考点不同left 正值不再等价于 right 的负值

<body> 为参考元素的参考点

以<body>为参考元素时,参考点的确定与偏移量方向有关。

第一,如果有 top 参与的定位,参考点就是 <body> 页面的左上顶点和右上顶点。自身的对比点是盒子的所有盒模型属性最外面的左上角或右上角。即上面例子
第二,如果有 bottom 参与的绝对定位,参考点是 <body> 页面首屏的左下顶点或右下顶点。对比点是盒子的所有盒模型属性最外面的左下角或右下角

页面向下滑动后绿色块不会跟着下来,因为参考的是“首屏”的右下顶点。

实际应用中,如果以 <body> 为参考元素,不同分辨率的浏览器中,绝对定位的元素位置是不同的,所以较少使用 <body> 作为参考元素。(实际工作中尽量不要使用)

祖先级为参考元素

如果祖先级中有定位的元素,就不会去参考<body>。
参考元素:参考的是祖先元素中有任意定位的,在HTML结构中距离目标最近的祖先。

现在有四个盒子嵌套:

用黄色盒子的绝对定位进行演示:

黄色盒子想要绝对定位,首先要有一个有定位的祖先元素,给最外层红色盒子设置任意一个定位:

注意一下要找最近的祖先元素:

根据绝对定位的参考元素的定位类型不同,有三种定位组合方式:子绝父相、子绝父绝、子绝父固由于相对定位的祖先级位置更稳定,大多使用子绝父相的情况

祖先元素参考点

如果绝对定位的参考元素是某个祖先级,参考点是盒子border以内的四个顶点,组合方向决定了参考点。绝对定位的元素只关心对比点和参考点之间的距离,会忽视参考元素的 padding 区域
left、top:参考点是祖先的 border 以内的左上顶点,对比点是盒子自身的左上角。
right、top:参考点是祖先的 border 以内的右上顶点,对比点是盒子自身的右上角。
left、bottom:参考点是祖先的 border 以内的左下顶点,对比点是盒子自身的左下角。
right、bottom:参考点是祖先的 border 以内的右下顶点,对比点是盒子自身的右下角。

3. 固定定位

属性值:fixed
参考元素:浏览器窗口
参考点:浏览器窗口的四个顶点。跟偏移量组合方向有关。
由于浏览器窗口的四个顶点位置不会发生变化,会导致固定定位的元素会始终显示在定位位置

固定定位性质:固定定位的元素脱离标准流,让出标准流位置,可以设置宽高,根据偏移量属性可以任意设置在浏览器窗口的位置。固定定位的元素会始终显示在浏览器窗口上

    <style>
        *{
            margin: 0;
            padding: 0;
        }
       div {
        width: 300px;
        height: 300px;
        background-color: aqua;
        margin-bottom: 10px;
       }
       .backup {
        position: fixed;
        left: 150px;
        top: 100px;
        width: 100px;
        height: 50px;
        background-color: antiquewhite;
        font: 18px/32px "微软雅黑";
        text-align: center;
        text-decoration: none;
       }
    </style>
</head>
<body>
 <a href="#" class="backup">顶部</a>
 <div></div>
 <div></div>
 <div></div>
 <div></div>
 <div></div>
</body>

无论页面如何滑动,灰色小块位置不变:

4. 定位应用

定位 position 根据属性值不同有三种类型的定位效果,其中绝对定位和固定定位的元素会脱离标准流,相对定位维持原样保持不变。三种定位在页面中有各自的使用场景。

前面重点看过相对定位的使用场景(导航栏微调和文字位置微调),先看重点看一下绝对定位和固定定位的使用场景:

压盖效果

所有的定位类型都可以实现压盖效果。
由于绝对定位的元素脱标,不占标准流位置,压盖效果更彻底,实际工作中,常见的是绝对定位制作的压盖

现在场景:

一个div盒子里有一个图片和一个粉盒盒子

给外面的盒子box设置 position: relative;相对定位,然后给里面的盒子设置绝对定位,就可以实现粉色盒子压盖在图片上。而且粉色盒子会让出原来的位置,不会继续撑父盒子:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
       .box {
        position: relative;
        width: 800px;
        border: 10px solid red;
       }
       .box p{
        position: absolute;
        left: 100px;
        top: 100px;
        width: 100px;
        height: 100px;
        background-color: pink;
       }
    </style>
</head>
<body>
 <div class="box">
    <img src="image/ceshi.jpg">
    <p></p>
 </div>
</body>

居中

之前讲过小盒子在大盒子里居中,限制比较多,现在可以使用定位的方式进行设置,这种方法适用性更普遍。

定位的元素,如果想在参考元素中居中显示,有自己的居中方法:
第一步:在居中的方向使用一个偏移量属性,例如水平居中选择 left,设置属性值为 50%。导致图片的左顶点移动到参考元素的中心位置。
百分比形式的属性值,百分百参考的是参考元素的 border 以内的宽度、高度

此时粉色盒子的左边线在盒子中间,而我们想要的是粉色盒子的中线在盒子中间。

第二步:给绝对定位的子盒子设置一个同方向的 margin,例如 margin-left,属性值为负的自身宽度的一半。

相当于将粉色盒子向左拽自身宽度的一半,即可让粉色盒子的中线与大盒子的中线重合。

    <style>
        *{
            margin: 0;
            padding: 0;
        }
       .box {
        position: relative;
        width: 800px;
        border: 10px solid red;
       }
       .box p{
        position: absolute;
        left: 50%;
        margin-left: -50px;
        top: 100px;
        width: 100px;
        height: 100px;
        background-color: pink;
       }
    </style>
</head>
<body>
 <div class="box">
    <img src="image/ceshi.jpg">
    <p></p>
 </div>
</body>

注意:不论子盒子的宽度是否比参考元素更宽,都能使用以上方法进行居中设置。使用更加场景广泛。 

扩展应用

①解决标准流中,宽的子盒子在窄的父盒子中的居中,可以设置大的子盒子相对定位(标准流),利用相对定位居中的方法进行居中。

    <style>
        *{
            margin: 0;
            padding: 0;
        }
       .box1 {
        width: 400px;
        height: 100px;
        border: 10px solid red;
        margin: 50px auto;
       }
       .box1 p{
        position: relative;/*不改变这个盒子标准流的性质*/
        left: 50%;
        margin-left: -400px;
        width: 800px;
        height: 100px;
        background-color: pink;
       }
    </style>
</head>
<body>
 <div class="box1">
    <p></p>
 </div>
</body>


②浮动的元素居中,在不改变原始浮动状态情况下,可以利用相对定位居中方法。

压盖顺序

实际使用定位时,可能出现多个定位的元素加载到同一个位置的情况,这时候压盖的顺序是可以控制的

默认压盖顺序

定位的元素不区分定位类型,不管是相对定位还是绝对固定,都会去压盖标准流或浮动的元素


如果都是定位的元素,在 HTML 中后写的定位压盖先写的定位


因此,书写代码时,需要注意压盖效果,必须合理设置 HTML 元素的书写顺序

自定义压盖顺序

如果想更改定位的元素的压盖顺序,可以设置一个 z-index 属性
属性值:数字。

属性值大的会压盖属性值小的,设置z-index属性的会压盖没有设置的


②如果属性值相同,比较HTML书写顺序,后写的压盖先写的
③z-index属性只能设置给定位的元素才会生效,如果给没有定位的元素设置,不会生效。
④父子盒模型中,如果父子盒子都进行了定位,这组父子盒子与其他的父子盒子之间有压盖的部分:
    父级盒子:如果不设置z-index,后写的压盖先写的;如果设置了z-index,值大的压盖值小的。
    子级盒子:如果父级没有设置z-index属性,子级z-index大的会压盖小的;如果父级设置了
  z-index值,无论子级值是多少,都是父级的值大的子级压盖父级值小的子级,俗称“从父效应”。

情景:第一组红色父亲和粉色儿子,第二组绿色父亲和蓝色儿子,当只有第一组没有第二组时:

当第一组和第二组都在时(原始情况):

<!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>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .father{
        position: absolute;
        left: 0;
        top: 0;
        width: 200px;
        height: 200px;
        border: 10px solid red;
       }
       .son{
        position: absolute;
        left: 0;
        top: 0;
        width: 150px;
        height: 150px;
        background-color: pink;
       }
       .fuqin{
        position: absolute;
        left: 0;
        top: 0;
        width: 200px;
        height: 200px;
        border: 10px solid greenyellow;
       }
       .erzi{
        position: absolute;
        left: 0;
        top: 0;
        width: 100px;
        height: 100px;
        background-color: skyblue;
       }
    </style>
</head>
<body>
 <div class="father">
    <div class="son"></div>
 </div>
 <div class="fuqin">
    <div class="erzi"></div>
 </div>
</body>
</html>

因为后写的压盖先写的,所以第二组的绿父亲和蓝儿子压盖住了第一组的红父亲粉儿子

父级盒子:如果不设置z-index,后写的压盖先写的;如果设置了z-index,值大的压盖值小的。

子级盒子:如果父级没有设置z-index属性,子级z-index大的会压盖小的;如果父级设置了
  z-index值,无论子级值是多少,都是父级的值大的子级压盖父级值小的子级,俗称“从父效应”。 (只要父亲值大,就会带着自己儿子压盖其他父子)

 十一、综合案例:轮播图静态结构布局

首先分析一下轮播图的结构及使用的标签:

多张图片都是在原位置消失然后下一张图在原位置显示,所以肯定是用定位进行制作,图片以及按钮都是使用定位制作,可以在外面设置一个大盒子作为参考元素,使用绝对定位制作。 

然后开始写代码,搭建整体架构:

<body>
    <!-- 轮播图大结构 -->
    <div class="lunbo">
        <!-- 图片部分 -->
        <ul class="pic">
            <li><img src="image/lunbo/c1.jpg"></li>
            <li><img src="image/lunbo/c2.jpg"></li>
            <li><img src="image/lunbo/c3.jpg"></li>
            <li><img src="image/lunbo/c4.jpg"></li>
            <li><img src="image/lunbo/c5.jpg"></li>
            <li><img src="image/lunbo/c6.jpg"></li>
        </ul>
        <!-- 按钮 -->
        <div class="btn">
            <!-- 防止a标签跳转 -->
            <a href="javascript:;" class="leftbtn">&lt;</a>
            <a href="javascript:;" class="rightbtn">&gt;</a>
        </div>
        <!-- 小圆点 -->
        <ol class="sub">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ol>
    </div>
</body>

接下来首先清除默认样式:

    <style>
        /*清除默认样式*/
        *{
            margin: 0;
            padding: 0;
        }
        li,ol{
            list-style: none;
        }
    </style>

接下来设置外面的大盒子的属性:

写css代码时一般先将定位或者浮动的写在最前面,这样就知道下面可不可以写盒模型属性,写完盒模型属性然后写背景属性,最后写文字属性,一般这么写,条理清晰方便后期修改。

    <style> 
       .lunbo {
            position: relative;
            width: 880px;/*图片的宽高是880*550,所以这里大盒子宽高也这么设置 */
            height: 550px;
            border: 1px solid black;
            margin: 20px auto;/*居中*/
        }
    </style>

接下来设置轮播图片的属性:

  <style>    
    .lunbo .pic li{
            position: absolute;
            left: 0;
            top: 0;
            width: 880px;
            height: 550px;
        }
  </style>

这里只显示了第六张图片,是因为后写的压盖住了先写的,所以最后只有最后写的第六张图片;左右按钮和小圆点也消失了,是因为绝对定位会让出标准流位置,下面的按钮和圆点就跑到上面被图片压盖住了。

为了解决这个问题,使用z-index设置压盖顺序

首先让其他的li都消失只显示一个,给所有li设置一个公共样式:display:none;使其全部消失,然后保留一个使其显示,给要显示的li标签添加一个类名:current,然后给这个类单独设置为display:block;。接下来轮播的时候其实就是让这个current去换,显示哪张图片哪张图片的li就是current。

现在设置好了只让一张图片显示,接下来设置按钮的css属性:

因为左右定位只能单独给左右按钮分别设置,所以先设置公共样式再设置单独样式

 

    <style>      
  /* 设置按钮的公共样式 */
        .lunbo .btn a{
            position: absolute;
            top: 50%;
            margin-top: -20px;/*竖直方向居中*/
            width: 40px;
            height: 40px;
            background-color: rgba(255, 255, 255, 0.3);/*半透明*/
            font:20px/40px "宋体";
            text-align: center;
            color: aliceblue;
            text-decoration: none;/*清除下划线*/
            font-weight: bold;
        }
        /*设置按钮的单独样式*/
        .lunbo .btn .leftbtn{
            left: 20px;
        }
        .lunbo .btn .rightbtn {
            right: 20px;
        }
        /*设置鼠标移到按钮上时颜色加深*/
        .lunbo .btn a:hover{
            background-color: rgba(255, 255, 255, 0.6);/*鼠标移上时颜色加深*/
        }
    </style>

设置下标小圆点的css属性:

<style>
        }
        /*下标小圆点*/
        .lunbo .sub {
            position: absolute;
            left: 50px;
            bottom: 30px;
            width: 240px;
        }
        .lunbo .sub li {
            float: left;/*在一排*/
            width: 20px;
            height: 20px;
            margin-right: 20px;
            background-color: rgba(255, 255, 255, 0.4);
            font: 12px/20px "微软雅黑";
            text-align: center;
            color: grey;
            cursor: pointer;/*光标移上时变成小手状态*/
        }
        .lunbo .sub .current{
            background-color: white;
        }
</style>

最终完整代码:

<!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>Document</title>
    <style>
        /*清除默认样式*/
        *{
            margin: 0;
            padding: 0;
        }
        li,ol{
            list-style: none;
        }
        .lunbo {
            position: relative;
            width: 880px;/*图片的宽高是880*550,所以这里大盒子宽高也这么设置 */
            height: 550px;
            border: 1px solid black;
            margin: 20px auto;/*居中*/
        }
        .lunbo .pic li{
            position: absolute;
            left: 0;
            top: 0;
            width: 880px;
            height: 550px;
            display: none;/*图片都消失*/
        }
        .lunbo .pic .current {
            display: block;/*唯独它显示*/
        }
        /* 设置按钮的公共样式 */
        .lunbo .btn a{
            position: absolute;
            top: 50%;
            margin-top: -20px;/*竖直方向居中*/
            width: 40px;
            height: 40px;
            background-color: rgba(255, 255, 255, 0.3);/*半透明*/
            font:20px/40px "宋体";
            text-align: center;
            color: aliceblue;
            text-decoration: none;/*清除下划线*/
            font-weight: bold;
        }
        /*设置按钮的单独样式*/
        .lunbo .btn .leftbtn{
            left: 20px;
        }
        .lunbo .btn .rightbtn {
            right: 20px;
        }
        /*设置鼠标移到按钮上时颜色加深*/
        .lunbo .btn a:hover{
            background-color: rgba(255, 255, 255, 0.6);/*鼠标移上时颜色加深*/
        }
        /*下标小圆点*/
        .lunbo .sub {
            position: absolute;
            left: 50px;
            bottom: 30px;
            width: 240px;
        }
        .lunbo .sub li {
            float: left;/*在一排*/
            width: 20px;
            height: 20px;
            margin-right: 20px;
            background-color: rgba(255, 255, 255, 0.4);
            font: 12px/20px "微软雅黑";
            text-align: center;
            color: grey;
            cursor: pointer;/*光标移上时变成小手状态*/
        }
        .lunbo .sub .current{
            background-color: white;
        }
    </style>
</head>
<body>
    <!-- 轮播图大结构 -->
    <div class="lunbo">
        <!-- 图片部分 -->
        <ul class="pic">
            <li class="current"><img src="image/lunbo/c1.jpg"></li>
            <li><img src="image/lunbo/c2.jpg"></li>
            <li><img src="image/lunbo/c3.jpg"></li>
            <li><img src="image/lunbo/c4.jpg"></li>
            <li><img src="image/lunbo/c5.jpg"></li>
            <li><img src="image/lunbo/c6.jpg"></li>
        </ul>
        <!-- 按钮 -->
        <div class="btn">
            <!-- 防止a标签跳转 -->
            <a href="javascript:;" class="leftbtn">&lt;</a>
            <a href="javascript:;" class="rightbtn">&gt;</a>
        </div>
        <!-- 小圆点 -->
        <ol class="sub">
            <li class="current">1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ol>
    </div>
</body>
</html>



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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【150套】基于SSM框架的Java毕业设计开发实战项目(附源码+演示视频+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f9e1;今天给大家分享150的Java毕业设计&#xff0c;基于ssm框架&#xff0c;这些项目都经过精心挑选&#xff0c;涵盖了不同的实战主题和用例&#xff0c;可做毕业设计和课程…

数据库SQL语言实战(一)

目录 创建SQL表 题目一 题目二 题目三 插入数据 题目一 题目二 题目三 总结 创建SQL表 题目一 创建学生信息表&#xff08;学生编号、姓名、性别、年龄、出生日期、院系名称、班级&#xff09;&#xff1a; test1_student&#xff1a;sid char 12 not null、nam…

C语言入门(第一天:基础语法)

一、 使用工具 1、我们学习C语言所用的编辑器是Vscode&#xff0c;大家应该都不陌生了&#xff0c;但是要在编辑器内部编写C语言&#xff0c;我们需要下载安装一些工具插件来运行C语言。 有了以上两个工具就可以进行我们的C语言编译学习了&#xff01; 二、基础语法 1.第一个…

【opencv】示例-epipolar_lines.cpp 对极线

这段代码总的功能是使用OpenCV库进行立体视觉的估计。它从命令行读取两个图像文件名&#xff0c;使用SIFT算法检测关键点并计算这些点的描述子&#xff0c;接着通过FLANN库进行快速近似最近邻搜索来找到匹配的关键点。然后使用RANSAC方法计算基础矩阵&#xff0c;找到内点&…

Python学习笔记15 - 字符串

字符串是一个不可变的字符序列&#xff0c;另一个不可变的序列是元组 字符串的驻留机制 字符串的常用操作 字符串的查询 字符串的大小写转换 字符串内容 对齐操作的方法 字符串的劈分操作 字符串的判断 字符串替换 字符串合并 字符串的比较 字符串的切片 格式化字符串 字符串…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 一、简单介绍 二、简单动态聚光灯效果实现原理 三、简单动态聚光灯效果…

JVM、maven、Nexus

一、jvm简介 1.应用程序申请内存时出现的三种情况&#xff1a; ①OOM:内存溢出&#xff0c;是指应用系统中存在无法回收的内存或使用的内存过多&#xff0c;最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了&#xff0c;系统会提示内存溢出&#xff0c…

GPT4.5发布了?OpenAI终于发布正式版Turbo,重回AI王座第一

令人惊讶的是&#xff0c;短短三个月内&#xff0c;全球最强AI的称号又一次易主了&#xff01;几个月前&#xff0c;Claude3 Opus的性能全面超过了GPT-4&#xff0c;全球网友纷纷转向Claude3&#xff0c;并分享了他们对Claude3的惊艳体验。然而&#xff0c;OpenAI最近再次展示了…

Nginx健康检查

Nginx健康检查nginx_upstream_check_module nginx健康检查介绍: ​ 主动健康检查&#xff0c;nignx定时主动地去ping后端的服务列表&#xff0c;当发现某服务出现异常时&#xff0c;把该服务从健康列表中移除&#xff0c;当发现某服务恢复时&#xff0c;又能够将该服务加回健…

网格(mesh)生成算法

mesh网格生成算法 1. 简介2. Points clouds Vs Meshes3. 为什么要生成mesh网格以及生成mesh网格的难点4. 常见的mesh网格生成算法 1. 简介 基于 3D视觉的新兴应用场景蓬勃发展&#xff0c;3D点云越来越受到人们的广泛关注。点云有着广泛的应用领域包括机器人技术、3D图形、自动…

多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型

概述 提出了一种大型模型 LLaVA&#xff0c;它使用 GPT-4 生成多模态语言图像指令跟随数据&#xff0c;并利用该数据将视觉和语言理解融为一体。初步实验表明&#xff0c;LLaVA 展示了出色的多模态聊天能力&#xff0c;在合成多模态指令上的表现优于 GPT-4。 在科学质量保证中…

Java中volatile关键字

保证了不同线程对这个变量进行操作时的可见性&#xff0c;即一个线程修改了某个变量的值&#xff0c;这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。 1.volatile的可见性 一个典型的例子&#xff1a;永不停止的循环。 public class Forever…

全网最好的JVM总结:有生命周期的JVM

1.编译 1.1 java中编译器有哪些&#xff1f; 前端编译器 javac后台即时编译器 JIT编译器静态提前编译器 &#xff08;一步到位&#xff0c;直接把java编译成二进制&#xff09; 2.2 编译过程是怎么样&#xff1f; 解析与填充符号表&#xff0c;生成语法树 &#xff08;编译…

设计模式学习笔记 - 设计模式与范式 -行为型:17.中介模式:什么时候用中介模式?什么时候用观察者模式?

概述 本章学习 23 种经典设计模式中的最后一个设计模式&#xff0c;中介模式。和之前讲过的命令模式、解释器模式类似&#xff0c;中介模式也不怎么常用&#xff0c;应用场景比较特殊、有限&#xff0c;但是&#xff0c;跟它俩不同的是&#xff0c;中介模式理解起来并不难&…

Linux部署自动化运维平台Spug

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、文件…

【深度学习】多层感知机与卷积神经网络解析

引言&#xff1a; 在人工智能的宏伟画卷中&#xff0c;深度学习如同一笔瑰丽而深邃的色彩&#xff0c;为这幅画增添了无限的生命力和潜能。作为支撑这一领域核心技术的基石&#xff0c;多层感知机&#xff08;MLP&#xff09;和卷积神经网络&#xff08;CNN&#xff09;在模仿人…

文心一言 VS 讯飞星火 VS chatgpt (236)-- 算法导论17.3 2题

二、使用势能法重做练习17.1-3。练习17.1-3的内容是&#xff1a;假定我们对一个数据结构执行一个由 n 个操作组成的操作序列&#xff0c;当 i 严格为 2 的幂时第 i 个操作的代价为 i &#xff0c;否则代价为1。使用聚合分析确定每个操作的摊还代价。如果要写代码&#xff0c;请…

【漏洞复现】泛微E-Mobile 6.0 client.do存在命令执行漏洞

0x01 阅读须知 “如棠安全的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供…

关于Salesforce DevOps的理解

“DevOps”是一组结合了软件开发 &#xff08;Dev&#xff09; 和运营 &#xff08;Ops&#xff09; 的实践&#xff0c;可帮助团队更快、更可靠地构建、测试和发布软件。 DevOps 的核心理念包括持续集成&#xff08;Continuous Integration&#xff09;、持续交付&#xff08;…

Docker+Nginx部署vue项目

这篇文章给大家分享一下如何使用DockerNginx部署前端vue项目。 第一步&#xff1a;创建vue项目 执行这个命令&#xff0c;创建一个vue项目 npm create vue3将vue项目打包 npm run build此时会看到vue工程中生成了一个dist文件&#xff0c;我们将他上传到服务器中。 第二步…