当前位置: 首页 > news >正文

Web开发-CSS篇-上

CSS的发展历史

        CSS(层叠样式表)最初由万维网联盟(W3C)于1996年发布。CSS1是最早的版本,它为网页设计提供了基本的样式功能,如字体、颜色和间距。随着互联网的发展,CSS也不断演进:

  • CSS1(1996年):引入基本的样式功能。
  • CSS2(1998年):增加了定位、媒体类型和更复杂的选择器。
  • CSS3(2001年):引入模块化设计,包括媒体查询、动画、过渡等。

CSS的发展使得网页设计更加灵活,能够适应不同设备和屏幕尺寸。

CSS与HTML的关系

        CSS与HTML的关系密不可分。HTML用于构建网页的结构和内容,而CSS则负责控制这些内容的外观和布局。通过将样式与内容分离,开发者可以更轻松地管理和维护网页,提高代码的可读性。

为什么要学CSS

学习CSS的原因有很多,包括:

  • 提升用户体验:良好的样式能够提高网页的可读性和可用性。
  • 增强网页可访问性:合理的布局和样式使得内容更易于访问。
  • 职业发展:掌握CSS是成为前端开发者的基本要求,可以增强求职竞争力。

CSS在HTML中的三种引用方式

1. 内联式(行内式)

        内联式是在HTML元素的style属性中直接添加CSS样式。适合简单快速的样式修改,但不推荐大规模使用。

  • 优点:快速方便,不需要额外的文件。
  • 缺点:样式不易维护,无法重用。

2. 嵌入式

        嵌入式CSS是将样式放在HTML文档的<head>部分,使用<style>标签。适用于单个页面的样式管理。

  • 优点:可以集中管理页面样式。
  • 缺点:无法在多个页面间共享样式。

3. 外部式

        外部CSS是通过<link>标签引入一个独立的CSS文件,适合大型项目,样式可以在多个页面间共享。

  • 优点:易于维护和更新,样式可重用。
  • 缺点:需要额外的HTTP请求。
示例: 
<!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>/*css样式:选择器+声明,声明由属性+值构成*/span{color: orange;font-size:30px;}</style><link rel="stylesheet" href="css/studemo1.css"></head>
<body><h4>有志者事竟成</h4><p><span>三天</span>,<span>一个月</span></p><p style="color: red;">大帅比</p><!-- 三种引入方式针对同一标签修饰的优先级问题本质是代码从上至下执行的顺序覆盖问题,其实并无优先级。层叠样式表,顾名思义--></body>
</html>

外部引入的.css文件 

/*引入css的三种方式:
内联式(行内式)
嵌入式
外部式*/
h4{color: blue;}

优先级和权重

CSS的优先级决定了哪些样式会被应用,通常规则如下:

  1. 内联样式具有最高优先级。
  2. 嵌入式样式次之。
  3. 外部样式的优先级最低。

         <!-- 三种引入方式针对同一标签修饰的优先级问题本质是代码从上至下执行的顺序覆盖问题,其实并无优先级。层叠样式表,顾名思义-->

顺便一提,html中注释为:<!--  --> 而在CSS中注释为:/* */   

选择器

什么是选择器?

选择器用于选择要应用样式的HTML元素。选择器可以根据元素的标签、ID、类等进行匹配。

基本选择器

  1. 元素选择器:选择特定标签的元素。

  2. ID选择器:选择具有特定ID的元素,使用#符号。

  3. 类选择器:选择具有特定类的元素,使用.符号。

高级选择器

  1. 后代选择器:选择某个元素内部的所有指定元素。

  2. 子代选择器:选择某个元素的直接子元素。

  3. 交集选择器:选择同时匹配多个选择器的元素。

  4. 组合选择器:选择满足多个条件的元素。

  5. 伪类选择器:选择处于特定状态的元素。

下面示例两个一组,一个html文件,一个是css文件从外部引入 

