【Web前端入门学习】—CSS

目录

  • CSS简介
    • CSS语法
    • CSS三种导入方式
    • CSS选择器
      • 元素选择器(标签选择器)
      • 类选择器
      • ID选择器
      • 通用选择器
      • 子元素选择器
      • 后代选择器(包含选择器)
      • 并集选择器(兄弟选择器)
      • 伪类选择器
      • 伪元素选择器
    • CSS常用属性
    • 盒子模型
    • 网页布局方式
      • 浮动
      • 定位

CSS简介

什么是CSS?
CSS全名是Cascading Style Sheets ,中文名:叠层样式表。用于定义网页样式和布局的样式表语言。通过CSS,你可以指定页面中各个元素的字体、大小、间距、边框、背景等样式从而实现更精确的页面设计。

CSS语法

CSS通常由选择器、属性和属性值构成,多个规则可以组合在一起,以便同时应用多个样式。

选择器{
  属性1:属性值;
  属性2:属性值;
}

1、选择器后面大括号的内容也叫做选择器的声明,选择器的声明中可以写无数条属性。
2、选择器选择要应用样式的HTML元素(标签),可以选择所有元素或特定元素。
3、声明的每一个属性都要以英文分号为结尾。
4、声明中的所有属性和值都是以键值对的形式出现的。

例:

p{
     color:blue;
     font-size:16px;
    }

p标签选择器,页面中的所有p标签都被选中,p标签的字体颜色都改为蓝色,p标签中的字体大小改为16像素。

CSS三种导入方式

1、内联样式
2、内部样式表
3、外部样式表

内联样式:
内联样式就是将CSS样式直接放到HTML元素标签中。
内部样式表:
在HTML文档的head标签中定义。
外部样式表:
将CSS样式单独放到一个CSS文件中,之后在head标签中使用另一个标签将它链接到HTML文档中。(这种方式允许在多个页面中重复使用相同的样式。
内部样式表例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS导入方式</title>
    <style>
        p{
        color:blue;
        font-size:26px;
    }
    </style>
</head>
<body>
    <p>这是一个应用了CSS样式的文本。</p>
</body>
</html>

在这里插入图片描述
内联样式例:

<body>
    <h1 style="color:red">应用了内联样式的文本。</h1>
</body>

在这里插入图片描述
外部样式表例:
在同目录下创建CSS文件夹。
在这里插入图片描述
在CSS文件夹内创建style样式.css文件。
在这里插入图片描述
在style文件.css文件中写入样式。

注意:该选择器名须和改动的标签一致。

h3 {
    color:blueviolet;
    font-style: italic;
}

在这里插入图片描述
下面在CSS导入方式.html文件中将style文件.css文件导入。
在CSS导入方式.html文件的title下使用link。
在这里插入图片描述
herf内填入style文件.css文件的路径。
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS导入方式</title>
    <link rel="stylesheet" href="./CSS文件/style文件.css">
    <style>
        p{
        color:blue;
        font-size:26px;
    }
    
    </style>
</head>
<body>
    <p>这是一个应用了CSS样式的文本。</p>
    <h1 style="color:red">应用了内联样式的文本。</h1>
    <h3>使用外部样式。</h3>
</body>
</html>

在这里插入图片描述
三种导入方式的优先级:内联样式>外部样式表>内部样式表

优先级有什么作用?
优先级高的会覆盖优先级低的样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS导入方式</title>
    <link rel="stylesheet" href="./CSS文件/style文件.css">
    <style>
        p{
        color:blue;
        font-size:26px;
     }
     h3{
        color:chartreuse;
        font-size: larger;
     }
    
    </style>
</head>
<body>
    <p>这是一个应用了CSS样式的文本。</p>
    <h1 style="color:red">应用了内联样式的文本。</h1>
    <h3>使用外部样式。</h3>
</body>
</html>

在这里插入图片描述

CSS选择器

元素选择器(标签选择器)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
        h2{
            color: aqua;
        }
    </style>
</head>
<body>
    <h2>元素选择器</h2>
</body>
</html>

在这里插入图片描述

类选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
       .highlight{
        background-color: bisque;
       }
    </style>
</head>
<body>
    <h3 class="highlight">类选择器</h3>
    <h3>这是另一个类选择器</h3>
</body>
</html>

在这里插入图片描述

ID选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
       #header{
        font-size: larger;
       }
    </style>
