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

前端高频面试题-HTML和CSS篇(二)

💻 前端高频面试题-HTML和CSS篇(二) 🏠专栏:前端面试题
👀个人主页:繁星学编程🍁
🧑个人简介:一个不断提高自我的平凡人🚀
🔊分享方向:目前主攻前端,其他知识也会阶段性分享🍀
👊格言:☀️没有走不通的路,只有不敢走的人!☀️
👉让我们一起进步,一起成为更好的自己!!!🎁

文章目录

  • 前端高频面试题-HTML和CSS篇(二)
    • 一. 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
      • (1) 背景
      • (2) 实现水平垂直居中方式
      • (3) 总结
    • 二. 怎么触发BFC,BFC有什么应用场景?
      • (1) BFC概念
      • (2) BFC的触发方式
      • (3) BFC的特性
      • (4) 应用
    • 三. flexbox(弹性盒布局模型)是什么,适用什么场景?
      • (1) 认识flex布局
      • flex 布局父项常见的属性
      • flex 布局子项常见属性
      • flex 布局的应用场景
    • 四. rem em px vw vh 百分比区别
      • (1) 介绍
      • (2) 单位
        • px
        • em
        • rem
        • vh、vw
      • (3) 总结

前端高频面试题-HTML和CSS篇(二)

本文主要讲述的前端高频面试题知识有:

  1. 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
  2. 怎么触发BFC,BFC有什么应用场景?
  3. flexbox(弹性盒布局模型)是什么,适用什么场景?
  4. rem em px vw vh 百分比区别

一. 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

(1) 背景

在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类:

  • 居中元素(子元素)的宽高已知
  • 居中元素宽高未知

(2) 实现水平垂直居中方式

  • 利用定位+margin:auto
  • 利用定位+margin:负值
  • 利用定位+transform
  • table布局
  • flex布局
  • grid布局

1. 利用定位+margin:auto

先上代码:

