2024 CSS - 基础保姆级教程系列一

CSS盒子模型

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

<style>.box {width: 200px;height: 100px;padding: 20px;}
</style>
<div class="box">盒子模型
</div>

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

<style>.box {width: 200px;height: 100px;padding: 20px;box-sizing: border-box;}
</style>
<div class="box">盒子模型
</div>

这时候你就可以发现 盒子所占的宽度为200px;

如何实现两栏布局右侧自适应和三栏布局中间自适应

在这里插入图片描述

<style>.box{overflow: hidden; BFC}.left {float: left;width: 200px;background-color: gray;height: 400px;}.right {margin-left: 210px;background-color: lightgray;height: 200px;}
</style>
<div class="box"><div class="left"> </div><div class="right"> </div>
</div>

Flex弹性盒子布局

<style>.box{display: flex;}.left {width: 100px;}.right {flex: 1;}
</style>
<div class="box"><div class="left"> Left</div><div class="right"> Right </div>
</div>

三栏布局

在这里插入图片描述

<style>​.wrap {background: #eee;overflow: hidden; <!-- 生成BFC,计算高度时考虑浮动的元素 -->​padding: 20px;height: 200px;}​.left {width: 200px;height: 200px;float: left;background: coral;}​.right {width: 120px;height: 200px;float: right;background: lightblue;}​.middle {margin-left: 220px;height: 200px;background: lightpink;margin-right: 140px;}</style><div class="wrap"><div class="left">左侧</div><div class="right">右侧</div><div class="middle">中间</div></div>

原理如下:​

  • 两边固定宽度,中间宽度自适应。​
  • 利用中间元素的margin值控制两边的间距​
  • 宽度小于左右部分宽度之和时,右侧部分会被挤下去​
  • 这种实现方式存在缺陷:​
  • 主体内容是最后加载的。
  • 右边在主体内容之前,如果是响应式设计,不能简单的换行展示​

两边使用 absolute,中间使用 margin​
基于绝对定位的三栏布局:注意绝对定位的元素脱离文档流,相对于最近的已经定位的祖先元素进行定位。无需考虑HTML中结构的顺序。

<style>​.container {position: relative;}​​.left,​.right,​.main {height: 200px;line-height: 200px;text-align: center;}​
​.left {position: absolute;top: 0;left: 0;width: 100px;background: green;}​
​.right {position: absolute;top: 0;right: 0;width: 100px;background: green;}​
​.main {margin: 0 110px;background: black;color: white;}</style>​
​
<div class="container"><div class="left">左边固定宽度</div><div class="right">右边固定宽度</div><div class="main">中间自适应</div></div>

实现流程:​

  1. 左右两边使用绝对定位,固定在两侧。​
  2. 中间占满一行,但通过 margin和左右两边留出10px的间隔
    两边使用 float 和负 margin。
<style>​.left,​.right,​.main {height: 200px;line-height: 200px;text-align: center;}​
​.main-wrapper {float: left;width: 100%;}​
​.main {margin: 0 110px;background: black;color: white;}​
​.left,​.right {float: left;width: 100px;margin-left: -100%;background: green;}​
​.right {margin-left: -100px; /* 同自身宽度 */}</style>​
​
<div class="main-wrapper"><div class="main">中间自适应</div></div><div class="left">左边固定宽度</div><div class="right">右边固定宽度</div>

实现过程:​

  • 中间使用了双层标签,外层是浮动的,以便左中右能在同一行展示​
  • 左边通过使用负 margin-left:-100%,相当于中间的宽度,所以向上偏移到左侧​
  • 右边通过使用负 margin-left:-100px,相当于自身宽度,所以向上偏移到最右侧​

缺点:​

  • 增加了 .main-wrapper 一层,结构变复杂​
  • 使用负 margin,调试也相对麻烦
    使用 display: table 实现​
标签用于展示行列数据,不适合用于布局。但是可以使用 display: table 来实现布局的效果
<style>​.container {height: 200px;line-height: 200px;text-align: center;display: table;table-layout: fixed;width: 100%;}​
​.left,​.right,​.main {display: table-cell;}​
​.left,​.right {width: 100px;background: green;}​
​.main {background: black;color: white;width: 100%;}</style>​
​
<div class="container"><div class="left">左边固定宽度</div><div class="main">中间自适应</div><div class="right">右边固定宽度</div></div>

实现原理:​

  • 层通过 display: table设置为表格,设置 table-layout: fixed`表示列宽自身宽度决定,而不是自动计算。​
  • 内层的左中右通过 display: table-cell设置为表格单元。​
  • 左右设置固定宽度,中间设置 width: 100% 填充剩下的宽度

使用flex实现​
利用flex弹性布局,可以简单实现中间自适应​
代码如下:

<style type="text/css">​.wrap {display: flex;justify-content: space-between;}​
​.left,​.right,​.middle {height: 100px;}​
​.left {width: 200px;background: coral;}​
​.right {width: 120px;background: lightblue;}​
​.middle {background: #555;width: 100%;margin: 0 20px;}</style><div class="wrap"><div class="left">左侧</div><div class="middle">中间</div><div class="right">右侧</div></div>

实现过程:​

  • 仅需将容器设置为display:flex;,​
  • 盒内元素两端对其,将中间元素设置为100%宽度,或者设为flex:1,即可填充空白​
  • 盒内元素的高度撑开容器的高度​

优点:​

  • 结构简单直观​
  • 可以结合 flex的其他功能实现更多效果,例如使用 order属性调整显示顺序,让主体内容优先加载,但展示在中间​

grid网格布局​
代码如下:

<style>​.wrap {display: grid;width: 100%;grid-template-columns: 300px auto 300px;}​
​.left,​.right,​.middle {height: 100px;}​
​.left {background: coral;}​
​.right {width: 300px;background: lightblue;}​
​.middle {background: #555;}</style><div class="wrap"><div class="left">左侧</div><div class="middle">中间</div><div class="right">右侧</div></div>

CSS中,有哪些方式可以隐藏页面元素?有什么区别?

一、前言​
在平常的样式排版中,我们经常遇到将某个模块隐藏的场景​
通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的​
但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法​

二、实现方式​
通过css实现隐藏元素方法有如下:​
display:none​
visibility:hidden​
opacity:0​
设置height、width模型属性为0​
position:absolute​
clip-path​

display:none​
设置元素的display为none是最常用的隐藏元素的方法:

.hide {display:none;}

将元素设置为display:none后,元素在页面上将彻底消失​
元素本身占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘​
消失后,自身绑定的事件不会触发,也不会有过渡效果​
特点:元素不可见,不占据空间,无法响应点击事件

visibility:hidden​
设置元素的visibility为hidden也是一种常用的隐藏元素的方法​
从页面上仅仅是隐藏该元素,DOM结果均会存在,只是当时在一个不可见的状态,不会触发重排,但是会触发重绘;

.hidden{visibility:hidden​
}

给人的效果是隐藏了,所以他自身的事件不会触发​
特点:元素不可见,占据页面空间,无法响应点击事件

opacity:0​
opacity属性表示元素的透明度,将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的​
不会引发重排,一般情况下也会引发重绘​

如果利用 animation 动画,对 opacity 做变化(animation会默认触发GPU加速),则只会触发 GPU 层面的 composite,不会触发重绘​

.transparent {opacity:0;}

由于其仍然是存在于页面上的,所以他自身的的事件仍然是可以触发的,但被他遮挡的元素是不能触发其事件的​
需要注意的是:其子元素不能设置opacity来达到显示的效果​
特点:改变元素透明度,元素不可见,占据页面空间,可以响应点击事件

设置height、width属性为0​
将元素的margin,border,padding,height和width等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素​

.hiddenBox {margin:0;border:0;padding:0;height:0;width:0;overflow:hidden;}

特点:元素不可见,不占据页面空间,无法响应点击事件​

position:absolute​
将元素移出可视区域

.hide {position: absolute;top: -9999px;left: -9999px;}

特点:元素不可见,不影响页面布局​

clip-path​
通过裁剪的形式

.hide {clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);}

特点:元素不可见,占据页面空间,无法响应点击事件​

小结​
最常用的还是display:none和visibility:hidden,其他的方式只能认为是奇招,它们的真正用途并不是用于隐藏元素,所以并不推荐使用它们.

在这里插入图片描述

行内元素和块级元素有什么区别

行内元素(Inline Elements):​

  • 默认情况下,行内元素在水平方向上以行内的方式显示,不会独占一行。​

  • 行内元素只能容纳文本或其他行内元素,不能容纳块级元素。​

  • 行内元素的宽度和高度由其内容决定,无法设置固定的宽度和高度。​

  • 行内元素可以设置左右的外边距(margin)和内边距(padding),但上下外边距和内边距对行内元素不起作用。​
    常见的行内元素包括 在这里插入图片描述
    等。

块级元素(Block-level Elements):

  • 默认情况下,块级元素会独占一行的空间,即使它们宽度没有填满父元素的水平空间。​

  • 块级元素可以包含其他块级元素和行内元素。​

  • 块级元素的宽度、高度、内外边距都可以通过 CSS 设置。​

  • 块级元素会自动在其前后创建换行。​

常见的块级元素包括

在这里插入图片描述
等。​
通过 CSS 的 display 属性可以修改元素的显示方式,例如将行内元素设置为块级元素或将块级元素设置为行内元素,这样可以改变元素在页面中的布局和显示效果。

em/px/rem/vh/vw 这些单位有什么区别?

一、介绍​
传统的项目开发中,我们只会用到px、%、em这几个单位,它可以适用于大部分的项目开发,且拥有比较良好的兼容性​
从CSS3开始,浏览器对计量单位的支持又提升到了另外一个境界,新增了rem、vh、vw、vm等一些新的计量单位​
利用这些新的单位开发出比较良好的响应式页面,适应多种不同分辨率的终端,包括移动设备等​

二、单位​
在css单位中,可以分为长度单位、绝对单位,如下表所指示

在这里插入图片描述
这里我们主要讲述px、em、rem、vh、vw​

px​
px,表示像素,所谓像素就是呈现在我们显示器上的一个个小点,每个像素点都是大小等同的,所以像素为计量单位被分在了绝对长度单位中​
有些人会把px认为是相对长度,原因在于在移动端中存在设备像素比,px实际显示的大小是不确定​
这里之所以认为px为绝对单位,在于px的大小和元素的其他属性无关​

em​
em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸(1em = 16px)​
为了简化 font-size 的换算,我们需要在css中的 body 选择器中声明font-size= 62.5%,这就使 em 值变为 16px*62.5% = 10px​
这样 12px = 1.2em, 10px = 1em, 也就是说只需要将你的原来的 px 数值除以 10,然后换上 em 作为单位就行了​
特点:

  • em 的值并不是固定的​

  • em 会继承父级元素的字体大小​

  • em 是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸​

  • 任意浏览器的默认字体高都是 16px

<style>​
html {font-size: 10px;  } /*  公式16px*62.5%=10px  */  ​
.big{font-size: 1.4em}​
.small{font-size: 1.2em}</style>
<div class="big">​我是14px=1.4em​<div class="small">我是12px=1.2em</div></div>

这时候.big元素的font-size为14px,而.small元素的font-size为12px​

rem​
rem,相对单位,相对的只是HTML根元素font-size的值​
同理,如果想要简化font-size的转化,我们可以在根元素html中加入font-size: 62.5%

html {font-size: 62.5%;  } /*  公式16px*62.5%=10px  */ 

这样页面中1rem=10px、1.2rem=12px、1.4rem=14px、1.6rem=16px;使得视觉、使用、书写都得到了极大的帮助​
特点:​
rem单位可谓集相对大小和绝对大小的优点于一身​
和em不同的是rem总是相对于根元素,而不像em一样使用级联的方式来计算尺寸​

vh、vw​
vw ,就是根据窗口的宽度,分成100等份,100vw就表示满宽,50vw就表示一半宽。(vw 始终是针对窗口的宽),同理,vh则为窗口的高度​
这里的窗口分成几种情况:​

  • 在桌面端,指的是浏览器的可视区域​
  • 移动端指的就是布局视口​
    像vw、vh,比较容易混淆的一个单位是%,不过百分比宽泛的讲是相对于父元素:​
  • 对于普通定位元素就是我们理解的父元素​
  • 对于position: absolute;的元素是相对于已定位的父元素​
  • 对于position: fixed;的元素是相对于 ViewPort(可视窗口)​

    三、总结​
    px:绝对单位,页面按精确像素展示​
    em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值​
    rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算​
    vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单

HTML和CSS图片的加载规则

Web浏览器先会把获取到的HTML代码解析成一个DOM树,HTML中的每个标签都是DOM树中的一个节点,包括display: none隐藏的标签,还有JavaScript动态添加的元素等。​
浏览器会获取到所有样式,并会把所有样式解析成样式规则,在解析的过程中会去掉浏览器不能识别的样式。​
浏览器将会把DOM树和样式规则组合在一起(DOM元素和样式规则匹配)后将会合建一个渲染树(Render Tree),渲染树类似于DOM树,但两者别还是很大的:​
渲染树能识别样式,渲染树中每个节点(NODE)都有自己的样式,而且渲染树不包含隐藏的节点(比如display:none的节点,还有内的一些节点),因为这些节点不会用于渲染,也不会影响节点的渲染,因此不会包含到渲染树中。一旦渲染树构建完毕后,浏览器就可以根据渲染树来绘制页面了。​
简单的归纳就是浏览器渲染Web页面大约会经过六个过程:​

  • 解析HTML,构成DOM树​
  • 解析加载的样式,构建样式规则树​
  • 加载JavaScript,执行JavaScript代码​
  • DOM树和样式规则树进行匹配,构成渲染树​
  • 计算元素位置进行页面布局​
  • 绘制页面,最终在浏览器中呈现​
    是不是会感觉这个和我们图像加载渲染没啥关系一样,事实并非如此,因为img、picture或者background-image都是DOM树或样式规则中的一部分,那么咱们套用进来,图片加载和渲染的时机有可能是下面这样:​
  • 解析HTML时,如果遇到img或picture标签,将会加载图片​
  • 解析加载的样式,遇到background-image时,并不会加载图片,而会构建样式规则树​
  • 加载JavaScript,执行JavaScript代码,如果代码中有创建img元素之类,会添加到DOM树中;如查有添加background-image规则,将会添加到样式规则树中​
  • DOM树和样式规则匹配时构建渲染树,如果DOM树节点匹配到样式规则中的backgorund-image,则会加载背景图片​
  • 计算元素(图片)位置进行布局​
  • 开始渲染图片,浏览器将呈现渲染出来的图片​
    上面套用浏览器渲染页面的机制,但图片加载与渲染还是有一定的规则。因为,页面中不是所有的(或picture)元素引入的图片和background-image引入的背景图片都会加载的。那么就引发出新问题了,什么时候会真正的加载,加载规则又是什么?​
    先概括一点:​

    Web页面中不是所有的图片都会加载和渲染!​

    我们可以归纳为:​
  • image picture和设置background-image的元素遇到display:none时,图片会加载,但不会渲染。​
  • image picture和设置background-image的元素祖先元素设置display:none时,background-image不会渲染也不会加载,而img和picture引入的图片不会渲染但会加载​
  • image picture和background-image引入相同路径相同图片文件名时,图片只会加载一次​
  • 样式文件中background-image引入的图片,如果匹配不到DOM元素,图片不会加载​
  • 伪类引入的background-image,比如:hover,只有当伪类被触发时,图片才会加载.

什么是响应式设计?响应式设计的基本原理是什么?如何进行实现?

一、是什么​
响应式网站设计(Responsive Web design)是一种网络页面设计布局,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整​
描述响应式界面最著名的一句话就是“Content is like water”​
大白话便是“如果将屏幕看作容器,那么内容就像水一样”​
响应式网站常见特点:​
同时适配PC + 平板 + 手机等​
标签导航在接近手持终端设备时改变为经典的抽屉式导航​
网站的布局会根据视口来调整模块的大小和位置
在这里插入图片描述
二、实现方式​
响应式设计的基本原理是通过媒体查询检测不同的设备屏幕尺寸做处理,为了处理移动端,页面头部必须有meta声明viewport

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no”>

属性对应如下:​

  • width=device-width: 是自适应手机屏幕的尺寸宽度​
  • maximum-scale:是缩放比例的最大值​
  • inital-scale:是缩放的初始化​
  • user-scalable:是用户的可以缩放的操作​
    实现响应式布局的方式有如下:​
  • 媒体查询​
  • 百分比​
  • vw/vh​
  • rem​
  • 媒体查询​
    CSS3 中的增加了更多的媒体查询,就像if条件表达式一样,我们可以设置不同类型的媒体条件,并根据对应的条件,给相应符合条件的媒体调用相对应的样式表​
    使用@Media查询,可以针对不同的媒体类型定义不同的样式,如:
@media screen and (max-width: 1920px) { ... }

当视口在375px - 600px之间,设置特定字体大小18px

@media screen (min-width: 375px) and (max-width: 600px) {​body {​font-size: 18px;​}​
}

通过媒体查询,可以通过给不同分辨率的设备编写不同的样式来实现响应式的布局,比如我们为不同分辨率的屏幕,设置不同的背景图片​
比如给小屏幕手机设置@2x图,为大屏幕手机设置@3x图,通过媒体查询就能很方便的实现​
百分比​
通过百分比单位 " % " 来实现响应式的效果​
比如当浏览器的宽度或者高度发生变化时,通过百分比单位,可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果​
height、width属性的百分比依托于父标签的宽高,但是其他盒子属性则不完全依赖父元素:​

  • 子元素的top/left和bottom/right如果设置百分比,则相对于直接非static定位(默认定位)的父元素的高度/宽度​
  • 子元素的padding如果设置百分比,不论是垂直方向或者是水平方向,都相对于直接父亲元素的width,而与父元素的height无关。​
  • 子元素的margin如果设置成百分比,不论是垂直方向还是水平方向,都相对于直接父元素的width​
  • border-radius不一样,如果设置border-radius为百分比,则是相对于自身的宽度​
    可以看到每个属性都使用百分比,会照成布局的复杂度,所以不建议使用百分比来实现响应式​
    vw/vh​
    vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度。 任意层级元素,在使用vw单位的情况下,1vw都等于视图宽度的百分之一​
    与百分比布局很相似,在以前文章提过与%的区别,这里就不再展开述说​
    rem​
    在以前也讲到,rem是相对于根元素html的font-size属性,默认情况下浏览器字体大小为16px,此时1rem = 16px​
    可以利用前面提到的媒体查询,针对不同设备分辨率改变font-size的值,如下:
@media screen and (max-width: 414px) {​html {font-size: 18px​}}​
​
@media screen and (max-width: 375px) {​html {font-size: 16px​}}​
​
@media screen and (max-width: 320px) {​html {font-size: 12px​}}

为了更准确监听设备可视窗口变化,我们可以在css之前插入script标签,内容如下:

//动态为根元素设置字体大小​
function init () {​// 获取屏幕宽度​var width = document.documentElement.clientWidth​// 设置根元素字体大小。此时为宽的10等分​document.documentElement.style.fontSize = width / 10 + 'px'}​
​
//首次加载应用,设置一次​
init()​
// 监听手机旋转的事件的时机,重新设置​
window.addEventListener('orientationchange', init)​
// 监听手机窗口变化,重新设置​
window.addEventListener('resize', init)

在这里插入图片描述

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

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

相关文章

道品科技水肥一体化如何确定灌溉需水量呢?

在农业生产进程之中&#xff0c;持续攀升的生产成本&#xff0c;使农民苦不堪言。其一&#xff0c;水肥用量递增&#xff0c;致使成本上扬&#xff1b;其二&#xff0c;种植成效并不显著&#xff0c;所增经济收益颇为有限。另外&#xff0c;不科学的滴灌施肥亦破坏了农业环境架…

北航软件工程考研难度分析!

C哥专业提供——计软考研院校选择分析专业课备考指南规划 总体情况概述 北航软件工程学硕2024届呈现"稳中有降"态势。2024届复试线335分&#xff0c;较2023届上升25分&#xff0c;但较2022届下降10分。实际录取24人&#xff08;含实验室方向&#xff09;&#xff0c…

网页,app,微信小程序互相跳转

1.网页打开小程序 配置&#xff1a;登录小程序账号&#xff0c;找到账号设置&#xff0c;在基本设置中找到隐私与安全 在明文scheme中点击配置&#xff0c;填写要跳转的小程序页面地址即可 此处只展示一种实现方法&#xff0c;其他参照获取 URL Scheme | 微信开放文档 <a …

SQL,力扣题目1767,寻找没有被执行的任务对【递归】

一、力扣链接 LeetCode_1767 二、题目描述 表&#xff1a;Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…

【工具】在线一维码生成器

在国外网站上看到一款条形码生成器&#xff0c;它是开源的&#xff0c;很好用。但是访问慢&#xff0c;也不支持下载一维码&#xff0c; 于是我把他翻译了过来&#xff0c;加上下载条码功能&#xff0c;再加了配色&#xff0c;让界面看上来更丰富 一个可直接使用的工具&#x…

PHM技术应用:发电机线棒高温预警

目录 1 案例背景 1.1 事件描述 1.2 设备概况 1.3 事件过程 2 系统动力学模型 典型工况 故障树 潜在业务提升 3 异常预警规则模型 4 故障排查逻辑 5 小结 1 案例背景 1.1 事件描述 某发电厂的某台发电机组&#xff0c;在满功率工况下&#xff0c;因发电机下层线棒温…

Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践

Spark 的介绍与搭建&#xff1a;从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交&#xff1a;本地与集群模式全解析-CSDN博客 目录 一、Spark on YARN 的优势 &#xff08;一&#…

是时候用开源降低AI落地门槛了

过去三十多年&#xff0c;从Linux到KVM&#xff0c;从OpenStack到Kubernetes&#xff0c;IT领域众多关键技术都来自开源。开源技术不仅大幅降低了IT成本&#xff0c;也降低了企业技术创新的门槛。 那么&#xff0c;在生成式AI时代&#xff0c;开源能够为AI带来什么&#xff1f;…

机器学习—矩阵乘法的规则

有一个23的矩阵A&#xff0c;有两行三列&#xff0c;把这个矩阵的列想象成三个向量a1,a2,a3&#xff0c;用一个转置&#xff0c;把它相乘&#xff0c;首先&#xff0c;什么是转置&#xff0c;把一个矩阵进行行变列&#xff0c;列变行的操作&#xff0c;所以这些行现在是一个转置…

字节面试Java基础部分——HashMap

字节面试Java基础部分 面试管&#xff1a;Java应该很熟悉吧&#xff0c;接下来问你几个Java基础问题&#xff1a; HashMap 是什么样的数据结构 JDK 7 中&#xff0c;HashMap 由“数组链表”组成&#xff0c;数组是 HashMap 的主体&#xff0c;链表则是主要为了解决哈希冲突而…

Rust 力扣 - 2461. 长度为 K 子数组中的最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口&#xff0c;用一个哈希表记录窗口内的所有元素&#xff08;用来对窗口内元素去重&#xff09;&#xff0c;我们取哈希表中元素数量等于k的窗口总和的最大值 题解代码 use std::collecti…

《AI在企业战略中的关键地位:以微软和阿里为例》

内容概要 在当今商业环境中&#xff0c;人工智能&#xff08;AI&#xff09;的影响力如滔滔洪水&#xff0c;愈演愈烈。文章将揭示AI在企业战略中的崛起&#xff0c;尤其以微软和阿里巴巴为代表的企业&#xff0c;这两家科技巨头通过不同方式&#xff0c;将智能技术融入其核心…

线上lgb使用

1. 单机版模型 转 spark集群 打分 速度超快&#xff0c;十亿数据&#xff0c;十多分钟&#xff01;&#xff01;&#xff01; 1.1 主函数-主要获取模型路径 # codingutf-8 import pyspark.sql.functions as F from pyspark.sql import SparkSession from pyspark.sql.types …

Uniapp安装Pinia并持久化(Vue3)

安装pinia 在uni-app的Vue3版本中&#xff0c;Pinia已被内置&#xff0c;无需额外安装即可直接使用&#xff08;Vue2版本则内置了Vuex&#xff09;。 HBuilder X项目&#xff1a;直接使用&#xff0c;无需安装。CLI项目&#xff1a;需手动安装&#xff0c;执行yarn add pinia…

JVM基础

JRE&#xff1a;运行java字节码的环境。它是运行已编译java程序所需要的所有内容的集合&#xff0c;主要包括java虚拟机JVM和java基础类库&#xff08;class library&#xff09; JVM&#xff1a;是Java Virtual Machine的缩写&#xff0c;即Java虚拟机。‌它是一个虚构的计算…

vm虚拟机中添加网卡却在network-scripts文件找不到,解决方法

前言 进入network-scripts文件发现只有eth0网卡 ifconfig发现添加进去了 解决方法 nmcli d s #查看目前服务器中所有网卡 手动启用该接口 nmcli d connect eth1 重启网卡 systemctl restart network 解决问题

keepalive+mysql8双主

1.概述 利用keepalived实现Mysql数据库的高可用&#xff0c;KeepalivedMysql双主来实现MYSQL-HA&#xff0c;我们必须保证两台Mysql数据库的数据完全一致&#xff0c;实现方法是两台Mysql互为主从关系&#xff0c;通过keepalived配置VIP&#xff0c;实现当其中的一台Mysql数据库…

论文阅读(一种基于球面投影和特征提取的岩石点云快速配准算法)

目前存在的问题&#xff1a; 在图像配准研究方面比点云配准更早、更有发展。相对之下&#xff0c;点云配准方法不成熟&#xff0c;将图像配准的思想与ICP相结合。 文章主要研究内容&#xff1a; 单站扫描仪的点云数据通过球极坐标转换为数字图像提取图像特征并去除边缘点&#…

人脸检测之MTCNN算法网络结构

MTCNN&#xff08;Multi-task Cascaded Convolutional Networks&#xff09;是一种用于人脸检测和关键点检测的深度学习模型&#xff0c;特别适合在复杂背景下识别出多尺度的人脸。它通过多任务学习来实现人脸检测和人脸关键点定位&#xff08;如眼睛、鼻子、嘴巴的位置&#x…

CocosCreator 构建透明背景应用(最新版!!!)

文章目录 透明原理补充设置截图以及代码step1: electron-js mian.jsstep2:ENABLE_TRANSPARENT_CANVASstep3:SOLID_COLOR Transparentstep:4 Build Web phonestep5:package electron-js & change body background-color 效果图补充 透明原理 使用Cocos creator 做桌面应用开…