</head>
<body>
    <h4 id="header">这是一个ID选择器</h4>
</body>
</html>

在这里插入图片描述

通用选择器

通用选择器表示对所有的元素进行选择。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
       #header{
        font-size: larger;
       }
       * {
               /* 更改字体 */
        font-family: 'Courier New', Courier, monospace;
       }
    </style>
</head>
<body>
    <h4 id="header">这是一个ID选择器</h4>
</body>
</html>

在这里插入图片描述

子元素选择器

子元素选择器:选择直接位于父元素内部的子元素。也就是嵌套,一个大标签嵌套一个小标签,大标签相对于小标签来讲就是父元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
        *{
            font-weight: bolder;
        }
        .father>.son{
            color:blue;
        }
    </style>
</head>
<body>
    <div class="father">
        <p class="son">这是一个子元素选择器</p>
    </div>
</body>
</html>

这里的div标签相对于p标签来讲就是父元素。
这里要注意子元素选择器的语法形式
.父类>.子类{ }

在这里插入图片描述

后代选择器(包含选择器)

在这里插入图片描述

给father类的子元素添加了蓝色字体,但是为什么后代选择器颜色没有改变?
子代和后代的区别:后代是包含子代的,而子代不包含父代。如下:

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
        *{
            font-weight: bolder;
        }
        /* 子元素选择器 */
        .father>.son{
            color:blue;
        }
        /* 后代选择器 */
        .father p{
            color: red;
            font-size:larger;
        }
    </style>
</head>
<body>
    <div class="father">
        <p class="son">这是一个子元素选择器</p>
        <div>
            <p class="grandson">这是一个后代选择器</p>
        </div>
    </div>
</body>
</html>

在这里插入图片描述

并集选择器(兄弟选择器)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
       /* 相邻兄弟选择器 */
       h3 + p{
        background-color: brown;
       }
    </style>
</head>
<body>
    <p>这是一个p标签</p>
    <h3>这是一个相邻兄弟选择器</h3>
    <p>这是另一个p标签</p>
</body>
</html>

在这里插入图片描述

相邻元素选择器会选择在同一级别下的元素中的紧跟在选中元素之后的第一个p标签。

伪类选择器

伪类选择器选择HTML文档的元素的特定状态或者位置。伪类选择器以冒号开头,通常给用户交互文档结构或者其他条件下的元素应用样式。例如鼠标悬停在一个元素上,这是处于一个悬停状态,可以用伪类选择器来实现。
鼠标悬停示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS选择器</title>
    <style>
      /* 伪类选择器 */
      #element:hover{
        /* 当鼠标放到这一行字上时,背景色会发生变化 。*/
        background-color: blueviolet;
      }
    </style>
</head>
<body>
   <h3 id="element">这是一个伪类选择器示例</h3>
</body>
</html>

选中第一个子元素:first-child
选中第n个子元素:nth-child
链接状态:active

伪元素选择器

用于创建一个虚拟元素,并且样式化,而不是选择实际存在的元素。伪元素选择器通常以双冒号开头。

::after
::before

CSS常用属性

CSS参考手册: link
字体font属性:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
</head>
<body>
    <h1 style="font:bolder 50px 'KaiTi';">这是一个font复合属性示例</h1>
</body>
</html>

在这里插入图片描述
line-height设置行高属性:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
</head>
<body>
    <p style="line-height:40px">这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本</p>
</body>
</html>

在这里插入图片描述
width属性和height属性:

行内块元素:
1、水平方向上排列,但是可以设置宽度、高度、内外边距等。
2、行内块元素可以包含其他行内元素或块级元素。
行内元素:inline
行内块元素:inline-block
块元素:block

行内块元素和块元素可以设置宽和高,但是行内元素对于所设置的宽和高是无效的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
    <style>
        .block{
            background-color: aqua;
            width: 200px;
            height: 150px;
        }
        .inline{
            background-color: brown;
            width: 200px;
            height: 150px;
        }
        .inline-block{
            width: 100px;
            height: 150px;
        }
    </style>