示例1: 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>人民日报金句 </title><link rel="stylesheet" href="./css/studemo2.css"></head>
<body><p id="top"></p><div id="contains"><!-- 一个标签可以归属多个类 --><h1 class="active title">最走心,最励志的人民日报金句文案 </h1><p>1、人生这条路很长,未来如星辰大海般璀璨,不必踟躇于过去的半亩方塘。那些所谓的遗憾,可能是一种成长;那些曾受过的伤,终会化作照亮前路的光。——《人民日报》</p><p>2、人这辈子千万不要马虎两件事,一是找对爱人,二是找对事业,因为太阳升起时要投身事业,太阳落山时要与爱人相拥的。我们终其一生,都在寻找两样东西,一是价值感,二是归属感…价值感来源于肯定,归属感来源于被爱。——《人民日报》</p><p>3、现在的你,是十年前你的决定,十年后的你,是现在你的决定。种一棵树,最好是十年前,其次是现在。想要改变,从此刻开始,一切还不晚。<span id="st">星光不问赶路人,时光不负有心人,</span>愿十年后的今天不为虚度年华儿悔恨,所得皆所愿。我们各自努力,顶峰相见。——《人民日报》</p><img src="./images/01.jpeg" alt=""><p class="active title">4、历经沉浮,休戚与共。然兴衰往复,皆不足为惧,于沉寂中孤守,于浮华中炼心。——《人民日报》</p><p>5、鸟叫虫鸣是自然韵味,车水马驼也是另一种美。教室里朗朗书声,传递出学子们的蓬勃朝气,街头巷尾喧哗的人声,烘托出人间烟火的可贵;列车飞驰的轰鸣,奔跑出社会向前的节拍。但只有当生产生活的声音与自然的声音交汇在一起时,才有最美的和谐乐章。——《人民日报》</p><p>6、你所有的压力,都是因为你太想要。你所有的痛苦,都是因为你太较真了。有些事不能尽你心意,就是提醒你该转弯了。如果事事都如意,那就不叫生活了,所以睡前原谅一切,醒来不问过往,珍惜所有的不期而遇,看淡所有的不辞而别。——《人民日报》</p><img src="./images/02.jpeg" alt="" title="我最帅,哈哈哈!"><p>7、真正有光的人,压的时间越久,深度越深,绽放的光芒才可以灿烂。——《人民日报》</p><p>8、我们希望,瞬间的积淀不要流淌,岁月的馈赠别被消磨,而是在时间的河床上凝聚起沉潜的力量,让我们与时代和社会一起,向阳生长。——《人民日报》</p><p>9、错过无眠的夜晚。错过寂落的叮咛。错过感怀或刺伤,错过滂沱与分享。错过一双蜻蜓的翅膀。错过一缕蚂蚁的浅唱。错过命中那些永不再来的叶落花开春回冬往。错过终于勇敢的沉默,错过早已错过的迷惘。一次错过是过失,一再错过是过错。——《人民日报》</p><img src="./images/03.jpeg" alt="" title=""><p>10、抉择是新生,是涅槃后更为强壮的灵魂,是摧枯拉朽、洗髓换骨后的轻盈如燕,是从悲观中升华出的达观,是最终化成的不老青山。——《人民日报》</p><p>11、不跟生活认输,不向岁月低头,如果风景不够好,就让我们多走几步;如果道路不好走,就让我们放慢脚步,只要还在路上,总能看到想要的风景,总能找到属于自己的方向。——《人民日报》</p><p>12、平和地接纳,不屈地奋斗,坚定地前行,如一泓清泉,静水流深,看似力量并不汹涌澎湃,却能磋磨岩石锋利的尖角,涤荡水中的混沌的杂质,把困难揉碎,长成属于自己的力量。——《人民日报》</p><img src="./images/04.jpeg" alt=""><br><a href="#top">点击回到顶部</a></div></body>
</html>
/*
css常用选择器一、基本选择器-标签(元素)选择器-类(class)选择器-id选择器二、高级选择器-后代选择器-子代选择器-组合选择器-交集选择器-伪类选择器
*/#st{color: blue; font-size: 20px;}.active {color: grey;}
.title{font-size: 30px}p{color: orange; font-size: 18px; font-weight: bold;}

 示例2:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>后代/子代选择器</title><link rel="stylesheet" href="./css/studemo3.css">
</head>
<!-- css高级选择器后代、子代、组合、交集、伪类-->
<body><div class="wrap"><h3>悲观</h3><p>悲观者永远正确<a href="">hello!</a></p><a href="">JJX</a></div><div><p>你好,选择器。</p><a href="">小圆圈</a></div></body>
</html>
/*后代选择器:针对div的后代a标签*/div a{color: orange;font-size: 20px}/*子代选择器*/
.wrap>a{color: pink;}/*组合选择器*/
h3,p{color: red;font-size: 16px;}

 示例3:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>交集/伪类选择器</title><link rel="stylesheet" href="./css/studemo4.css">