<style>    .father {        position: relative;        width: 500px;        height: 300px;        border: 1px solid #0a3b98;   }    .son {        position: absolute;        top: 0;        left: 0;        right: 0;        bottom: 0; margin: auto;width: 100px;        height: 40px;        background: #f0a238;    }
</style>
<div class="father">    <div class="son"></div>
</div>

父级设置为相对定位,子级绝对定位 ,并且四个定位属性的值都设置了0,那么这时候如果子级没有设置宽高,则会被拉开到和父级一样宽高

这里子元素设置了宽高,所以宽高会按照我们的设置来显示,但是实际上子级的虚拟占位已经撑满了整个父级,这时候再给它一个margin:auto它就可以上下左右都居中了

2. 利用定位+margin:负值

绝大多数情况下,设置父元素为相对定位, 子元素移动自身50%实现水平垂直居中

<style>    .father {        position: relative;        width: 200px;        height: 200px;        background: skyblue;    }    .son {        position: absolute;        top: 50%;        left: 50%;        margin-left:-50px;        margin-top:-50px;        width: 100px;        height: 100px;        background: red;    }
</style>
<div class="father">    <div class="son"></div>
</div>

3. 利用定位+transform

实现代码如下:

<style>    .father {        position: relative;        width: 200px;        height: 200px;        background: skyblue;    }    .son {        position: absolute;        top: 50%;        left: 50%;        transform: translate(-50%,-50%); width: 100px;        height: 100px;        background: red;    }
</style>
<div class="father">    <div class="son"></div>
</div>

translate(-50%, -50%)将会将元素位移自己宽度和高度的-50%
这种方法其实和最上面被否定掉的margin负值用法一样,可以说是margin负值的替代方案,并不需要知道自身元素的宽高

4. table布局

设置父元素为display:table-cell,子元素设置 display: inline-block。利用vertical和text-align可以让所有的行内块级元素水平垂直居中

<style>    .father {        display: table-cell;        width: 200px;        height: 200px;        background: skyblue;        vertical-align: middle;        text-align: center;    }    .son {        display: inline-block;        width: 100px;        height: 100px;        background: red;    }
</style>
<div class="father">    <div class="son"></div>
</div>

5. flex 弹性布局

还是看看实现的整体代码:

<style>    .father {        display: flex;        justify-content: center;        align-items: center;        width: 200px;        height: 200px;        background: skyblue;    }    .son {        width: 100px;        height: 100px;        background: red;    }
</style>
<div class="father">    <div class="son"></div>
</div>

css3中了flex布局,可以非常简单实现垂直水平居中
这里可以简单看看flex布局的关键属性作用:

  • display: flex时,表示该容器内部的元素将按照flex进行布局
  • align-items: center表示这些元素将相对于本容器水平居中
  • justify-content: center也是同样的道理垂直居中

6. grid 网格布局

<style>    .father {            display: grid;            align-items:center;            justify-content: center;            width: 200px;            height: 200px;            background: skyblue;         }        .son {            width: 10px;            height: 10px;            border: 1px solid red        }
</style>
<div class="father">    <div class="son"></div>
</div>

这里看到,gird网格布局和flex弹性布局都简单粗暴

margin自我计算

小结

上述方法中,不知道元素宽高大小仍能实现水平垂直居中的方法有:

  • 利用定位+margin:auto
  • 利用定位+transform
  • 利用定位+margin:负值
  • flex布局
  • grid布局

(3) 总结

根据元素标签的性质,可以分为:

  • 内联元素居中布局
  • 块级元素居中布局

内联元素居中布局

水平居中

  • 行内元素可设置:text-align: center
  • flex布局设置父元素:display: flex; justify-content: center

垂直居中

  • 单行文本父元素确认高度:height === line-height
  • 多行文本父元素确认高度:disaply: table-cell; vertical-align: middle

块级元素居中布局

水平居中

  • 定宽: margin: 0 auto
  • 绝对定位+left:50%+margin:负自身一半

垂直居中

  • position: absolute设置left、top、margin-left、margin-top(定高)
  • display: table-cell
  • transform: translate(x, y)
  • flex(不定高,不定宽)
  • grid(不定高,不定宽),兼容性相对比较差

(4) 参考文献

https://juejin.cn/post/6844903982960214029#heading-10

二. 怎么触发BFC,BFC有什么应用场景?

(1) BFC概念

先看下MDN上关于BFC的定义:

块格式化上下文( Block Formatting Context
BFC) 是Web页面的可视CSS渲染的一部分, 是块盒子的布局过程发生的区域,也是浮动元素与其他元交互的区域。

具有BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并诅BFC 具有普通容器所没有的一些特性。

通俗一点来讲, 可以把BFC理解为一个封闭的大箱子,箱子内
部的元素无论如何翻江倒海,都不会影响到外部。

除了BFC,还有:

  • IFC (行级格式化上下文) - inline 内联
  • GFC (网格布局格式化上下文) - display: grid
  • FFC (自适应格式化上下文) - display: flexdisplay: inline-flex

注意:同一个元素不能同时存在于两个BFC 中。

(2) BFC的触发方式

MDN_上对于BFC的触发条件写的很多,总结一下常见的触发方式有(只需要满足-一个条件即可触发BFC的特性) :

  • 根元素,即<html>
  • 浮动元素: float 值为left 、right
  • overflow 值不为visible ,即为auto、scroll、hidden
  • display 值为inline-block、table-cell 、table-caption、table、inline-table、f1ex 、inline-flex、grid 、inline-grid
  • 绝对定位元素: position 值为absolute 、fixed

(3) BFC的特性

  • BFC题面上的一个独立容器,容器里面的子元素不会影
    响外面的元素。
  • BFC内部的块级盒会在垂直方向上一一个接一个排列
  • 同一BFC下的相邻块级元素可能发生外边距折叠, 创建
    新的BFC可以避免外边距折叠
  • 每个元素的外边距盒( margin box )的左边与包含块边框
    盒( border box )的左边相接触(从右向左的格式的话,
    则相反) , 即使存在浮动
  • 浮动盒的区域不会和BFC重璽
  • 计算BFC的高度时,浮动元素也会参与计算

(4) 应用

BFC是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素,反之亦然。我们可以利用BFC的这个特性来做很多事。

  • 自适应两栏布局
  • 防止外边距重叠

三. flexbox(弹性盒布局模型)是什么,适用什么场景?

(1) 认识flex布局

Flexible Box 简称 flex,意为”弹性布局”,可以简便、完整、响应式地实现各种页面布局。
采用Flex布局的元素,称为flex容器container。
它的所有子元素自动成为容器成员,称为flex项目item。

当我们为盒子设为flex布局以后,子元素的float、clear和vertical-align 属性将失效。

flex布局(其他叫法:伸缩布局、弹性布局、伸缩盒布局、弹性盒布局)

给一个元素设置了display: flex/inline-flex(块级元素/行内元素转为弹性盒子),那么这个元素就变成了弹性容器,这个元素的儿子们就变成了弹性项目,不会影响到孙子(但可以嵌套使用)

总结:flex布局原理就是:通过给父盒子添加flex属性,来控制子盒子的位置和排列方式。(父盒子:弹性容器,子元素:弹性项目)

flex 布局父项常见的属性

属性描述
flex-direction设置主轴的方向**(默认x轴或叫行、row)**
flex-wrap设置子元素是否换行(默认不换行
flex-flow复合属性,相当于同时设置了flex-direction和flex-wrap
justify-content设置主轴上的子元素排列方式
align-content设置侧轴上的子元素的排列方式(多行)
align-items设置侧轴上的子元素排列方式(单行)

flex-direction 属性

决定主轴的方向(即项目的排列方向)

  • row(默认值):主轴为水平方向,起点在左端
  • row-reverse:主轴为水平方向,起点在右端

以下两个了解就行:

  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿

flex-wrap 属性(重要)

弹性元素永远沿主轴排列,那么如果主轴排不下,通过flex-wrap决定容器内项目是否可换行

默认不换行,子元素宽度超过父元素宽度时,自动压缩子元素宽度

属性值描述
nowrap不换行**(默认)**
wrap换行
wrap-reverse换行,第一行在下方

flex-flow 属性

复合属性,相当于同时设置了flex-direction和flex-wrap

flex-flow:row wrap;

justify-content 属性

定义了项目在主轴上的对齐方式

内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

  • flex-start:默认,顶端对齐(从头部开始,如果主轴是x轴,则从左到右)
  • flex-end:末端对齐
  • center:居中对齐
  • space-between:两端对齐,中间自动分配(先两边贴边,在平分剩余空间)(重要)
  • space-around:自动分配距离(平均分配剩余空间)

align-content 属性

定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用

属性值描述
flex-start没有行间距
flex-end底对齐没有行间距
center居中没有行间距
space-between两端对齐,中间自动分配
space-around自动分配距离
stretch设置子项元素高度平分父元素高度**(默认值)**

align-items 属性

定义项目在交叉轴上如何对齐

属性值描述
flex-start弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。
flex-end弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。
center弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。
baseline如弹性盒子元素的行内轴与侧轴为同一条,则该值与’flex-start’等效。其它情况下,该值将参与基线对齐。
stretch拉伸**(默认值)**

flex 布局子项常见属性

属性描述
align-self控制子项自己在侧轴的排列方式
flex-grow控制某一个弹性项目如何增长
flex-shrink控制某一个弹性项目如何收缩
flex-basis元素在主轴的基准值(尺寸)
flex子项目占的份数
order定义子项的配列顺序(前后顺序)

align-self 属性

允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性

默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

注意:align-self 属性可重写灵活容器的 align-items 属性

属性值描述
auto**默认值。**元素继承了它的父容器的 align-items 属性。如果没有父容器则为 “stretch”。
Stretch元素被拉伸以适应容器。
Center元素位于容器的中心。
flex-start元素位于容器的开头。
flex-end元素位于容器的结尾。
baseline项目内部文本基线对齐

flex-grow 属性

如果主轴方向空间盈余,控制每个项目如何变大父元素的盈余的尺寸,项目按照取值的占比,各自增长各自的尺寸。

flex-grow: 默认值(0)

不分配空间 不扩展

支持:数值(1 2 3 4 …)

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)

如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍

弹性容器的宽度正好等于元素宽度总和,无多余宽度,此时无论flex-grow是什么值都不会生效

flex-shrink 属性

如果主轴方向空间不足,控制每个项目如何变小父元素收缩的尺寸,项目按照取值的占地,自动分配各自收缩的尺寸

flex-shrink:

  • 1 默认值 收缩
  • 0 不收缩

支持:数值 1 2 3 4 …

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小

如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小

在容器宽度有剩余时,flex-shrink也是不会生效的

flex-basis 属性

设置的是元素在主轴上的初始尺寸,所谓的初始尺寸就是元素在flex-grow和flex-shrink生效前的尺寸

浏览器根据这个属性,计算主轴是否有多余空间,默认值为auto,即项目的本来大小,如设置了width则元素尺寸由width/height决定(主轴方向),没有设置则由内容决定

支持:

  • auto 默认
  • 数值
  • 百分比

当设置为0的是,会根据内容撑开

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间

flex 属性

flex: 增长 收缩 尺寸;

注:顺序不能换

  • flex: 1:平分空间
  • flex: auto 等比例缩放

order 属性

说明:

number排序优先级,数字越大越往后排,默认为0,支持负数

flex 布局的应用场景

  1. 实现元素水平垂直方向的居中

  2. 两栏三栏自适应布局中

四. rem em px vw vh 百分比区别

(1) 介绍

传统的项目开发中,我们只会用到px%em这几个单位,它可以适用于大部分的项目开发,且拥有比较良好的兼容性

CSS3开始,浏览器对计量单位的支持又提升到了另外一个境界,新增了remvhvwvm等一些新的计量单位

利用这些新的单位开发出比较良好的响应式页面,适应多种不同分辨率的终端,包括移动设备等

(2) 单位

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

CSS单位
相对长度单位em、ex、ch、rem、vw、vh、vmin、vmax、%
绝对长度单位cm、mm、in、px、pt、pc

这里我们主要讲述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

举个例子

<div class="big">我是14px=1.4rem<div class="small">我是12px=1.2rem</div>
</div>

样式为

<style>html {font-size: 10px;  } /*  公式16px*62.5%=10px  */ .big{font-size: 1.4rem}.small{font-size: 1.2rem}
</style>

这时候.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则为窗口的高度

这里的窗口分成几种情况:

  • 在桌面端,指的是浏览器的可视区域
  • 移动端指的就是布局视口

vwvh,比较容易混淆的一个单位是%,不过百分比宽泛的讲是相对于父元素:

  • 对于普通定位元素就是我们理解的父元素
  • 对于position: absolute;的元素是相对于已定位的父元素
  • 对于position: fixed;的元素是相对于 ViewPort(可视窗口)

(3) 总结

px:绝对单位,页面按精确像素展示

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值

rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算

vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单

结束语

希望对您有一点点帮助,如有错误欢迎小伙伴指正。
👍点赞:您的赞赏是我前进的动力!
⭐收藏:您的支持我是创作的源泉!
✍评论:您的建议是我改进的良药!
一起加油!!!💪💪💪

相关文章:

前端高频面试题-HTML和CSS篇(二)

&#x1f4bb; 前端高频面试题-HTML和CSS篇&#xff08;二&#xff09; &#x1f3e0;专栏&#xff1a;前端面试题 &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向…...

神经网络损失函数分布可视化神器

论文名称和地址&#xff1a;Visualizing the Loss Landscape of Neural Netshttps://arxiv.org/pdf/1712.09913.pdf1.1 背景和动机作者主要想研究几个问题&#xff1a;为什么我们能够最小化高度非凸神经损失函数&#xff1f;为什么得到的最小值这个结果具有泛化性&#xff1f;不…...

ansible的部署与命令模块

目录 一、ansible的概述 1、ansible简介 2、ansible特点 3、官方网站 4、ansible的模块组成 5、ansible的工作机制 二、ansible部署 1、ansible的安装 三、ansible的命令行模块 1、command模块 2、shell模块 3、cron模块 4、user模块 5、group模块 6、copy模块 7…...

开发人员与测试人员关系的理解

在软件开发中都会有开发人员&#xff08;以下简称开发&#xff09;和测试人员&#xff08;以下简称测试&#xff09;&#xff0c;在一些小型公司可能并没有测试&#xff0c;仅仅是开发兼任测试。在这里我仅针对于有专业的测试和专业的开发的项目。 每个公司应该都有考核机制&am…...

直面原理:5 张图彻底了解 Android TextToSpeech 机制

ChatGPT 如此火爆&#xff0c;但它的强悍在于 NLU&#xff08;自然语言理解&#xff09;、DM&#xff08;对话管理&#xff09;和 NLG &#xff08;自然语言生成&#xff09;这三块&#xff0c;而 Recognition 识别和 TTS 播报这两块是缺失的。假使你的 App 接入了 ChatGPT&…...

Ruby Socket 编程

Ruby提供了两个级别访问网络的服务&#xff0c;在底层你可以访问操作系统&#xff0c;它可以让你实现客户端和服务器为面向连接和无连接协议的基本套接字支持。 Ruby 统一支持应用程序的网络协议&#xff0c;如FTP、HTTP等。 不管是高层的还是底层的。ruby提供了一些基本类&a…...

Vue3+ElementPlus+koa2实现本地图片的上传

一、示例图二、实现过程利用Koa2书写提交图片的后台接口这个模块是我写的项目中的其中一个板块——上传图片&#xff0c;这个项目的后台接口主要是是使用了后端的Koa2框架&#xff0c;前端小伙伴想要试着自己书写一些增删改查的接口可以从这个入手&#xff0c;Koa2用来了解后端…...

常见漏洞之 Fastjson

数据来源 01 Fastjson相关介绍 》Fastjson概述 》Fastjson历史漏洞 02 Fastson的识别与漏洞发现 》Fastjson寻找 》Fastjson漏洞发现&#xff08;利用 dnslog&#xff09; 03 修复建议 建议1&#xff1a;使用fastjson1.2.83版本&#xff1b; Github地址&#xff1a;https:…...

绕过Nginx Host限制

目录绕过Nginx Host限制SNI第三种方法&#xff1a;总结绕过Nginx Host限制 SNI SNI&#xff08;Server Name Indication&#xff09;是 TLS 的扩展&#xff0c;这允许在握手过程开始时通过客户端告诉它正在连接的服务器的主机名称。 作用&#xff1a;用来解决一个服务器拥有…...

Visual Studio 2022 常用快捷键,记录一下别忘记~

Visual Studio 2022 常用快捷键&#xff0c;记录一下别忘记~ CtrlEC 注释代码 CtrlEU 取消注释代码 CtrlED 格式化全部代码 CtrlShiftA 新建类 CtrlRG 删除无效Using CtrlH 批量替换 CtrlG 跳转到指定行 CtrlEE 在交互窗口中运行选中代码(很实用) AltEnter 快速引用 …...

软件测试回顾---重点知识

软件测试重点知识回顾 8.1.1软件测试的目的是 尽可能的发现程序中的错误并不是发现所有的错误并不是证明程序是错误的也不是为了调试程序8.1.2白盒测试根据什么设置测试用例&#xff1f;黑盒测试根据什么设置测试用例&#xff1f; 白盒测试根据内部逻辑来设计的黑盒测试根据的是…...

2D图像处理:2D Shape_Base_Matching_缩放_旋转_ICP_显示ROI

文章目录 调试结果参考调试说明问题0:并行运行问题问题1:模板+Mask大小问题问题2:组合缩放和旋转问题3:可以直接将计算边缘的代码删除问题4:如何在原始图像上显示匹配到的ROI问题5:计算的原始旋转角度不需要判断,直接可以在ICP中使用问题6:绘制坐标轴问题7:绘制ROI调试…...

HTTP、HTTPS

目录 1.HTTP 1.1.概述 1.2.报文结构 1.2.1.请求报文 1.2.2.响应报文 1.3.方法 2.HTTPS 1.HTTP 1.1.概述 HTTP&#xff0c;超文本传输协议&#xff0c;WEB体系选用了该协议作为应用层协议。 1.2.报文结构 1.2.1.请求报文 HTTP的请求报文&#xff08;request&#xff0…...

计算机网络之http03:HTTPS RSA握手解析

不同的秘钥交换算法,握手过程可能略有差别 上文对HTTPS四次握手的学习 SSL/TLS Secure Sockets Layer/Transport Layer Security 协议握手过程 四次通信&#xff1a;请求服务端公钥 2次 秘钥协商 2次 &#xff08;1&#xff09;ClientHello请求 客户端向服务端发送client…...

一款针对EF Core轻量级分表分库、读写分离的开源项目

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 在项目开发中&#xff0c;如果数据量比较大&#xff0c;比如日志记录&#xff0c;我们往往会采用分表分库的方案&#xff1b;为了提升性能&#xff0c;把数据库查询与更新操作分开&#xff0c;这时候就要采用读写…...

Linux环境变量讲解

目录 环境变量 alias命令 type命令 变量分类 Linux最主要的全局环境变量 环境变量 变量是计算机系统用于保存可变数值的数据类型 在Linux中&#xff0c;一般变量都是大写&#xff0c;命令是小写 在Linux中&#xff0c;变量直接使用&#xff0c;不需要定义&#xff08;更快…...

iptables和nftables的使用

文章目录前言iptable简介iptable命令使用iptables的四表五链nftables简介nftables命令的时候nftables与iptables的区别iptables-legacy和iptables-nft实例将指定protocol:ip:port的流量转发到本地指定端口前言 本文展示了&#xff0c;iptables和nftable命令的使用。 # 实验环…...

中小学信息学相关编程比赛清单及报名网站汇总(C++类)

1、NOI系列比赛(CSP-J CSP-S NOIP NOI APIO CTSC IOI ISIJ等) NOI官网 NOI全国青少年信息学奥林匹克竞赛https://www.noi.cn/ 2、蓝桥杯青少年创意编程大赛 https://www.lanqiaoqingshao.cn/home 3、中国电子协会考评中心...

06Makefile

Makefile 1、Makefile简介 一个工程中的源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至于进行更复杂…...

【C++】模板初阶

&#x1f345;讨厌废话&#xff0c;直接上车 ☃️1.泛型编程 void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void Swap(char&…...

vue+nodejs考研资料分享系统vscode - Visual Studio Code

前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 Express 框架于Node运行环境的Web框架, 目 …...

LeetCode_单周赛_332

6354. 找出数组的串联值 题意 将数组首尾元素接在一起&#xff0c;就是串联值。 串联之后删除&#xff0c;如果只剩下一个元素&#xff0c;加上这个元素即可 双指针&#xff0c;从首和尾向中间移动即可 code **注意&#xff1a;**用 long 没看题目用了 int wa了一发 clas…...

[LeetCode周赛复盘] 第 332 场周赛20230212

[LeetCode周赛复盘] 第 332 场周赛20230212 一、本周周赛总结二、 [Easy] 6354. 找出数组的串联值1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6355. 统计公平数对的数目1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6356. 子字符串异或查询1. 题目描述2. 思路分析3. 代…...

C++轻量级RPC库RpcCore

C轻量级的RPC库&#xff0c;可用于任何项目中&#xff0c;甚至单片机。 方便平台直接相互进行功能调用。 基于asio的实现 asio_net 也可用在esp32适用于ESP32/ESP8266的实现 esp_rpc 目前也有一些轻量的库&#xff0c;参考了protobuf&#xff08;或者依赖它&#xff09;&…...

Mysql的视图

视图的特点&#xff1a; 1.视图可以看做一个虚拟的表&#xff0c;本身是不存储数据的。 视图的本质可以看作是存储起来的select语句 2.视图中涉及到的表都统称为基表 3.针对视图多DML操作&#xff0c;会影响到对应基表中的数据。反之亦然 4.视图本身的删除&#xff0c;不会…...

2/12考试总结

时间安排 8:30–8:50 读题&#xff0c;T1 不知道是个啥,T2是个dp &#xff0c;T3可能也是 dp 之类的。 8:50–9:30 T1&#xff0c;读了好几遍才理解了题意&#xff0c;对于部分分有爆搜。考虑正解&#xff0c;想到预处理后O(1) 查询&#xff0c;问题是如何由已知的信息得到所有…...

第三章虚拟机的克隆,快照,迁移删除

1.虚拟机的克隆 如果你已经安装了一台linux操作系统&#xff0c;你还想再更多的&#xff0c;没有必要再重新安装&#xff0c;你只需要克 隆就可以&#xff0c;看演示。 方式1&#xff0c;直接拷贝一份安装好的虚拟机文件,再用虚拟机打开这个文件方式2&#xff0c;使用vmware的…...

华为OD机试 - 任务总执行时长(Python)| 真题含思路

任务总执行时长 题目 任务编排服务负责对任务进行组合调度。 参与编排的任务又两种类型, 其中一种执行时长为taskA, 另一种执行时长为taskB。 任务一旦开始执行不能被打断,且任务可连续执行。 服务每次可以编排 num 个任务。 请编写一个方法,生成每次编排后的任务所有可…...

LeetCode 热题 C++ 114. 二叉树展开为链表

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#xf…...

Spring的事务控制-基于AOP的声明式事务控制

Spring的事务控制-基于AOP的声明式事务控制 Spring事务编程概述 事务是开发中必不可少的东西&#xff0c;使用JDBC开发时&#xff0c;我们使用connection对事务进行控制&#xff0c;使用MyBatis时&#xff0c;我们使用SqlSession对事务进行控制&#xff0c;缺点就是&#xff…...

wordpress腾讯视频插件下载/全媒体广告代理

近日&#xff0c;江苏省南京市中级人民法院以破坏生产经营罪对两被告人董某、谢某定罪量刑&#xff0c;判处董某有期徒刑一年&#xff0c;缓刑一年。 据悉&#xff0c;在淘宝网经营论文相似度检测业务的董某&#xff0c;为谋取市场竞争优势&#xff0c;雇佣并指使他人&#xf…...

wordpress手机评论/成都关键词排名推广

​ 源码编号&#xff1a;S-I03 点击查看&#xff08;分类规则&#xff09; 项目名称&#xff1a;基于Spring Boot的在线聊天系统 当前版本&#xff1a;V1.0版本 用户类型&#xff1a;双角色&#xff08;用户、管理员&#xff09; 项目架构&#xff1a;B/S架构 主要技术&a…...

彩票网站搭建 做网站/重庆镇海seo整站优化价格

Window->Preferences->Java->Installed JREs 选择文件路径为JDK文件夹路径的&#xff0c;如果没有&#xff0c;手动add。...

建站网站设计/南宁百度首页优化

第三章 面向对象时间&#xff1a;2017年4月24日17:51:37~2017年4月25日13:52:34章节&#xff1a;03章_01节 03章_02节视频长度&#xff1a;30:11 21:44内容&#xff1a;面向对象设计思想 心得&#xff1a;与以往的各种语言的根本不同的是&#xff0c;它的设计出发点就是为了更…...

二手房交易网站排名/腾讯云域名

欢迎指导与讨论 : &#xff09; 前言 本文主要是笔者在React英文官网学习时整理的笔记。由于笔者水平有限&#xff0c;如有错误恳请指出 O(∩_∩)O 一 、Tutoial 篇 1 . React的组件类名的首字母必须是大写 var Comment React.creatClass({..}) class Comment extends Compo…...

网站建设传单文案/推广自己的网站

基于ZBar做二维码识别&#xff0c;识别率很低&#xff0c;为了提高识别率&#xff0c;可以先将图像进行灰度化处理再进行识别&#xff0c;准确率将会有很大提升。 #include <vector> #include <algorithm> #include <string> #include <math.h> #incl…...