</head>
<body>
    <div class="block">这是一个块级元素</div>
    <span class="inline">这是一个行内元素</span>
    <!-- 行内块元素 -->
    <img src="./logo.png.jpeg" alt="" class="inline-block">
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
    <style>
        .block{
            background-color: aqua;
            width: 200px;
            height: 150px;
        }
        .inline{
            background-color: brown;
            width: 200px;
            height: 150px;
        }
        .inline-block{
            width: 100px;
            height: 150px;
        }
    </style>
</head>
<body>
    <div class="block">这是一个块级元素</div>
    <div class="block">这是一个块级元素</div>
    <span class="inline">这是一个行内元素</span>
    <!-- 行内块元素 -->
    <img src="./logo.png.jpeg" alt="" class="inline-block">
    <img src="./logo.png.jpeg" alt="" class="inline-block">
    <img src="./logo.png.jpeg" alt="" class="inline-block">
</body>
</html>

在这里插入图片描述
行内元素、行内块元素和块元素互相转换:使用display属性

<body>
    <div style="display: inline;background-color: red;">这是一个转换成行内元素div标签</div>
</body>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
    <style>
       .div-inline{
        display:inline;
        background-color: aqua;
       }
    </style>
</head>
<body>
    <div class="div-inline">这是一个转换成行内元素div标签</div>
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS常用属性</title>
    <style>
       .span-inline-block{
        display:inline-block;
        background-color: aqua;
       }
    </style>
</head>
<body>
    <span class="span-inline-block">这是一个转换成行内块元素的span标签。</span>
</body>
</html>

在这里插入图片描述

在这里display还可以设置成其他值。

盒子模型

盒子模型是CSS中一种常用布局的基本概念,描述了文档中的每个元素都可以被看成是一个矩形的盒子。这个盒子包含了内容(Content),内边距(Padding),文本边框(Border),外边距(Margin)。
在这里插入图片描述
盒子模型的相关属性:

属性名说明
内容Content盒子包含的实际内容,比如:文本,图片等
内边距Padding围绕在内容的内部,是内容与边框之间的空间。可以使用padding属性来设置。
边框Border边框围绕在内边距的外部,是盒子的边界,可以使用border属性来设置。
外边距Margin围绕在边框的外部,是盒子与其他元素之间的空间。可以使用Margin属性来设置。

以边框为例,其他3个属性与边框类似。

通过border属性可以设置边框的宽度,颜色样式,border属性是一个复合属性。

在这里插入图片描述

边框的样式可以是solid(实线),dotted(点线),dashed(虚线),double(双实线)

在这里插入图片描述

对于上面的border-的三个属性,依然是复合属性。通过对border-width来设置4个边框。
border-width属性设置边框的宽度可以给4个不同的属性值,4个不同的属性值根据上右下左的顺序(顺时针)依次匹配。
同理也可以给border-style添加4个不同的属性等等。

在这里插入图片描述

给单一的边框设置样式,例如border-left,也是一个复合属性,和其他的不同的是,border-left只对左边框属性进行更改,同理其他也类似。

在这里插入图片描述
在这里插入图片描述

网页布局方式

传统网页布局方式:

  • 标准流(普通流、文档流):网页按照元素的书写顺序依次排列。标准流由块元素和行内元素按照默认规定方式来排列,块级就是占一行,行内元素一行放好多个元素。
  • 浮动
  • 定位
  • Flexbox和Grid(可以实现复杂的自适应布局)

这几种布局方式主要是来摆盒子,将盒子摆放到相应的位置。

浮动

浮动相对于标准流来讲 可以改动元素的默认排列顺序,让网页更加灵活多变。浮动最典型应用:让多个块级元素在同一行内排列显示。
浮动属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块会另一个浮动框的边缘,这样即可以使得元素进行浮动。

浮动和行内块的区别:浮动的元素是相互贴靠在一起的不会有缝隙,如果父级宽度装不下这些盒子,多出来的盒子则另起一行,使用行内块元素,彼此之间是有空隙的。
浮动是相对于父元素进行浮动的,只会在父元素的内部进行移动。

选择器{
float: left/right/none;
}

浮动的三大特性:

  • 脱标:脱离标准流
  • 一行显示,顶部对齐
  • 具备行内块元素特性

在这里插入图片描述

给块级元素设置浮动属性。

在这里插入图片描述

左浮动占满一行后排在下一行,右浮动占满一行后排在下一行。

在这里插入图片描述
在这里插入图片描述

