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

前端题目类型

HTML+CSS常见面试题

  1. HTML标签有哪些行内元素
    • imgpicturespaninputtextareaselectlabel
  2. 说说你对元素语义化的理解
    • 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果,但这样会使事情复杂化,所以需要元素语义化来降低复杂度。
    • 实际开发中,元素语义化好处很多:提高代码的阅读性和可维护性;减少开发者之间的沟通成本;能让语音合成工具正确识别网页元素的用途,以便做出正确的反应;有利于SEO(Search Engine Optimization,搜索引擎优化)。
  3. HTML中有哪些语义化标签
    • headerfootermainasidearticlesectionaddresssummary/detailsmenuh1/h2/h3/h4/h5/h6imgpstrong/italic
  4. 什么是URL编码 (URL Encode)
    • encodeURI用来编码URI,其不会编码保留字符。
    • encodeURIComponent用来编码URI参数,除了字符A-Za-z0-9-_.!~*'(),其他都将会转义。
  5. 说说你对SEO的理解
    • SEO即搜索引擎优化(Search Engine Optimization),目的是提高网站的曝光度以及网站的排名。
    • Google搜索引擎的工作流程主要分为三个阶段:
      • 抓取:Google会使用名为“抓取工具”的自动程序搜索网络,查找新网页或更新后的网页,并将这些网页的地址(即网址)存储在一个大型列表中,以便日后查看。主要通过跟踪已知网页中的链接查找网页。
      • 编入索引:Google会访问通过抓取得知的网页,并尝试分析每个网页的主题。Google会分析网页中的内容、图片和视频文件,尝试了解网页的主题,这些信息存储在Google索引中,Google索引是一个存储在海量计算机中的巨大数据库。
      • 呈现搜索结果:当用户在Google上进行搜索时,Google会尝试确定最优质的搜索结果。“最佳”结果取决于许多因素,包括用户的位置、语言、设备(桌面设备或手机)以及先前用过的搜索查询。例如,用户搜索“自行车维修店”后,Google向巴黎用户显示的答案与向香港用户显示的答案有所不同。支付费用不能提高网页在Google搜索结果中的排名,网页排名是完全依靠算法完成的。
  6. '+‘与’~'选择器有什么不同
    • ~是匹配元素之后的选择器。
    • +是匹配相邻元素选择器。
  7. 说明text-align居中的条件
    • text-align是设置文本的水平对齐方式,是继承属性。它并不控制块元素自己的对齐,只控制它的行内内容的对齐。
    • MDN解释:定义行内内容(例如文字)如何相对它的块父元素对齐(可以设置图片居中)。
    • W3C官方文档解释:设置行内(inline - level)元素(没有填满父元素)在块级父元素的对齐方式。
  8. line-height为什么可以让文字垂直居中?
    • line-height指两行文字基线(baseline)之间的间距。基线是与小写字母x最底部对齐的线 。行高 - 文本高度 = 行距 。
    • normal:取决于用户端。桌面浏览器(包括Firefox)使用默认值,约为1.2。
    • <数字>:该属性的应用值是这个无单位数字乘以该元素的字体大小,这是设置line-height的推荐方法,不会在继承时产生不确定的结果。
    • <长度>:指定长度用于计算line box的高度,以em为单位的值可能会产生不确定的结果。
    • <百分比>:与元素自身的字体大小有关,计算值是给定的百分比值乘以元素计算出的字体大小,百分比值可能会带来不确定的结果。
    • 假设div中只有一行文字,让line-height等同于height,这行文字就能在div内部垂直居中。
  9. 说说盒子模型包含哪些内容?
    • 宽度和高度:通过宽度和高度设置。
    • 内边距:通过padding设置,padding: padding-top padding-right padding-bottom padding-left;
    • 边框:通过border设置,border: border-width border-style border-color
    • 外边距:通过margin设置,margin: margin-top margin-right margin-bottom margin-left
  10. 说说你对margin的传递和折叠的理解
    • margin-top传递:当块级元素的顶部线和父元素的顶部线重叠,一般发生在父子块元素之间,这个块级元素的margin-top值会传递给父元素。
    • margin-bottom传递:当块级元素的底部线和父元素的底部线重叠,这个块级元素的margin-bottom值会传递给父元素 。
    • 折叠:指的是垂直方向上相邻的2个marginmargin-topmargin-bottom)有可能会合并为1个margin。它有兄弟块级元素之间的上下margin的折叠,也有父子块级元素之间的margin折叠。
  11. CSS隐藏页面中某个元素的几种方法
    • display: none:元素完全从渲染树中消失,渲染时不占据任何空间,不能点击。
    • opacity: 0:透明度为0,仍在文档流中,作用于其上的事件(如点击)仍有效。
    • visibility: hidden:透明度为0,仍在文档流中,但作用于其上的事件(如点击)无效,这也是visibility:hiddenopacity: 0的区别。
    • content-visibility:移出文档流,但是再次显示时消耗性能低。
    • position: absolute; top: -9000px; left: -9000px;:绝对定位于当前页面的不可见位置。
  12. box-sizing有什么作用?content-box和border-box的区别
    • box-sizing用来设置盒子模型中宽高的计算方式。
    • content-boxpaddingborder都布置在widthheight外边。
    • border-boxpaddingborder都布置在widthheight里边。
  13. 为什么会发生样式抖动
    • 因为没有指定元素具体高度和宽度,比如数据还没有加载进来时元素高度是100px(假设),数据加载进来后,元素被撑大,所以出现了抖动。
  14. 说说浮动常见的规则?
    • 元素一旦浮动后,脱离标准流。
    • 朝着向左或向右方向移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止。
    • 定位元素会层叠在浮动元素上面。
    • 如果元素是向左(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界。
    • 浮动元素之间不能层叠(左浮找左浮,右浮找右浮)。
    • 如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到有充足的空间为止。
    • 浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出,比如行内级元素、inline-block元素、块级元素的文字内容。
    • 行内级元素、inline-block元素浮动后,其顶部将与所在行的顶部对齐。
  15. 为什么需要清除浮动?清除浮动有几种方法?
    • 为什么需要清除浮动:由于浮动元素脱离了标准流,变成了浮动元素,不再向父元素汇报高度,所以父元素在计算高度时并没有将浮动元素的高度计算进来,造成了高度塌陷的问题。解决高度塌陷的问题就叫做清除浮动。清除浮动的目的是为了让父元素在计算高度的时候把浮动子元素的高度计算进去。
    • 清除浮动的方法
      • 给父元素设置固定高度,扩展性不好,不推荐。
      • 在父元素的最后增加一个空的块级子元素,并设置clear:both,但是增加了无意义的空标签,违反了结构与样式分离的原则。
      • 给父元素添加一个伪元素(推荐):
.clear_fix::after {content: "";display: block;clear:both;visibility: hidden; /* 浏览器兼容性 */height: 0; /* 浏览器兼容性 */
}
.clear_fix {*zoom: 1; /* IE6/7兼容性 */
}
    - `overflow:auto`触发BFC(块级格式化上下文)来清除浮动(前提高度为auto)。
  1. 伪类与伪元素有什么区别?
    • 伪类使用单冒号,而伪元素使用双冒号。如:hover是伪类,::before是伪元素。
    • 伪元素会在文档流生成一个新的元素,并且可以使用content属性设置内容。
  2. 结构伪类nth-child(n)和nth-of-type(n)的区别?
    • :nth-child是结构伪类选择器,选中父元素的第几个子元素 ,计数时与元素的类型无关。
    • :nth-of-type是结构伪类选择器,类似:nth-child,但是计数时只计算同种类型的元素。
  3. 元素或文本水平居中实现方案有哪几种?
    • text-align: center:指定该属性的元素可以让其内部行内元素、行内块级元素和文本水平居中。
    • margin: 0 auto:该属性可以让具有宽度的块级元素水平居中。
    • 定位
      • position: relative; left:50%; transform:translate(-50%,0); (行内元素无效)。
      • 或者设置了宽度的情况:
width: 200px;
height:200px;
position: absolute; 
left: 0;
right: 0;
margin: 0 auto;
    - 或者:
position: absolute; 
width: 200px;
left:50%;
margin-left: -100px(需要居中的元素使用);
- **flex布局**:
display: flex;
justify-content: center; /* flex item居中 */
  1. 元素或文本垂直居中实现方案有哪几种?
    • line-height:可以让块级和行内元素(行内非替换元素,行内替换元素,行内块级元素)的文本垂直居中。
    • 定位
      • position: relative; top:50%; transform:translate(0,-50%);(行内元素无效)。
      • 或者设置了高度的情况:
width: 200px;
height:200px;
position: absolute; 
left: 0;
right: 0;
margin: 0 auto;
    - 或者:
position: absolute;
top:50%;
height: 200px;
margin-top: -100px (需要居中的元素使用);
- **flex布局实现**:
display: flex;
align-items: center; /* flex item居中 */
  1. rem、em、vw、vh单位是什么意思?
    • rem:单位是根据根元素(即html)的font-size大小来计算。
    • em:单位是根据自身元素的font-size大小来计算。
    • vwviewport width,即视口的宽。
    • vhviewport height,即视口的高。
  2. 什么是视口(viewport)?
    • pc端的视口:就是浏览器的可视区域。
    • 移动端视口
      • 布局视口:会按照一个默认宽度980px,来布局一个页面盒子的内容。为了可以显示完整的页面,会对整个页面进行缩小。可以通过<meta name="viewport" content="width=device-width, initial-scale=1.0" />设置布局视口的宽度。
      • 视觉视口:显示在可视区域的视口,就是视觉视口。
      • 理想视口:当布局视口 = 视觉视口的时候,就是理想视口 。可以通过<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">实现理想视口。
  3. 移动端适配的方案有哪些?
    • 百分比布局:因为不同属性百分比的值,相对的可能是不同的参照物,所以百分比往往很难统一。
    • 视口 + (rem + 动态HTML的font-size )
      • 动态计算HTML font-size
        • 用媒体查询来修改HTML font-size(缺点是不能实时改变font-size的大小)。
        • 自己编写JS来实现修改HTML font-size的大小(可以实时修改字体大小)。
        • 引用lib-flexiable库来实现(原理是JS动态改HTML font-size )。
      • px转成rem
        • 手动计算rem
        • Less的映射来计算 。
        • postcss-pxtorem插件来实现(需依赖webpackVite) 。
        • cssrem VSCode插件来实现 。
      • px转成vw
        • 手动计算vw
        • Less的映射来计算 。
        • postcss-px-to-viewport的插件(需依赖webpackVite) 。
        • cssrem VSCode插件。
    • flex弹性布局:利用flex container属性和flex item属性实现布局。
  4. 什么是Flexible Box布局?
    • CSS Flexible Box布局俗称Flexbox,是一种一维布局模型,它具有灵活高效的布局,在项目之间分配空间来控制它们的对齐结构。它允许容器内的响应式元素根据屏幕或设备大小自动排列。
    • Flex布局有两根轴线,分别为主轴和交叉轴。主轴由flex-direction定义,另一根轴垂直于它。
  5. flex布局container和item的属性分别有哪些?以及其作用?
    • flex container属性
      • display: flex:定义元素为Flex容器。
      • flex-direction:决定主轴方向,默认值为row
      • flex-wrap:决定flex container是单行还是多行,默认值为nowrap
      • flex-flow:前面两个属性的组合写法,默认值为row nowrap
      • justify-content:决定flex items在主轴的对齐方式,默认值为flex-start
      • align-items:决定flex items在交叉轴的对齐方式,默认值为normal
      • align-content:决定多行flex items在交叉轴的对齐方式,默认值为stretch
    • flex item属性
      • flex-grow:决定flex items如何拉伸,默认值为0。
      • flex-shrink:决定flex items如何收缩,默认值为1。
      • flex-basis:决定flex items的基本size大小, 默认值为auto
      • flex:是前面3个属性的组合写法。
      • align-self:指定flex item自身的排序方式,默认值为auto
      • order:决定了flex items的排布顺序,越小越靠前,默认值为0。
  6. 常见的CSS Transform形变有哪些?
    • transform属性允许对某一个元素进行某些形变,包括旋转,缩放,倾斜或平移等。transform对于行内级非替换元素(如aspan)是无效的。
    • translate(x, y):平移,用于移动元素在平面上的位置。
    • scale(x, y):缩放,可改变元素的大小。
    • rotate(deg):旋转,表示旋转的角度。
    • skew(deg, deg):倾斜,定义了一个元素在二维平面上的倾斜转换。
  7. 说出CSS Transition和Animation动画的区别
    • transition
      • 只能定义开始和结束两个状态,无法定义中间状态。
      • 不能重复执行动画,除非再次触发。
      • 需要在特定状态(如某属性修改)触发后才执行。
    • animation
      • 可以用@keyframes定义动画序列,精确控制每一帧的执行。
      • 通过设置animation - iteration - count规定动画执行次数。
      • 无需触发特定状态即可执行。
    • 性能与特点
      • CSS3动画:浏览器会进行优化,如新建图层来运行动画,性能稍好,代码相对简单,但动画控制不够灵活,兼容性欠佳,部分动画功能(如滚动动画、视差滚动等)无法实现。
      • JavaScript动画:控制能力强,可单帧控制和变换,兼容性好(如兼容IE6),功能强大。复杂控制的动画适合用JavaScript;小的交互动效可优先考虑CSS。
  8. play-state属性,动画与js动画哪个性能更好:在性能上,CSS3动画会因为浏览器的优化(如新建图层)稍好一些。但代码灵活性不如JavaScript动画。JavaScript动画能弥补CSS动画的缺点,控制能力强、功能强大且兼容性好。复杂动画适合用JavaScript,简单交互动效适合用CSS。
  9. 说说vertical-align的作用以及应用场景?
    • 作用:影响行内级元素在一个行盒中垂直方向的位置,默认值为baseline(基线对齐) 。
    • 对齐方式及含义
      • baseline(默认值):基线对齐。
      • top:把行内级盒子的顶部跟line boxes顶部对齐。
      • middle:行内级盒子的中心点与父盒基线加上x - height一半的线对齐。
      • bottom:把行内级盒子的底部跟line box底部对齐。
    • 应用场景分析
      • 只有文字时:行盒包裹内容,文字的bottom - line和行盒底部对齐。
      • 有图片和文字时:图片的底部和文字的baseline对齐。
      • 有图片、文字、inline - block(比图片大)时:图片的底部、行内块底部和文字的baseline对齐。
      • 有图片、文字、inline - block(比图片大)且设置了margin - bottom时:图片的底部、行内块margin - bottom底部和文字的baseline对齐;文字的margin - bottom底部和文字的baseline对齐。
      • 有图片、文字、inline - block(比图片大)且设置了margin - bottom并且有文字baseline时:图片的底部、行内块内最后一行文字的baseline对齐。
  10. 说说你对BFC的理解
    • 定义block format context(块级格式化上下文),是页面的一块渲染区域,有一套渲染规则,决定子元素如何定位以及与其他元素之间的排列布局关系 。
    • 创建条件
      • 根元素:body/:root
      • float left/right
      • position absolute/fixed
      • overflow:除visible
      • display: inline - block/table - cell/table - captionflex/grid等。
    • 特点
      • 垂直方向自上而下排布,垂直方向的间距由margin决定。
      • 同一个BFC中盒子之间的margin会折叠。
      • BFC中每个元素的左边缘紧挨着包含块的左边缘。
      • 计算BFC的高度时,需要计算浮动元素的高度。
      • BFC内部不会影响外部元素,BFC区域不会与浮动的元素发生重叠。
    • 作用
      • 解决margin折叠的问题。
      • 解决高度塌陷的问题(前提:浮动的父级BFC高度为auto)。
      • 创建两栏布局,左边浮动,右边overflow:hidden
  11. 介绍下BFC、IFC、GFC和FFC
    • BFC(Block formatting contexts):页面上的一个隔离的渲染区域。通过floatpositionoverflowdisplay等属性可触发。可用于实现多栏布局、解决margin折叠和高度塌陷问题等。
    • IFC(Inline formatting contexts):内联格式上下文。IFCline box高度由其包含行内元素中最高的实际高度计算而来(不受竖直方向的padding/margin影响)。IFC中的line box一般左右都贴紧整个IFC,但会被float元素扰乱。IFC中不能有块级元素,插入块级元素会产生两个匿名块与该块级元素分隔开,形成两个IFC。可用于水平居中和垂直居中,如将块元素设置为inline - block产生IFC,利用text - align水平居中;创建IFC,用一个元素撑开父元素高度,设置vertical - align:middle实现其他行内元素垂直居中。
    • GFC(GrideLayout formatting contexts):网格布局格式化上下文。当元素的display值为grid时,该元素会获得一个独立的渲染区域。通过在网格容器上定义网格定义行和列属性,以及在网格项目上定义网格行和列,可为每个网格项目定义位置和空间。与table相比,有更丰富的属性来控制行列、对齐和精细的渲染语义。
    • FFC(Flex formatting contexts):自适应格式上下文。display值为flexinline - flex的元素会生成自适应容器。由伸缩容器和伸缩项目组成,设置为flex的容器渲染为块级元素,inline - flex的容器渲染为行内元素。伸缩容器中的子元素为伸缩项目,可自由布局。目前部分浏览器支持,在移动端应用广泛。
  12. 说出不同像素之间的差异?
    • 设备像素(物理像素):显示器上真实的像素,设备分辨率(如iPhone X的1125x2436)指的就是设备像素。
    • 设备独立像素(逻辑像素):是对设备像素的抽象,为开发者提供统一的像素概念。不同设备像素下,开发者使用设备独立像素可实现相对一致的显示效果。
    • css像素:默认情况下就是设备独立像素(逻辑像素)。在高分辨率屏幕(如2k、4k)中,一个css像素可能由多个物理像素渲染。
  13. 分析比较opacity: 0、visibility: hidden、display: none优劣和适用场景
    • 结构
      • display:none:元素完全从渲染树中消失,渲染时不占据空间,不能点击。
      • visibility: hidden:元素不会从渲染树消失,渲染元素继续占据空间,只是内容不可见,不能点击。
      • opacity: 0:元素不会从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击。
    • 继承
      • display: noneopacity: 0:是非继承属性,子孙节点消失是因为元素从渲染树消失,修改子孙节点属性无法显示。
      • visibility: hidden:是继承属性,子孙节点消失是由于继承了hidden,通过设置visibility: visible可让子孙节点显示。
    • 性能
      • display:none:修改元素会造成文档回流,读屏器不会读取该元素内容,性能消耗较大。
      • visibility:hidden:修改元素只会造成本元素的重绘,性能消耗较少,读屏器读取该元素内容。
      • opacity: 0:修改元素会造成重绘,性能消耗较少。
    • 适用场景
      • display:none:适用于在页面加载时就不需要显示,且不希望占用布局空间的元素。
      • visibility: hidden:适用于临时隐藏元素,且希望保留其占位空间的场景。
      • opacity: 0:适用于需要元素不可见但仍可交互(如点击)的情况。
  14. 如何解决移动端Retina屏1px像素问题
    • 0.5px实现:利用媒体查询根据设备像素比设置边框宽度为0.5px(或0.333333px等)。但在IOS7及以下和部分Android浏览器中,0.5px可能显示为0px,需通过JS检测浏览器是否支持0.5px。优点是简单无副作用,缺点是兼容性有限。
    • viewport + rem实现:通过设置缩放,使CSS像素等于真正的物理像素。需要动态计算并设置根字体大小,在CSS中使用rem单位。缺点是通过JS修改文档会影响性能,且会影响项目中所有使用rem单位的对象,不适合老项目改造。
    • 伪元素 + transform实现(推荐):利用伪元素(如::after::before)独立于当前元素的特性,基于媒体查询判断设备像素比,对伪元素进行缩放来实现1px效果。若要满足圆角,需给伪类也加上border - radius。优点是兼容性好,无副作用。
    • svg实现(推荐):svg是矢量图形,1px对应的物理像素就是1px。可搭配PostCSS的postcss - write - svg使用。优点是实现简单,可实现圆角;缺点是需要学习svg语法。
  15. 如何用css实现单行和多行文本溢出省略效果?并考虑兼容
    • 单行(推荐)
p {overflow: hidden; text - overflow: ellipsis; white - space: nowrap; 
}
- **多行(推荐)**:
p {display: -webkit - box; -webkit - line - clamp: 3; /* 行数 */-webkit - box - orient: vertical;overflow: hidden;width: 600px;
}
- **考虑兼容**:
p {position: relative; line - height: 20px; max - height: 40px;overflow: hidden;
}
p::after{content: "..."; position: absolute; bottom: 0; right: 0; padding - left: 40px; background: -webkit - linear - gradient(left, transparent, #fff 55%); background: -o - linear - gradient(right, transparent, #fff 55%); background: -moz - linear - gradient(right, transparent, #fff 55%); background: linear - gradient(to right, transparent, #fff 55%); 
}
  1. 如何计算白屏时间和首屏加载时间
    • 白屏时间window.performance.timing.domLoading - window.performance.timing.navigationStart
    • 首屏时间window.performance.timing.domInteractive - window.performance.timing.navigationStart
  2. 如何自定义滚动条的样式
    • 滚动条相关样式都是伪元素,以scrollbar打头,兼容性一般(主要是-webkit -前缀),但Chrome浏览器使用广泛。
    • 常用伪元素:
      • ::-webkit - scrollbar:整个滚动条。
      • ::-webkit - scrollbar - thumb:滚动条上的滚动滑块。
      • ::-webkit - scrollbar - track:滚动条轨道。
    • 示例代码:
::-webkit - scrollbar {width: 6px;height: 6px;
} 
::-webkit - scrollbar - track { border - radius: 3px;background: rgba(0, 0, 0);box - shadow: inset 0 0 5px rgba(0, 0, 0, 0.08);
}
::-webkit - scrollbar - thumb {border - radius: 3px;background: rgba(0, 0, 1);box - shadow: inset 0 0 10px rgba(0, 0, 0, 0.2);
}

相关文章:

前端题目类型

HTMLCSS常见面试题 HTML标签有哪些行内元素 img、picture、span、input、textarea、select、label 说说你对元素语义化的理解 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果&#xff0c;但这样会使事情复杂化&#xff0c;所以需…...

nodejs学习——nodejs和npm安装与系统环境变量配置及国内加速

nodejs和npm安装与系统环境变量配置及国内加速 下载node-v22.14.0-x64.msi 建议修改为非C盘文件夹 其它步骤&#xff0c;下一步&#xff0c;下一步&#xff0c;完成。 打开CMD窗口查看安装详情 $ node -v v22.14.0 $ npm -v 10.9.2$ npm config list创建node_global和node_c…...

[视频编码]rkmpp 实现硬件编码

mpi_enc_test的命令参数描述说明 命令参数的描述说明如下&#xff1a; 命令参数 描述说明 -i 输入的图像文件。 -o 输出的码流文件。 -w 图像宽度&#xff0c;单位为像素。 -h 图像高度&#xff0c;单位为像素。 -hstride 垂直方向相邻两行之间的距离&#xff0c;单…...

Vue3实战学习(Vue3的基础语法学习与使用(超详细))(3)

目录 &#xff08;1&#xff09;Vue3工程环境准备、项目基础脚手架搭建详细教程。(博客链接) &#xff08;2&#xff09;Vue3的基础语法学习与使用。 &#xff08;1&#xff09;"{{}}"绑定数据。 <1>ref()函数定义变量——绑定数据。 <2>reactive({...})…...

基于multisim的花样彩灯循环控制电路设计与仿真

1 课程设计的任务与要求 &#xff08;一&#xff09;、设计内容&#xff1a; 设计一个8路移存型彩灯控制器&#xff0c;基本要求&#xff1a; 1. 8路彩灯能演示至少三种花型&#xff08;花型自拟&#xff09;&#xff1b; 2. 彩灯用发光二极管LED模拟&#xff1b; 3. 选做…...

EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信

1、技术背景 WebRTC是一项开源项目&#xff0c;旨在通过简单的API为浏览器和移动应用程序提供实时通信&#xff08;RTC&#xff09;功能。它允许在无需安装插件或软件的情况下&#xff0c;实现点对点的音频、视频和数据传输。 WebRTC由三个核心组件构成&#xff1a; GetUserM…...

【CSS】gap 属性详解

文章目录 一、什么是 gap 属性1. 定义2. 语法3. 默认值 二、gap 属性的基本用法1. 网格布局中的应用2. 弹性布局中的应用3. 单值和双值的区别 三、gap 属性的实际应用场景1. 表单布局优化2. 图片网格布局 四、gap 的注意事项1. 浏览器兼容性2. 替代 margin 的场景3. 不同布局的…...

【招聘精英】

我们公司是一个位于石家庄的一个科技型新型技术公司。主要做人力资源、用工、科技等方面。 有意向回石家庄的或者已经在石家庄的技术大咖、软件大牛、产品大佬、UI大神可以来了解一下。 现在招聘 高级前端开发 高级java开发 其他岗位也可以联系。 有意向的朋友可以私信我。 -…...

qt 操作多个sqlite文件

qt 操作多个sqlite文件 Chapter1 qt 操作多个sqlite文件1. 引入必要的头文件2. 创建并连接多个SQLite数据库3. 代码说明4. 注意事项 Chapter2 qt 多线程操作sqlite多文件1. 引入必要的头文件2. 创建数据库操作的工作线程类3. 在主线程中创建并启动多个工作线程4. 代码说明5. 运…...

【自学笔记】Numpy基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Numpy基础知识点总览目录1. 简介Numpy是什么为什么使用Numpy 2. 数组对象&#xff08;ndarray&#xff09;创建数组数组的属性数组的形状操作 3. 数组的基本操作数组…...

DP 问题 -- LQR中的DP问题

深入地介绍线性二次调节问题&#xff08;Linear Quadratic Regulator, LQR&#xff09;&#xff0c;并详细说明它作为动态规划&#xff08;DP&#xff09;的一个经典应用问题的求解过程。 &#x1f4cc; 一、LQR问题定义&#xff08;最优控制视角&#xff09; LQR 问题是一种特…...

Win7重装不翻车!ISO镜像安全下载渠道+BIOS设置避雷手册

一、写在前面&#xff1a;为什么你需要这份教程&#xff1f; 当电脑频繁蓝屏、系统崩溃甚至无法开机时&#xff0c;重装系统可能是最后的救命稻草。但市面上的教程往往存在三大痛点&#xff1a; ⚠️ 镜像来源不明导致系统被植入后门 ⚠️ 启动盘制作失败反复折腾 ⚠️ 操作失…...

CEF在MFC上的示例工程

CEF 在 MFC 中的使用 工程配置 1、首先创建一个MFC对话框工程 创建完运行测试效果如下 2、MFC工程引入CEF库 将 CEF 目录下的 cef子目录下载解压后放到MFC工程中&#xff1a; 然后在VS中对工程右键 -> 属性 -> C/C -> 常规 -> 附加包含目录&#xff0c;添加“.\…...

#UVM# 关于 config_db 机制中的直线非直线设置和获取讲解

在 UVM 验证环境中,uvm_config_db 是一种强大的机制,用于在不同组件之间传递配置参数。实际应用中,我们经常使用直线和非直线的设置与获取。今天,着重回忆一下这些内容,希望实际中更加方便的使用。 UVM 树结构示例 假设 UVM 树结构如下: uvm_test_top ├── env │ …...

[PWNME 2025] PWN 复现

这种比赛得0也不容易&#xff0c;前边暖声还是能作的。 GOT 指针前溢出&#xff0c;可以溢出到GOT表&#xff0c;然后把后门写上就行 Einstein 这个拿到WP也没复现成&#xff0c;最后自己改了一下。 int __cdecl handle() {int offset; // [rsp8h] [rbp-38h] BYREFunsigne…...

Java网络编程,多线程,IO流综合项目一一ChatBoxes

Java网络编程&#xff0c;多线程&#xff0c;IO流综合小项目一一ChatBoxes 作者&#xff1a;blue 时间&#xff1a;2025.3.7 文章目录 Java网络编程&#xff0c;多线程&#xff0c;IO流综合小项目一一ChatBoxes1.项目介绍2.项目源码剖析2.1客户端源码2.2客户端Sender线程Runn…...

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;大数据入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 这是目…...

【算法 C/C++】一维前缀和

2025 - 03 - 08 - 第 68 篇 Author: 郑龙浩 / 仟濹 【一维前缀和】 文章目录 前缀和与差分 - 我的博客1 大体介绍2 计算某些区间的和( 不使用前缀和 )3 计算某些区间的和( 使用前缀和 ) 前缀和与差分 - 我的博客 一维前缀和 【算法 C/C】一维前缀和 一维差分 【算法 C/C】一维…...

【C++】:STL详解 —— 红黑树

目录 平衡二叉查找树 红黑树的概念 红黑树的五大性质 红黑树的效率 红黑树和AVL树的比较 插入与删除操作 内存与实现复杂度 经典性能数据对比 总结 对旋转的基本理解 旋转的作用 左旋&#xff08;Left Rotation&#xff09; 右旋&#xff08;Right Rotation&#xf…...

【A2DP】SBC 编解码器互操作性要求详解

目录 一、SBC编解码器互操作性概述 二、编解码器特定信息元素(Codec Specific Information Elements) 2.1 采样频率(Sampling Frequency) 2.2 声道模式(Channel Mode) 2.3 块长度(Block Length) 2.4 子带数量(Subbands) 2.5 分配方法(Allocation Method) 2…...

Mysql的卸载安装配置以及简单使用

MySQL其它问题已经更新在&#xff1a;MySQL完善配置---可视化-CSDN博客 一、卸载 ①控制面板卸载 ②C盘隐藏项目>ProgramData>mysql相关文件夹&#xff0c;还有Program file下的MySQL文件夹 ③开始菜单栏搜索>服务&#xff0c;找到MySQL相关服务删除&#xff0c;如果再…...

Ubuntu 下 nginx-1.24.0 源码分析 (1)

main 函数在 src\core\nginx.c int ngx_cdecl main(int argc, char *const *argv) {ngx_buf_t *b;ngx_log_t *log;ngx_uint_t i;ngx_cycle_t *cycle, init_cycle;ngx_conf_dump_t *cd;ngx_core_conf_t *ccf;ngx_debug_init(); 进入 main 函数 最…...

驱动开发系列43 - Linux 显卡KMD驱动代码分析(四)- DRM设备操作

一:概述 DRM(Direct Rendering Manager)是Linux内核中的一个子系统,主要负责图形硬件的管理与图形渲染的加速。它为图形驱动提供了一个统一的接口,可以使用户空间程序与图形硬件进行直接交互,而无需通过X服务器或Wayland等显示管理器。DRM不仅用于管理显卡,还处理视频输…...

PAT乙级真题(2014·冬)

大纲 1031、查验身份证-&#xff08;解析&#xff09;-简单题 1032、挖掘机技术哪家强-&#xff08;解析&#xff09;-细节题(┬┬﹏┬┬)&#xff0c;太抠细节了 1033、旧键盘打字-&#xff08;解析&#xff09;-输入格式&#xff01;这才是重点(┬┬﹏┬┬)&#xff0c;让…...

快速使用MASR V3版不能语音识别框架

前言 本文章主要介绍如何快速使用MASR语音识别框架训练和推理&#xff0c;本文将致力于最简单的方式去介绍使用&#xff0c;如果使用更进阶功能&#xff0c;还需要从源码去看文档。仅需三行代码即可实现训练和推理。 源码地址&#xff1a;https://github.com/yeyupiaoling/MA…...

学习笔记:Python网络编程初探之基本概念(一)

一、网络目的 让你设备上的数据和其他设备上进行共享&#xff0c;使用网络能够把多方链接在一起&#xff0c;然后可以进行数据传递。 网络编程就是&#xff0c;让在不同的电脑上的软件能够进行数据传递&#xff0c;即进程之间的通信。 二、IP地址的作用 用来标记唯一一台电脑…...

硬件基础(4):(2)认识ADC参考电压

文章目录 1. **ADC参考电压的定义**2. **如何影响采样值**3. **参考电压的选择**4. **如何选择参考电压**5. **总结** **ADC参考电压&#xff08;Vref&#xff09;**是用于定义ADC采样范围的一个重要参数&#xff0c;以下是对 ADC 参考电压的详细解释&#xff1a; 1. ADC参考电…...

项目中同时使用Redis(lettuce)和Redisson的报错

温馨提示&#xff1a;图片有点小&#xff0c;可以放大页面进行查看... 问题1&#xff1a;版本冲突 直接上图&#xff0c;这个错表示依赖版本不匹配问题&#xff0c;我本地SpringBoot用的是2.7&#xff0c;但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…...

工程化与框架系列(25)--低代码平台开发

低代码平台开发 &#x1f527; 引言 低代码开发平台是一种通过可视化配置和少量代码实现应用开发的技术方案。本文将深入探讨低代码平台的设计与实现&#xff0c;包括可视化编辑器、组件系统、数据流管理等关键主题&#xff0c;帮助开发者构建高效的低代码开发平台。 低代码…...

在CentOS系统上安装Conda的详细指南

前言 Conda 是一个开源的包管理系统和环境管理系统&#xff0c;广泛应用于数据科学和机器学习领域。本文将详细介绍如何在 CentOS 系统上安装 Conda&#xff0c;帮助您快速搭建开发环境。 准备工作 在开始安装之前&#xff0c;请确保您的 CentOS 系统已经满足以下条件&#x…...

系统思考—组织诊断

“未经过诊断的行动是盲目的。” — 托马斯爱迪生 最近和一家教育培训机构沟通时&#xff0c;发现他们面临一个有意思的问题&#xff1a;每年招生都挺不错&#xff0c;但教师的整体绩效一直提升缓慢&#xff0c;导致师生之间存在长期的不匹配。管理层试了很多办法&#xff0c;…...

项目实战--网页五子棋(对战功能)(9)

上期我们完成了websocket建立连接后的数据初始化&#xff0c;今天我们完成落子交互的具体代码&#xff1a; 这里我们先复习一下&#xff0c;之前约定好的落子请求与响应包含的字段&#xff1a; 1. 发送落子请求 我们在script.js文件中找到落子的相关方法&#xff0c;增加发送请…...

Ubuntu系统安装Apache2方法

Ubuntu系统安装Apache2方法 一、安装 Apache2更新软件包列表安装 Apache2启动服务验证安装 二、访问默认页面三、基本配置配置文件结构目录权限访问测试 四、故障排除五、总结 一、安装 Apache2 更新软件包列表 在安装任何软件之前&#xff0c;建议先更新系统的软件包列表&am…...

DeepSeek R1-32B医疗大模型的完整微调实战分析(全码版)

DeepSeek R1-32B微调实战指南 ├── 1. 环境准备 │ ├── 1.1 硬件配置 │ │ ├─ 全参数微调:4*A100 80GB │ │ └─ LoRA微调:单卡24GB │ ├── 1.2 软件依赖 │ │ ├─ PyTorch 2.1.2+CUDA │ │ └─ Unsloth/ColossalAI │ └── 1.3 模…...

基于springboot和spring-boot-starter-data-jpa快速操作mysql数据库

1、创建springboot项目 2、pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…...

深度学习代码解读——自用

代码来自&#xff1a;GitHub - ChuHan89/WSSS-Tissue 借助了一些人工智能 2_generate_PM.py 功能总结 该代码用于 生成弱监督语义分割&#xff08;WSSS&#xff09;所需的伪掩码&#xff08;Pseudo-Masks&#xff09;&#xff0c;是 Stage2 训练的前置步骤。其核心流程为&a…...

文件与目录权限

目录 文件权限 文件读权限&#xff08;r) 文件写权限&#xff08;w) 文件可执行权限(x) 目录权限 目录读权限&#xff08;r) 目录写权限&#xff08;w) 文件可执行权限&#xff08;x)&#xff08;与文件权限最大不同之处&#xff09; 注意 在 Linux 系统中&#xff0c…...

算法005——有效三角形个数

力扣——有效三角形个数点击链接跳转 判断三条边是否能组成三角形&#xff0c;大家第一时间想到的就是两边之和大于第三边 但是运用这个方法&#xff0c;我们需要判断三次&#xff0c;有一个更简单的方法&#xff0c;只需要判断一次 因为 C 已经是三边之中最大的了&#xff…...

Facebook 的隐私保护数据存储方案研究

Facebook 的隐私保护数据存储方案研究 在这个信息爆炸的时代&#xff0c;数据隐私保护已成为公众关注的热点。Facebook&#xff0c;作为全球最大的社交媒体平台之一&#xff0c;承载着海量用户数据&#xff0c;其隐私保护措施和数据存储方案对于维护用户隐私至关重要。本文将深…...

如何高效利用Spring中的@Cacheable注解?

在现代软件开发中&#xff0c;缓存是提升应用性能的重要手段。Spring框架提供了Cacheable注解&#xff0c;帮助开发者轻松实现缓存机制。今天我们就来详细聊聊Cacheable注解的使用&#xff0c;看看它是如何让我们的应用更加高效的&#xff01; Cacheable注解的核心功能是缓存方…...

Qt 进度条与多线程应用、基于 Qt 的文件复制工具开发

练习1&#xff1a;Qt 进度条与多线程应用 题目描述 开发一个基于 Qt 的应用程序&#xff0c;该应用程序包含一个水平进度条&#xff08;QSlider&#xff09;&#xff0c;并且需要通过多线程来更新进度条的值。请根据以下要求完成代码&#xff1a; 界面设计&#xff1a; 使用 QS…...

软件工程---构件

在软件工程中&#xff0c;构件是一个独立的、可复用的软件单元&#xff0c;它具有明确的功能、接口和行为&#xff0c;并且可以在不同的环境中加以集成和复用。构件的概念是软件架构和组件化开发的核心思想之一&#xff0c;其目的是促进软件系统的模块化、可维护性和可扩展性。…...

【算法 C/C++】二维差分

2025 - 03 - 08 - 第 71 篇 Author: 郑龙浩 / 仟濹 【二维差分】 文章目录 前缀和与差分 - 我的博客差分(二维)1 大体思路 | 一些区间加某数的最终结果2 二维差分原理3 例题 前缀和与差分 - 我的博客 一维前缀和 【算法 C/C】一维前缀和 一维差分 【算法 C/C】一维差分 二维前…...

灰色地带规避:知识产权校验API的商标库模糊匹配算法

在反向海淘或其他电商业务场景中&#xff0c;为了规避知识产权方面的灰色地带&#xff0c;开发知识产权校验 API 并运用商标库模糊匹配算法是很有必要的。以下将详细介绍商标库模糊匹配算法的设计与实现&#xff1a; 算法设计思路 商标库模糊匹配算法的核心目标是在给定一个待匹…...

LINUX网络基础 [五] - HTTP协议

目录 HTTP协议 预备知识 认识 URL 认识 urlencode 和 urldecode HTTP协议格式 HTTP请求协议格式 HTTP响应协议格式 HTTP的方法 HTTP的状态码 ​编辑HTTP常见Header HTTP实现代码 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目录 H…...

嵌入式人工智能应用-第6章 人脸检测

嵌入式人工智能应用 人脸检测 嵌入式人工智能应用1 人脸检测1.1 CNN 介绍1.2 人脸检测原理1.3 MTCNN介绍1.4 NCNN介绍2 系统安装2.1 安装依赖库NCNN2.2 运行对应的库3 总结1 人脸检测 1.1 CNN 介绍 卷积神经网络。卷积是什么意思呢?从数学上说,卷积是一种运算。它是我们学习…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(中)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 Q. 编译器引擎本身是用…...

redis数据类型以及底层数据结构

redis数据类型以及底层数据结构 String&#xff1a;字符串类型&#xff0c;底层就是动态字符串&#xff0c;使用sds数据结构 Map:有两种数据结构&#xff1a;1.压缩列表&#xff1a;当hash结构中存储的元素个数小于了512个。并且元 …...

C运算符 对比a++、++a、b--、 --b

#include<stdio.h> int main() { int a 21;int b 10;int c, d;c a;//先赋值给c,a本身再运算 c 21, a 22;//c a;//a本身先运算&#xff0c;再赋值给c a 22,c 22;printf("c %d, a %d\n",c, a); d --b;//b本身先运算&#xff0c;再赋值给d …...

Java EE 进阶:Spring MVC(2)

cookie和session的关系 两者都是在客户端和服务器中进行存储数据和传递信息的工具 cookie和session的区别 Cookie是客⼾端保存⽤⼾信息的⼀种机制. Session是服务器端保存⽤⼾信息的⼀种机制. Cookie和Session之间主要是通过SessionId关联起来的&#xff0c;SessionId是Co…...