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下篇更新,最后写作不易,点个赞支持一下吧……

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【低代码开发】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

谷粒商城实战笔记-175~177-商城业务-检索服务-检索查询接口开发

文章目录 一&#xff0c;175-商城业务-检索服务-检索查询参数模型分析抽取二&#xff0c;176-商城业务-检索服务-检索返回结果模型分析抽取三&#xff0c;177-商城业务-检索服务-检索DSL测试-查询部分四&#xff0c;178-商城业务-检索服务-检索DSL测试-聚合部分问题记录解决方案…

RCE之无参数读取文件总结

RCE漏洞(Remote Code|Command Execute)&#xff1a; 是指由于程序中预留了执行代码或者命令的接口&#xff0c;并且提供了给用户使用的界面&#xff0c;导致被黑客利用&#xff0c; 控制服务器。 代码执行漏洞原理&#xff1a; 传入php代码到执行函数的变量&#xff0c;客户端…

IIC 通信协议详解

目录 一、概述二、I2C 详解1、I2C 总线简介2、I2C 协议相关知识2.1 起始位2.2 停止位2.3 数据传输2.4 应答信号2.5 I2C 设备地址格式2.5 I2C 时序图2.5.1 I2C 写时序2.5.2 I2C 读时序2.5.3 单个/多个字节的写入/读取 3、时钟同步和仲裁3.1 时钟同步3.2 时钟仲裁 一、概述 IIC …

Fal.ai Flux 1-Pro/Viva.ai/哩布哩布AI:AI绘图部分免费工具+原图提示词Prompt

目录 #1 找软件 #2 懂提示词 #3 更难的一步&#xff0c;会英文 我个人认为&#xff0c;想要玩文生图&#xff0c;你要会3个步骤&#xff1a; #1 找软件 主流文生图软件&#xff1a;Midjourney、Stable Diffusion、Dall-E 3 巧了&#xff0c;我用的都是小众、免费的画笔工…

【Linux】守护进程:containerd的使用教程

这里写目录标题 前言一. ctr1.1 ctr CLI1.2 ctr 调试 二、 创建 container2.1 进入 NewContainer2.2 ContainerService().Create 前言 介绍了 kubelet 通过 cri 接口和 containerd 交互的过程&#xff0c;containerd 源码分析&#xff1a;启动注册流程 介绍了 containerd 作为…

赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!

先赞后看&#xff0c;Java进阶马上一大半 海外geeksforgeeks网站画了这么一张Set集合的层次结构图&#xff0c;基本把Set集合涉及的常用类关系给标明了。 大家好&#xff0c;我是南哥。 一个Java学习与进阶的领路人&#xff0c;相信对你通关面试、拿下Offer进入心心念念的公司…

arthas使用

1.安装arthas 我的是windows #打开cmd&#xff0c;执行以下命令 &#xff0c;下载jar curl -O https://arthas.aliyun.com/arthas-boot.jar2.启动本地的idea项目 3.进入到jdk的bin文件夹 jdk的配置在“高级系统设置” 进入jdk的bin目录 4.启动arthas 5.arthas使用 trace 类…

Elasticsearch自动补全功能实践与Java API应用

Elasticsearch是一个强大的搜索引擎&#xff0c;它不仅支持全文搜索&#xff0c;还提供了自动补全功能&#xff0c;可以显著提升用户体验。自动补全功能允许用户在输入查询时实时显示建议项&#xff0c;帮助用户快速找到所需信息。本文将介绍如何使用Elasticsearch的RestHighLe…

探索Java Stream API:高效处理集合的利器

文章目录 一、Stream API简介1.1 什么是Stream&#xff1f;1.2 Stream的特点 二、Stream API的基本操作2.1 创建Stream2.2 中间操作2.3 终端操作 三、Stream API的高级应用3.1 并行Stream3.2 复杂数据处理3.3 Stream与Optional 四、最佳实践例子 1: 筛选和映射例子 2: 排序和收…

什么是流批一体?怎样理解流批一体?

目录 一、流式处理与批量处理概述 1.流式处理 2.批量处理 3.流批一体的定义 二、流批一体的关键特点 三、流批一体的技术实现 四、应用场景 五、实施流批一体的考虑因素 流批一体听起来很简单&#xff0c;但内涵却十分复杂。它包含了计算语义、编程模型、API、调度、执行、shuf…

html+css+js网页制作 京东首页官网 ui还原度100%

htmlcssjs网页制作 京东首页官网 ui还原度100% 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 …

微服务系列:Spring Cloud 之 Feign、Ribbon、Hystrix 三者超时时间配置

Feign 自身有超时时间配置 Feign 默认集成的 Ribbon 中也有超时时间配置 假如我们又使用了 Hystrix 来实现熔断降级&#xff0c;Hystrix 自身也有一个超时时间配置 注: spring-cloud-starter-openfeign 低一点的版本中默认集成的有 Hystrix&#xff0c;高版本中又移除了。 …

x264 编码器 SSIM 算法源码分析

SSIM SSIM(Structural Similarity Index)是一种用于衡量两幅图像之间视觉相似度的指标。它不仅考虑了图像的亮度、对比度和饱和度,还考虑了图像的结构信息。SSIM的值介于-1到1之间,值越接近1表示两幅图像越相似。 SSIM是基于以下三个方面来计算的: 亮度(Luminance):比…

MLM之GPT-4o:在GPT-4o的806版本的 API 中引入结构化输出—可以可靠地遵循开发人员提供的 JSON 模式

MLM之GPT-4o&#xff1a;在GPT-4o的806版本的 API 中引入结构化输出—可以可靠地遵循开发人员提供的 JSON 模式 导读&#xff1a;2024年8月6日&#xff0c;OpenAI推出了新的API功能"结构化输出"&#xff0c;旨在更好地帮助人们理解和与大型语言模型的输出进行交互。这…

Linux系统编程(10)线程资源回收和互斥锁

一、pthread_cancel函数 pthread_cancel 函数用于请求取消一个线程。当调用 pthread_cancel 时&#xff0c;它会向指定的线程发送一个取消请求。 #include <pthread.h>int pthread_cancel(pthread_t thread);thread&#xff1a;要发送取消请求的线程标识符。 成功时&a…

Dify 开源大语言模型(LLM) 应用开发平台如何使用Docker部署与远程访问

目录 ⛳️推荐 前言 1. Docker部署Dify 2. 本地访问Dify 3. Ubuntu安装Cpolar 4. 配置公网地址 5. 远程访问 6. 固定Cpolar公网地址 7. 固定地址访问 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享…

Javascript反调试实现判断用户是否打开了浏览器控制台

前言 晓杰最近在研究如何防止用户恶意调试前端网页代码&#xff0c;防止打开控制台进行调试&#xff0c;首先禁用了浏览器页面右键事件和F12等快捷键&#xff01;然后利用了创建元素是否成功方式进行校验,具体实现代码如下。 代码 document.addEventListener(keydown, functi…

(贪心) LeetCode 376. 摆动序列

原题链接 一. 题目描述 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2,…

【LeetCode每日一题】——623.在二叉树中增加一行

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先遍历 二【题目难度】 中等 三【题目编号】 623.在二叉树中增加一行 四【题目描述】…