如果将父类的高度去掉,盒子出现浮动,此时父元素就出现了坍塌。

在这里插入图片描述

由于盒子出现了高度的坍塌,导致文本出现了两个浮动的盒子中间。这时就需要清除浮动。

在这里插入图片描述
如何清除浮动?
1、在浮动的父元素中添加一个属性overflow,属性值hidden。
在这里插入图片描述
2、使用为元素伪元素选择器。
在这里插入图片描述

定位

定位方式: 定位布局可以精准定位,但缺乏灵活性。

  • 相对定位:相对于元素在文档流中的正常位置进行定位。
  • 绝对定位:相对于其最近的已经定位的祖先元素进行定位,不占据文档流。
  • 固定定位:相对于浏览器窗口进行定位,不占据文档流,固定在屏幕上的位置,不随滚动而移动。

相对定位:
在这里插入图片描述

改变left right等属性后,相对位置发生变化,但是normal盒子并没有移动,相对定位的元素并不会脱离正常的文档流。

在这里插入图片描述
绝对定位:
在这里插入图片描述
在这里插入图片描述

在.box-absolute中加position: absolute; 后,这里绝对定位的元素就脱离了正常的文档流。4

固定定位:
固定定位是相对于浏览器窗口进行定位的,即使页面滚动,元素依然保持在窗口的相同位置。
在这里插入图片描述

此时无论怎样滚动鼠标,蓝色方块都会存在。

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

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

相关文章

TabLayout预览不了?

<TableLayoutandroid:layout_width"wrap_content"android:layout_height"wrap_content"/> 当然预览不了了&#xff0c;这其实不是我要的控件。 而实际需要的是TabLayout 不是TableLayout &#xff01;&#xff01;&#xff01; <com.google.an…

机器学习——感知机模型

机器学习系列文章 入门必读&#xff1a;机器学习介绍 文章目录 机器学习系列文章前言1. 感知机1.1 感知机定义1.2 感知机学习策略 2. 代码实现2.1 构建数据2.2 编写函数2.3 迭代 3. 总结 前言 大家好&#xff0c;大家好✨&#xff0c;这里是bio&#x1f996;。这次为大家带来…

lvs+keepalive