</head>
<body><h3>WWW。。。</h3><div><p>JJX,你好!</p></div><p>HELLO</p><a href="#">小布丁</a><div><p id="mi">小米商城</p></div></body>
</html>
/*交集选择器*/
div p{color: green;}
h3{color: blue;}
div ph3{font-size: 16px;font-weight: lighter;}/*伪类选择器*//*link,visted,active只针对于a标签,hover所有标签都适用*/a:link{color: grey;}	/*未访问过的状态*/
a:visted{color: black;}	/*访问过后的状态*/
a:hover{color: red;}	/*悬浮时的状态*/
a:active{color: green;} /*鼠标摁住的状态*/#mi:hover{color: blue;}div:hover{background-color: orangered;}
效果展示:

为点击小米商城时,为绿色,当鼠标悬浮时字体变为蓝色,同时背景变为橙色

选择器权重 /继承

    <!-- 选择器权重: 内联式>id选择器>类选择器>元素选择器 -->

示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>继承</title><link rel="stylesheet" href="./css/studemo5.css"></head>
<body><div><ul><li><p>你好</p></li></ul></div><!-- 选择器权重: 内联式>id选择器>类选择器>元素选择器 --></body>
</html>

        此外,标签的属性可以继承,学过面向对象的编程语言都知道继承是什么,我就不多解释,毕竟小白不可能来看我的文章 ,但有的属性可以继承,有的不能。

/*继承*/
body{color: green;font-size: 18px;border: 2px solid yellowgreen;/*此属性不会被继承*/
}
效果展示:

 !important属性

示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>字体属性</title><link rel="stylesheet" href="./css/studemo6.css"></head>
<body><div><p style="color:green;">hello world!你好,世界!</p></div></body>
</html>
/* !impoortant可超出选择器权重之外进行修改 */
p{color: purple !important;
}

        !important是能够打破权重规则,对其进行强制的修改,只要经!important修饰的属性,网页所表现出来的一定是!important所修饰的值,不建议用,平时也用的少,了解即可,此处内联式为绿色,外部引入!important紫色,所以最终结果一定是紫色。

效果展示:

字体属性

字体属性决定了文本的外观。常见的字体属性包括:

  • font-family:设置字体。
  • font-size:设置字体大小。
  • font-weight:设置字体粗细。
  • color:设置字体颜色。
示例: 
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>字体属性</title><link rel="stylesheet" href="./css/studemo6.css"></head>
<body><div><p style="color:green;">hello world!你好,世界!</p></div></body>
</html>
/* !impoortant可超出选择器权重之外进行修改 */
p{color: purple !important;}
body{color: #FFFFFF; /*16进制表示颜色*/font-family:Helvetica Neue, Helvetica, Arial, Microsoft Yahei, Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei;font-size: 20px;font-style: italic; /*转为斜体*/font-weight: 600;	/*font-weight: bold;*/text-decoration: underline;
}

font-family设置的字体,按顺序优先执行,如果没有第一种字体则会显示第二种字体,以此类推,如果都没有,则会显示浏览器默认字体;

font-size如果不设置,默认为16px;

三种颜色表示方式:
color: red; 单词表示,不常用
color: rgb(255, 0, 255); 颜色范围[0,255] ,透明度[0,1]
color: rgba(0, 0, 0, 1.0);
color: ##AAAE38; 16进制表示,常用

像素单位
px是绝对单位
em,rem是相对单位

字体粗细表示有两种方式,
font-weight: bold;不常用
font-weight: 500;常用,范围[100,900],normal为默认值400

font的另一种表示: 

如此多的font表示起来不方便,还有另一种表示方法:

body {font: 14px / 1.5 Helvetica Neue, Helvetica, Arial, Microsoft Yahei, Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei, sans-serif;color: #333;background-color: #fff;min-width: 1226px;

- `font: 14px / 1.5 Helvetica Neue, Helvetica, Arial, Microsoft Yahei, Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei, sans-serif;`  
  - 这一行定义了字体的大小、行高和字体系列。
    - `14px` 是字体的大小。
    - `1.5` 是行高,相对于字体大小的比例(即行高为字体大小的 1.5 倍)。
    - 接下来的字体系列是一个回退字体列表,如果第一种字体不可用,浏览器会依次尝试使用后面的字体,直到找到可用的字体。最终的 `sans-serif` 是一个通用字体类别,表示无衬线字体。

- `color: #333;`  
  - 这行设置文本颜色为深灰色(十六进制颜色代码 #333)。

- `background-color: #fff;`  
  - 这行设置背景颜色为白色(十六进制颜色代码 #fff)。

- `min-width: 1226px;`  
  - 这行设置 `body` 元素的最小宽度为 1226 像素。无论屏幕大小如何,`body` 的宽度不会小于这个值。

 

文本属性

文本的属性包括:

  • text-align:设置文本对齐方式。
  • line-height:设置行高。
  • letter-spacing:设置字间距。
示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文本属性</title><style>.box p{background-color: lightpink;font-size: 20px;color:#F6730A;text-indent: 2em;/*text-indent: 40px;*//*行高*/line-height: 2em;/*line-height: 40px;*//*文字间距*/letter-spacing: 5px;/*文本对齐方式:center,left,right*/text-align:left;	}#lam{text-align: center;/*单词间距*/word-spacing:20px;}</style></head><body><div class="box"><p>当今社会是科学技术和信息时代迅猛发展的时代,随着计算机的普及和广泛使用,掌握和应用计算机已经是科学发展和走向未来信息化时代的需要,且已成为当今合格人材的必备素质之一。作为当今社会的主人,掌握电脑操作这一信息处理的工具是尤为重要的。现代教育技术迅速发展,需要学习的知识越来越多,知识更新的周期越来越短。为了培养优秀的跨世纪人材,必须提高教学效益,改革教学方法与教学手段。才能适应现代教育技术的发展。</p></div><p id="lam">hello world!</p></body>
</html>
效果展示:

  

标签元素分类:

HTML标签可以分为以下几类:

  1. 块状元素:如<div><p>,可以设置宽高,独占一行。
  2. 行内元素:如<span><a>,不能设置宽高,紧随其后排列。
  3. 行内块元素:如<img><button>,可以设置宽高,独占一行。

各元素的特点

  • 块状元素:可以设置宽高,独占一行。
  • 行内元素:不能设置宽高,元素在一行内流动。
  • 行内块元素:既可以设置宽高,也不独占一行。
示例: 
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>元素分类</title><style>div{background-color: green;width: 200px;height: 20px;}input{width: 200px;height: 200px;}img{width: 500px;height: 500px;}</style>
</head>
<body><!-- 1.块状元素(1)独自占一行;(2)可以设置宽高,如果不设置默认为父标签的100%宽度高度;2.行内元素(1)都显示在一行;(2)不能设置宽高;3.行内快元素(1)在一行内显示;(2)可以设置宽高;-->块状元素<div>JJX</div><p>JJX</p><h3>h系列标签都属块状元素标签</h3><ul><li>JJX</li></ul><ol><li>JJX</li></ol><table><th></th><tr></tr></table><dl><dd></dd></dl><hr>行内元素<br><a href=""></a><span></span><hr>行内块元素<br><input type="text"><img src="" alt=""></body>
</html>

display属性

display属性用于控制元素的显示方式:

  • block:块状元素,独占一行。
  • inline:行内元素,不独占一行。
  • inline-block:行内块元素,既可以设置宽高,又不独占一行。

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>display属性</title><style>div{background-color: orange;width: 200px;height: 200px;
/*			display: none;*/}span{width: 200px;
/*			height: 200px;*/text-align: center;line-height: 40px;background-color: hotpink;display: inline-block;/*转成行内块属性}</style>
</head>
<body><div><p>JJX</p></div><span>小圆圈</span></body>
</html>

效果展示:

 小米商城顶部栏复刻

最后做个示例,用小米商城导航栏做个演示,先看原图:

 我们要复刻导航栏部分,这里是代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>小米商城顶部栏复刻</title><style>.top_bar{background-color: #333;width: 100%;height: 40px;}.top_bar a{display: inline-block;line-height: 40px;color: #b0b0b0;text-decoration: none;}.top_bar span{color: #424242;}.top_bar a:hover{color: #fff;}</style>
</head>
<body><div class="top_bar"><a href="https://www.mi.com/">小米官网</a><span>|</span><a href="https://www.mi.com/shop">小米商城</a><span>|</span><a href="https://hyperos.mi.com/" target="_blank">小米澎湃OS</a><span>|</span><a href="https://www.xiaomiev.com/" target="_blank">小米汽车</a><span>|</span><a href="https://i.mi.com/" target="_blank">云服务 </a><span>|</span> <a href="https://iot.mi.com/" target="_blank">IoT</a></div></body>
</html>

来看效果

         这里用display属性转换a标签为行内块才得以设置行高,如果不转换,a标签作为行内元素是不能设置行高的,正因如此才能使a标签的范围变大,还使用text-decoration: none;去掉了a标签自带的下划线,利用伪类选择器hover,悬浮时字体呈现高亮。

总结: 

        我们回顾了CSS的发展历史,了解了它与HTML的紧密联系以及学习CSS的必要性。我们还详细介绍了CSS在HTML中的三种引用方式及其优缺点,以及如何通过选择器来精准地控制网页元素的样式。

 剩下内容会作为CSS下篇更新,最后写作不易,点个赞支持一下吧……

相关文章:

Web开发-CSS篇-上

CSS的发展历史 CSS&#xff08;层叠样式表&#xff09;最初由万维网联盟&#xff08;W3C&#xff09;于1996年发布。CSS1是最早的版本&#xff0c;它为网页设计提供了基本的样式功能&#xff0c;如字体、颜色和间距。随着互联网的发展&#xff0c;CSS也不断演进&#xff1a; C…...

在mac上通过 MySQL 安装包安装 MySQL 之后,终端执行 mysql 命令报错 command not found: mysql

在 mac 上通过 MySQL 安装包安装 MySQL 之后&#xff0c;如果在终端中运行 mysql 命令时遇到 command not found: mysql 错误&#xff0c;通常是因为 MySQL 的二进制文件没有被添加到系统的 PATH 环境变量中。 解决方法&#xff1a;手动添加 MySQL 到 PATH 环境变量 1.找到 M…...

Unity入门4——常用接口

C#中常用类和接口 DateTime&#xff1a;表示某个时刻 DateTime.Now&#xff1a;拿到系统当前时间DtaTime.TimeOfDay&#xff1a;获取此实例当天的时间 Quaternion&#xff1a;用来旋转&#xff0c;采用四元数&#xff0c;由w&#xff08;实部&#xff09;和x,y,z&#xff08;虚…...

职业教育云计算实验实训室建设应用案例

云计算作为信息技术领域的一次革命&#xff0c;正在深刻改变着我们的工作和生活方式。随着企业对云计算技术的依赖日益加深&#xff0c;对具备云计算技能的专业人才的需求也日益迫切。职业院校面临着培养符合行业标准的云计算人才的挑战。唯众凭借其在教育技术领域的专业经验&a…...

MySQL-MHA高可用配置及故障切换

目录 案例搭建 1&#xff1a;所有服务器关闭防火墙 2&#xff1a;设置hosts文件 3&#xff1a;安装 MySQL 数据库 4&#xff1a;修改参数 5&#xff1a;安装 MHA 软件 6&#xff1a;配置无密码认证 7&#xff1a;配置 MHA 8&#xff1a;模拟 master 故障 MHA(MasterHi…...

Sentinel 滑动时间窗口源码分析

前言&#xff1a; Sentinel 的一个重要功能就是限流&#xff0c;对于限流来说有多种的限流算法&#xff0c;比如滑动时间窗口算法、漏桶算法、令牌桶算法等&#xff0c;Sentinel 对这几种算法都有具体的实现&#xff0c;如果我们对某一个资源设置了一个流控规则&#xff0c;并…...

猎码安卓APP开发IDE,amix STUDIO中文java,HTML5开发工具

【无爱也能发电】Xili 2024/8/2 10:41:20 猎码安卓APP开发IDE,amix java开发工具 我研发这些只有一小部分理由是为了赚钱&#xff0c;更多是想成就牛逼的技术产品。 目前的产品就够我赚钱的&#xff0c;我持续更新就好了&#xff0c;没必要继续研究。 IDE不赚钱&#xff0c;谁…...

【Deep-ML系列】Linear Regression Using Gradient Descent(手写梯度下降)

题目链接&#xff1a;Deep-ML 这道题主要是要考虑矩阵乘法的维度&#xff0c;保证维度正确&#xff0c;就可以获得最终的theata import numpy as np def linear_regression_gradient_descent(X: np.ndarray, y: np.ndarray, alpha: float, iterations: int) -> np.ndarray:…...

NVIDIA A100 和 H100 硬件架构学习

目前位置NV各种架构代号&#xff1a; NVIDIA GPU 有多个代号和架构&#xff0c;这些架构对应不同的世代和硬件特性。以下是 NVIDIA 主要 GPU 架构及其计算能力&#xff08;Compute Capability&#xff09;代号的简要概述&#xff1a; Tesla 架构 G80、GT200 Compute Capabi…...

企业研发设计协同解决方案

新迪三维设计&#xff0c;20年深耕三维CAD 全球工业软件研发不可小觑的中国力量 2003-2014 年 新迪数字先后成为达 索SolidWorks、 ANSYS Spaceclaim、MSC等三维CAD/CAE 软件厂商的中国研发中心&#xff0c;深度参与国际 一流工业软件的研发过程&#xff0c;积累了丰富的 技术经…...

iOS 18(macOS 15)Vision 中新增的任意图片智能评分功能试玩

概述 在 WWDC 24 中库克“大厨”除了为 iOS 18 等平台重磅新增了 Apple Intelligence 以外&#xff0c;苹果也利用愈发成熟的机器学习引擎扩展了诸多内置框架&#xff0c;其中就包括 Vision。 想用本机人工智能自动为我们心仪的图片打一个“观赏分”吗&#xff1f;“如意如意&…...

如何实现若干子任务一损俱损--浅谈errgroup

errgroup 是 Go 语言官方扩展库 x/sync 中的一个包&#xff0c;它提供了一种方式来并行运行多个 goroutine&#xff0c;并在所有 goroutine 都完成时返回第一个发生的错误&#xff08;如果有的话&#xff09;。这对于需要并行处理多个任务并等待它们全部完成&#xff0c;同时需…...

并查集的基础题

## 洛谷p1196 绿 35m 点到祖先的距离 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N3e510; int f[N],dist[N],num[N];//num计算祖先有多少儿子 &#xff0c;dist计算距离祖先有几个 int zx(int x){ if(f[x]x)return x;//x没爸爸 e…...

[论文翻译] LTAChecker:利用注意力时态网络基于 Dalvik 操作码序列的轻量级安卓恶意软件检测

LTAChecker: Lightweight Android Malware Detection Based on Dalvik Opcode Sequences using Attention Temporal Networks 摘要&#xff1a; Android 应用程序已成为黑客攻击的主要目标。安卓恶意软件检测是一项关键技术&#xff0c;对保障网络安全和阻止异常情况至关重要。…...

HTTPS链接建立的过程

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;建立链接的过程主要是通过TLS&#xff08;Transport Layer Security&#xff09;协议来实现的。HTTPS的链接建立过程可以分为以下几个步骤&#xff1a; 1. **客户端发起请求** - 客户端向服务器发送一个请求&…...

文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库&#xff0c;不用安装Microsoft Office&#xff0c;就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…...

IP地址封装类(InetAddress类)

文章目录 前言一、IP地址是什么&#xff1f;二、IP地址封装类 1.常用方法2.实操展示总结 前言 当我们想要获取到通信对方的IP地址、主机地址等信息时&#xff0c;我们可以使用InetAddress类。InetAddress类在java的net包中。 一、IP地址是什么&#xff1f; IP地址 (Internet Pr…...

数据库设计规范化

在数据库设计中&#xff0c;尤其是在关系型数据库管理系统中&#xff0c;规范化&#xff08;Normalization&#xff09;是一种通过减少数据冗余和依赖关系来优化数据库表结构的过程。规范化可以确保数据的完整性和减少数据更新时的问题。规范化的过程通常遵循一系列标准或范式&…...

预约咨询小程序搭建教程,源码获取,从0到1完成开发并部署上线

目录 一、明确需求与规划功能 二、选择开发工具与模板 三、编辑小程序内容 四、发布与运营 五、部分代码展示 制作一个预约咨询小程序&#xff0c;主要可以分为以下几个步骤&#xff1a; 一、明确需求与规划功能 明确需求&#xff1a; 1.确定小程序的服务对象&#xf…...

leetcode217. 存在重复元素,哈希表秒解

leetcode217. 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1] 输出&#xff1a;true 示例 2&#x…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...