虚拟路由冗余协议(Virtual Router Redundancy Protocol&#xff0c;简称VRRP) VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;通过配置虚拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。 协议版本: VRRPv2&#xff08;常用&…

日常生活小技巧 -- USR-TCP232-M4(读取IP)

下载&#xff1a;[Configuration Software]USR-TCP232-M4_V2.3.4.106

Vue2+3

vue相关介绍 Vue的两种使用方式&#xff1a; 1、vue核心包开发 场景&#xff1a;局部模块改造 2、vue核心包&vue插件工程化开发 场景&#xff1a;整站开发 概念&#xff1a;vue是用于构建用户界面的渐进式框架 创建vue实例 创建Vue实例&#xff0c;初始化渲染步骤&am…

Unity类银河恶魔城学习记录8-4 P80 Blackhole ability state源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Entity.cs using System.Collections; using System.Collections.Generic…

Windows系统获取硬盘读写速度(固态、机械通用)

管理员身份运行cmd&#xff0c;注意不要用powershell&#xff0c;可能会闪退 运行命令 winsat disk -drive C 获得C盘的读写速度 同理 winsat disk -drive D 可获得D盘的读写性能

【产品文档分类及撰写路径】

一、产品文档的分类 产品文档根据所处阶段和面相对象的差异大致可以分为三类&#xff1a; 商业需求文档 (BRD)&#xff1a;商业需求文档是面向公司高层和项目组&#xff0c;目的是为了获得资金、资源支持。市场需求文档 (MRD)&#xff1a;市场需求文档是面向运营和市场销售人员…

Python读取.csv/.txt文件并画图

文章目录 读取.txt文件并画出每列数据读取.csv文件并画出每列数据python绘图的基本知识补充 读取.txt文件并画出每列数据 main.ipynb //注意文件类型为.ipynbimport matplotlib.pyplot as plt import numpy as npdata np.loadtxt(result.txt) fig plt.figure(dpi100,figsize…

哪个牌子宠物空气净化器好?质量好的宠物空气净化器推荐

即使我们很爱自家的宠物&#xff0c;但我们也无法否认处理房间里飘荡的宠物毛发和皮屑&#xff0c;以及那些令人不快的气味&#xff08;比如地毯上的意外和垃圾桶里的气味&#xff09;的挑战。对于过敏患者来说&#xff0c;这几乎是无法忍受的。寻找有效的方法来减少这些问题对…

四个有用的Android开发技巧

一. 通过堆栈快速定位系统版本 这个地方主要分享大家两个个技巧&#xff0c;通过问题堆栈简快速定位当前系统版本&#xff1a; 1. 快速区分当前系统版本是Android10以下&#xff0c;还是Android10及以上&#xff1b; 首先Android10及以上引入了一个新的服务Service&#xff…

程序异常结束退出 无输出 无显式报错日志 爆栈

需求 开一个很大的数组&#xff08;300万&#xff09; ❗ 错误示例 #include <stdio.h>int main() {int size 3000000;int a[size];a[size-1] 999;printf("%d",a[size-1]);return 0; }&#x1f60b; 解决方案 局部变量存储在栈空间 &#xff08;较小&…

【数据结构】哈希

在一个数据序列中查找某一个数据元素&#xff0c;是数据管理时经常涉及的&#xff0c;通常以比较的方式来完成&#xff0c;典型的案例有无序序列的暴力查找&#xff08;O(N)&#xff09;、有序序列的二分查找&#xff08;O(logN)&#xff09;、平衡搜索树&#xff08;O(logN)&a…

CentOS网络故障排查秘笈:实战指南

前言 作为一名热爱折腾 Linux 的技术达人&#xff0c;我深知网络故障会让人抓狂&#xff01;在这篇文章里&#xff0c;我和你分享了我的心得体会&#xff0c;从如何分析问题、识别瓶颈&#xff0c;到利用各种神器解决网络难题。不管你是新手小白还是老鸟大神&#xff0c;这里都…

Get了!原来朋友圈定时发布如此简单!

你是不是也有这样的烦恼&#xff1f;微信号太多&#xff0c;有时候会顾不上发朋友圈&#xff1f; 别担心&#xff01;微信管理系统来帮你解决这个问题&#xff0c;实现朋友圈定时发布&#xff01;让我们一起来看看如何利用微信管理系统的强大功能来提升我们的社交媒体效率吧。…

Material Studio 中 DMol3 计算材料吸附能

1.先导入Cif文件 2.切表面 3.沿着你要切的晶面切 4.扩胞 5.加真空层&#xff08;一般加10埃&#xff09; 现在就是这样的了 6.然后对其结构优化&#xff08;高斯几何优化&#xff09; 7.再在体系上加原子或者想要的材料 8.Outmal文件中最后的Ef就是整个体系的能量&#xff0…

WPF中如何设置自定义控件(四)

在上一节讲到过将自定义界面进行左右分割,左边作为登录的用户信息和菜单&#xff1b;右边作为详情展示界面。 这节准备在上一节的基础上对左侧部分进行细分&#xff0c;完善功能&#xff0c;左侧的内容准备做两部分填充&#xff1a;一是登录用户的信息&#xff0c;一是菜单。因…

牛客网 华为机试 坐标移动

本题是需要将输入的字符串&#xff0c;得到移动位置的信息&#xff0c;同时要判断移动信息的合法性。 所以我们可以考虑先通过正则表达式过滤得到正确的字符串。 正确的字符串应该以ADWS其中一个字母开头&#xff0c;然后后面接着1个或者2个&#xff08;0-9&#xff09;的数字。…

护眼台灯哪个品牌最好?2024五款主流台灯实测推荐!

对很多家长来说&#xff0c;孩子的健康比什么都重要。不过现在的儿童青少年近视率却非常高&#xff0c;正因为如此护眼台灯就一直是家长十分关注的灯具。可如今市场中却存在很多劣质产品&#xff0c;忽视产品做工以及选材用料等问题&#xff0c;导致照明体验感差、使用不方便&a…

大华IPC网络摄像机如何保存视频

一、背景 通常网络相机&#xff08;IPC&#xff09;不会自带存储功能&#xff0c;需要接入录像机&#xff08;NVR&#xff09;进行保存。 其中NVR也分软件存储及硬件存储&#xff0c;这里不提&#xff0c;这边单独说FTP存储 二、配置前提 要配置FTP存储需要&#xff1a;①网络…