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

【HTML】【面试提问】HTML面试提问总结

第一章 HTML基础相关提问

1.1 HTML基本概念

1.1.1 什么是HTML

HTML 即超文本标记语言(HyperText Markup Language)😎,它是用于创建网页的标准标记语言。简单来说,HTML 就像是搭建房屋的砖块🧱,通过各种标签来描述网页的结构和内容。比如,用 <p> 标签表示段落,用 <h1> - <h6> 标签表示不同级别的标题。它不是一种编程语言,而是一种标记语言,通过各种标签告诉浏览器如何显示网页上的内容。

1.1.2 HTML的发展历程
  • 1991年:蒂姆·伯纳斯 - 李(Tim Berners - Lee)首次提出 HTML 概念,当时只有少量简单的标签,主要用于在互联网上共享科学信息📚。
  • 1993年:HTML 1.0 诞生,但并未正式作为标准发布,只是一个草案,主要用于文本和简单图像的展示。
  • 1995年:HTML 2.0 成为第一个正式标准,增加了表单元素等功能,使得网页可以实现用户交互,例如用户可以在表单中输入信息。
  • 1997年:HTML 3.2 发布,它引入了表格、数学公式等元素,丰富了网页的展示形式,让网页可以更规整地显示数据。
  • 1999年:HTML 4.01 发布,这是一个广泛使用的版本,它增强了样式和脚本的支持,使得网页的设计更加灵活和美观。
  • 2014年:HTML5 正式成为标准,它带来了许多新特性,如视频 <video> 和音频 <audio> 标签、画布 <canvas> 元素、地理定位等,大大扩展了网页的功能和应用范围。
1.1.3 HTML的作用和应用场景
1. 作用

HTML 的主要作用是构建网页的结构和内容。它就像网页的骨架,决定了网页上各个元素的位置和布局。通过不同的标签组合,可以将文字、图片、视频等元素有序地排列在网页上,让用户能够清晰地浏览和获取信息。

2. 应用场景
  • 个人网站:用于展示个人的信息、作品、博客等内容,让他人更好地了解自己。比如个人的摄影作品展示网站,通过 HTML 可以将照片有序地排列并配上文字说明。
  • 企业官网:宣传企业的形象、产品和服务,是企业在互联网上的重要窗口。企业可以通过 HTML 展示产品的介绍、案例、联系方式等信息。
  • 电子商务网站:用于展示商品信息、购物车、结算页面等,实现商品的在线销售。像淘宝、京东等电商平台的商品详情页就是用 HTML 构建的。
  • 新闻网站:呈现新闻内容、图片和视频,方便用户浏览新闻资讯。各大新闻网站的文章页面都是基于 HTML 来展示的。

1.2 HTML文档结构

1.2.2 文档类型声明(DOCTYPE)的作用和不同类型
1. 作用

DOCTYPE 声明位于 HTML 文档的第一行,它的作用是告诉浏览器当前文档使用的 HTML 版本。这有助于浏览器以正确的方式解析和渲染网页。如果没有 DOCTYPE 声明,浏览器可能会进入“怪异模式”,在这种模式下,不同浏览器对网页的渲染可能会存在差异,导致网页显示不一致。

2. 不同类型
  • HTML 5<!DOCTYPE html>,这是 HTML 5 的文档类型声明,也是目前最常用的声明方式,它非常简洁,适用于所有现代浏览器。
  • HTML 4.01 Strict<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,这种声明方式要求文档严格遵循 HTML 4.01 的标准,不允许使用一些不规范的标签和属性。
  • HTML 4.01 Transitional<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">,它允许使用一些过渡性的标签和属性,适用于那些需要兼容旧版浏览器的网页。
1.2.3 HTML头部(head)和主体(body)的区别和用途
1. 区别
  • 位置<head> 标签位于 HTML 文档的开头部分,而 <body> 标签紧随 <head> 标签之后,包含了网页的可见内容。
  • 内容<head> 标签中包含的是关于网页的元数据,如网页标题、字符编码、引入的外部文件等,这些内容不会直接显示在网页上;而 <body> 标签中包含的是网页的实际内容,如文本、图片、链接等,会在浏览器中显示出来。
2. 用途
  • 头部(head)
    • 设置网页标题:使用 <title> 标签,网页标题会显示在浏览器的标题栏或标签页上,方便用户识别网页。
    • 指定字符编码:使用 <meta charset="UTF-8"> 标签,确保网页能够正确显示各种语言的字符。
    • 引入外部文件:可以使用 <link> 标签引入外部的 CSS 文件来设置网页的样式,使用 <script> 标签引入外部的 JavaScript 文件来实现网页的交互功能。
  • 主体(body)
    • 显示文本内容:使用 <p><h1> - <h6> 等标签来展示文字信息。
    • 插入图片:使用 <img> 标签插入图片,让网页更加生动。
    • 创建链接:使用 <a> 标签创建超链接,实现网页之间的跳转。

1.3 HTML标签

1.3.1 常用HTML标签有哪些
  • 标题标签<h1> - <h6>,用于表示不同级别的标题,<h1> 是最高级别的标题,字体最大,<h6> 是最低级别的标题,字体最小。例如:
<h1>这是一级标题</h1>
<h2>这是二级标题</h2>
  • 段落标签<p>,用于表示段落,将文本内容进行分段显示。例如:
<p>这是一个段落的内容。</p>
  • 链接标签<a>,用于创建超链接,可以链接到其他网页、文件或同一网页的不同位置。例如:
<a href="https://www.example.com">这是一个链接</a>
  • 图片标签<img>,用于在网页中插入图片。需要使用 src 属性指定图片的路径。例如:
<img src="image.jpg" alt="这是一张图片">
  • 列表标签
    • 无序列表<ul><li>,用于创建无序列表,列表项前会显示圆点。例如:
<ul><li>列表项1</li><li>列表项2</li>
</ul>
- **有序列表**:`<ol>` 和 `<li>`,用于创建有序列表,列表项前会显示数字序号。例如:
<ol><li>列表项1</li><li>列表项2</li>
</ol>
1.3.2 标签的分类(块级标签、内联标签等)
1. 块级标签

块级标签会独占一行,并且可以设置宽度和高度。常见的块级标签有 <div><p><h1> - <h6><ul><ol> 等。例如:

<div style="background-color: lightblue; width: 200px; height: 100px;">这是一个 div 块级元素</div>

<div> 标签将占据一行,并且可以通过 CSS 设置其背景颜色、宽度和高度。

2. 内联标签

内联标签不会独占一行,而是会在同一行内显示,并且宽度和高度由内容决定,不能直接设置。常见的内联标签有 <a><img><span> 等。例如:

<a href="#">这是一个链接</a>

<a> 标签会和其他内联元素在同一行显示,不会换行。

3. 内联块标签

内联块标签结合了块级标签和内联标签的特点,它不会独占一行,但可以设置宽度和高度。常见的内联块标签有 <input><button> 等。例如:

<input type="text" value="这是一个输入框">

<input> 标签可以在同一行内显示,并且可以设置其宽度和高度。

1.3.3 标签的属性有什么作用及常见属性举例
1. 作用

标签的属性用于为标签提供额外的信息,控制标签的行为和外观。不同的标签有不同的属性,通过设置属性可以实现各种不同的效果。

2. 常见属性举例
  • href 属性:用于 <a> 标签,指定链接的目标地址。例如:
<a href="https://www.example.com">点击这里访问示例网站</a>
  • src 属性:用于 <img> 标签,指定图片的路径。例如:
<img src="image.jpg" alt="这是一张图片">
  • alt 属性:用于 <img> 标签,当图片无法显示时,会显示 alt 属性中的文本,同时也有助于搜索引擎理解图片内容。
  • id 属性:用于为标签指定一个唯一的标识符,在 CSS 和 JavaScript 中可以通过 id 来选择和操作该元素。例如:
<div id="myDiv">这是一个有 id 的 div 元素</div>
  • class 属性:用于为标签指定一个或多个类名,通过类名可以为多个元素应用相同的样式。例如:
<p class="myClass">这是一个有类名的段落</p>
  • style 属性:用于直接在标签中设置 CSS 样式。例如:
<p style="color: red; font-size: 20px;">这是一个设置了样式的段落</p>

第二章 HTML文本与排版提问

2.1 文本标签

2.1.1 标题标签(h1 - h6)的使用和区别

在 HTML 中,标题标签用于定义网页中的标题,一共有 6 个级别,从 <h1><h6><h1> 表示最重要的主标题,<h6> 表示最不重要的子标题。下面是它们的具体使用和区别:

  • 字体大小<h1> 字体最大,随着标题级别的增加,字体逐渐变小。例如:
<h1>这是一级标题</h1>
<h2>这是二级标题</h2>
<h3>这是三级标题</h3>
<h4>这是四级标题</h4>
<h5>这是五级标题</h5>
<h6>这是六级标题</h6>

在浏览器中显示时,一级标题会比二级标题大,以此类推😎。

  • 重要性:搜索引擎会根据标题标签来判断页面的结构和内容的重要性,<h1> 通常被认为是页面中最重要的内容,所以一个页面一般只使用一个 <h1> 标签,用于突出页面的主题🧐。
2.1.2 段落标签(p)的特性和应用

<p> 标签用于定义 HTML 中的段落。它有以下特性和应用场景:

  • 自动换行:当使用 <p> 标签包裹文本时,浏览器会自动在段落前后添加换行,使文本以段落的形式呈现。例如:
<p>这是一个段落,它包含了一些文本内容。当文本过长时,浏览器会自动进行换行处理。</p>
<p>这是另一个段落,与上一个段落之间会有一定的间距。</p>
  • 段落间距:浏览器默认会在段落之间添加一定的垂直间距,使页面看起来更清晰易读😃。

  • 应用场景:在网页中,我们通常使用 <p> 标签来组织文章、故事、说明等文本内容。

2.1.3 文本格式化标签(b、i、u等)的功能

HTML 提供了一些文本格式化标签,用于改变文本的外观,下面是一些常见标签的功能:

  • <b> 标签:用于将文本加粗显示,强调文本内容,但不表示语义上的重要性。例如:
<p>这是一段普通文本,<b>这里的文本被加粗了</b></p>
  • <i> 标签:用于将文本以斜体显示,通常用于表示一些术语、书籍名称、外语词汇等。例如:
<p>在英语中,<i>“apple”</i> 表示苹果。</p>
  • <u> 标签:用于给文本添加下划线,不过在现代网页设计中,下划线通常用于表示超链接,所以使用时要谨慎。例如:
<p>这是一段普通文本,<u>这里的文本被添加了下划线</u></p>

2.2 列表标签

2.2.1 无序列表(ul)和有序列表(ol)的创建方法
  • 无序列表(<ul>:无序列表使用 <ul> 标签定义,列表项使用 <li> 标签定义。列表项前会显示一个项目符号(通常是实心圆点)。例如:
<ul><li>苹果</li><li>香蕉</li><li>橙子</li>
</ul>

在浏览器中显示如下:

  • 苹果

  • 香蕉

  • 橙子

  • 有序列表(<ol>:有序列表使用 <ol> 标签定义,列表项同样使用 <li> 标签定义。列表项前会显示一个序号(通常是数字)。例如:

<ol><li>第一步:打开电脑</li><li>第二步:启动浏览器</li><li>第三步:访问网页</li>
</ol>

在浏览器中显示如下:

  1. 第一步:打开电脑
  2. 第二步:启动浏览器
  3. 第三步:访问网页
2.2.2 列表项(li)的嵌套使用

列表项可以进行嵌套,即在一个列表项中可以再包含另一个列表。例如,在无序列表中嵌套有序列表:

<ul><li>水果<ol><li>苹果</li><li>香蕉</li></ol></li><li>蔬菜<ol><li>胡萝卜</li><li>西兰花</li></ol></li>
</ul>

这样可以创建出更复杂的列表结构,使内容的组织更加清晰🧐。

2.2.3 自定义列表(dl、dt、dd)的应用场景

自定义列表由 <dl> 标签定义,<dt> 标签用于定义列表项的标题,<dd> 标签用于定义列表项的描述。它的应用场景通常是用于展示术语和定义、问题和答案等。例如:

<dl><dt>HTML</dt><dd>超文本标记语言,用于创建网页的结构。</dd><dt>CSS</dt><dd>层叠样式表,用于美化网页的外观。</dd>
</dl>

在浏览器中显示如下:
HTML
超文本标记语言,用于创建网页的结构。
CSS
层叠样式表,用于美化网页的外观。

2.3 排版布局

2.3.1 如何实现文本的对齐方式(左对齐、右对齐等)

在 HTML 中,可以使用 CSS 来实现文本的对齐方式。以下是几种常见的对齐方式及其实现方法:

  • 左对齐:默认情况下,文本是左对齐的。如果需要显式设置左对齐,可以使用 text-align: left;。例如:
<p style="text-align: left;">这是左对齐的文本。</p>
  • 右对齐:使用 text-align: right; 可以将文本右对齐。例如:
<p style="text-align: right;">这是右对齐的文本。</p>
  • 居中对齐:使用 text-align: center; 可以将文本居中对齐。例如:
<p style="text-align: center;">这是居中对齐的文本。</p>
2.3.2 如何进行页面的分栏布局

在 HTML 中,可以使用 CSS 的 column 属性来实现页面的分栏布局。例如,将一段文本分成两栏显示:

<style>.column-container {column-count: 2;column-gap: 20px;}
</style>
<div class="column-container"><p>这是一段需要进行分栏布局的文本。这是一段需要进行分栏布局的文本。这是一段需要进行分栏布局的文本。这是一段需要进行分栏布局的文本。</p>
</div>

在上面的代码中,column-count 属性指定了分栏的数量,column-gap 属性指定了栏与栏之间的间距😉。

2.3.3 空格和换行在HTML中的处理方式

在 HTML 中,连续的多个空格会被合并为一个空格,换行符也会被忽略。如果需要显示多个连续的空格,可以使用 &nbsp; 实体,它表示一个不间断的空格。例如:

<p>这是一段&nbsp;&nbsp;&nbsp;&nbsp;带有多个空格的文本。</p>

如果需要换行,可以使用 <br> 标签。例如:

<p>这是第一行文本。<br>这是第二行文本。</p>

这样就可以在 HTML 中实现空格和换行的效果啦😎。

第三章 HTML图像与多媒体提问

3.1 图像标签

3.1.1 img 标签的使用方法和必要属性

1. 使用方法

<img> 标签用于在 HTML 页面中插入图像。它是一个自闭合标签,也就是说不需要单独的结束标签。基本的语法格式如下:

<img src="image.jpg" alt="这是一张示例图片">

在上面的代码中,<img> 标签就会在页面上显示指定的图像。

2. 必要属性
  • src 属性:这是 <img> 标签最重要的属性,它指定了图像的源文件路径。可以是本地文件的路径,也可以是网络上的图片地址。例如:
<!-- 本地图片 -->
<img src="local-image.jpg">
<!-- 网络图片 -->
<img src="https://example.com/image.jpg">
  • alt 属性:当图像无法正常显示时,alt 属性的值会作为替代文本显示出来。这对于屏幕阅读器等辅助设备非常有用,能帮助视障人士理解页面内容。比如:
<img src="nonexistent-image.jpg" alt="这里应该显示一张美丽的风景图">

3.1.2 图像的路径设置(相对路径和绝对路径)

1. 相对路径

相对路径是相对于当前 HTML 文件的位置来指定图像的位置。常见的相对路径有以下几种情况:

  • 同一目录下:如果图像和 HTML 文件在同一目录下,直接写图像的文件名即可。例如:
<!-- HTML 文件和 image.jpg 在同一目录 -->
<img src="image.jpg">
  • 子目录下:如果图像在 HTML 文件所在目录的子目录中,需要指定子目录的名称。比如图像在 images 子目录下:
<img src="images/image.jpg">
  • 上级目录:如果图像在 HTML 文件所在目录的上级目录,可以使用 ../ 来表示上级目录。例如:
<!-- 图像在上级目录 -->
<img src="../image.jpg">
2. 绝对路径

绝对路径是指完整的文件路径,包括协议、域名等信息。通常用于引用网络上的图片。例如:

<img src="https://www.example.com/images/image.jpg">

3.1.3 图像的大小调整和缩放

1. 使用 width 和 height 属性

可以通过 <img> 标签的 widthheight 属性来调整图像的大小。这两个属性的值可以是像素值,也可以是百分比。例如:

<!-- 设置固定宽度和高度 -->
<img src="image.jpg" width="200" height="150">
<!-- 设置宽度为父元素的 50% -->
<img src="image.jpg" width="50%">

需要注意的是,如果只设置了 widthheight 中的一个属性,图像会按比例缩放。

2. 使用 CSS 进行缩放

也可以使用 CSS 来调整图像的大小,这种方式更加灵活。例如:

<style>.resized-image {width: 300px;height: auto; /* 保持图像的比例 */}
</style>
<img src="image.jpg" class="resized-image">

3.2 多媒体标签

3.2.1 video 标签的使用,包括视频的嵌入和控制

1. 视频的嵌入

<video> 标签用于在 HTML 页面中嵌入视频。基本的语法格式如下:

<video src="video.mp4" controls></video>

在上面的代码中,src 属性指定了视频文件的路径,controls 属性会显示视频的控制条,让用户可以播放、暂停、调整音量等。

2. 视频的控制

除了 controls 属性,<video> 标签还有其他一些属性可以用于控制视频的播放。例如:

  • autoplay:视频页面加载完成后自动播放。
<video src="video.mp4" autoplay></video>
  • loop:视频播放完后自动循环播放。
<video src="video.mp4" loop></video>
  • muted:视频静音播放。
<video src="video.mp4" muted></video>

3.2.2 audio 标签的使用,包括音频的播放和设置

1. 音频的播放

<audio> 标签用于在 HTML 页面中嵌入音频。基本的语法格式如下:

<audio src="audio.mp3" controls></audio>

<video> 标签类似,src 属性指定音频文件的路径,controls 属性显示音频的控制条。

2. 音频的设置

<audio> 标签也有一些属性可以用于控制音频的播放,例如:

  • autoplay:音频页面加载完成后自动播放。
<audio src="audio.mp3" autoplay></audio>
  • loop:音频播放完后自动循环播放。
<audio src="audio.mp3" loop></audio>
  • muted:音频静音播放。
<audio src="audio.mp3" muted></audio>

3.2.3 多媒体文件的格式支持和兼容性问题

1. 常见的多媒体文件格式
  • 视频格式:常见的视频格式有 MP4、WebM、OGG 等。不同的浏览器对这些格式的支持情况有所不同。例如,MP4 是目前最广泛支持的视频格式,几乎所有的现代浏览器都支持。
  • 音频格式:常见的音频格式有 MP3、WAV、OGG 等。MP3 是最流行的音频格式,兼容性也比较好。
2. 兼容性问题的解决方法

为了确保多媒体文件在不同的浏览器中都能正常播放,可以提供多种格式的文件。可以使用 <source> 标签来实现这一点。例如:

<video controls><source src="video.mp4" type="video/mp4"><source src="video.webm" type="video/webm">您的浏览器不支持视频播放。
</video>

在上面的代码中,浏览器会尝试依次加载不同格式的视频文件,直到找到一个支持的格式。如果所有格式都不支持,就会显示提示信息。同样的方法也适用于音频文件:

<audio controls><source src="audio.mp3" type="audio/mpeg"><source src="audio.ogg" type="audio/ogg">您的浏览器不支持音频播放。
</audio>

第四章 HTML链接与表单提问

4.1 链接标签

4.1.1 a标签的基本用法和属性

1. 基本用法

<a> 标签是 HTML 中用于创建超链接的标签,它可以让用户从一个页面跳转到另一个页面,或者跳转到同一页面的不同位置。其基本语法如下:

<a href="目标地址">链接文本</a>

例如:

<a href="https://www.example.com">访问示例网站</a>

这里,当用户点击“访问示例网站”这个文本时,就会跳转到 https://www.example.com 这个网站。

2. 常见属性
  • href:这是 <a> 标签最重要的属性,用于指定链接的目标地址。可以是一个完整的 URL,也可以是相对路径。
  • target:用于指定链接的打开方式。常见的值有:
    • _self:默认值,在当前窗口中打开链接。
    • _blank:在新窗口中打开链接。例如:
<a href="https://www.example.com" target="_blank">在新窗口打开示例网站</a>
  • title:为链接提供额外的信息,当鼠标悬停在链接上时,会显示该属性的值。例如:
<a href="https://www.example.com" title="这是一个示例网站">访问示例网站</a>

4.1.2 内部链接和外部链接的创建

1. 内部链接

内部链接是指在同一网站内不同页面之间的链接。使用相对路径来指定目标地址。
例如,假设网站的目录结构如下:

website/
├── index.html
├── about.html

index.html 中创建一个指向 about.html 的链接:

<a href="about.html">关于我们</a>
2. 外部链接

外部链接是指指向其他网站的链接,需要使用完整的 URL 作为 href 属性的值。
例如:

<a href="https://www.google.com">访问 Google</a>

4.1.3 锚点链接的实现和应用

1. 实现方法

锚点链接可以让用户在同一页面内快速跳转到指定的位置。实现锚点链接需要两步:

  • 首先,在目标位置添加一个带有 id 属性的元素,例如:
<h2 id="section1">第一部分</h2>
  • 然后,在需要创建链接的地方,使用 href 属性指向该 id,并在 id 前面加上 # 符号,例如:
<a href="#section1">跳转到第一部分</a>
2. 应用场景

锚点链接常用于长页面中,方便用户快速定位到感兴趣的内容。例如,在一个产品介绍页面中,可以在页面顶部创建一个目录,每个目录项都是一个锚点链接,指向页面中相应的产品介绍部分。

4.2 表单标签

4.2.1 form标签的作用和基本属性

1. 作用

<form> 标签用于创建 HTML 表单,它是用户与网站进行交互的重要方式。表单可以包含各种表单元素,如文本框、下拉框、按钮等,用户可以在表单中输入信息,然后将这些信息提交给服务器进行处理。

2. 基本属性
  • action:指定表单数据提交的目标 URL,即表单数据将被发送到哪个服务器地址进行处理。例如:
<form action="https://www.example.com/submit"><!-- 表单元素 -->
</form>
  • method:指定表单数据的提交方式,常见的值有 getpost
    • get:将表单数据附加在 URL 后面,适用于少量数据的提交,例如搜索表单。
    • post:将表单数据放在 HTTP 请求的主体中,适用于大量数据的提交,例如注册表单。
<form action="https://www.example.com/submit" method="post"><!-- 表单元素 -->
</form>

4.2.2 常见表单元素(input、select、textarea等)的使用

1. input 元素

<input> 元素是最常用的表单元素,它可以根据 type 属性的不同呈现不同的输入方式。常见的 type 值有:

  • text:用于输入单行文本。例如:
<input type="text" name="username" placeholder="请输入用户名">
  • password:用于输入密码,输入的内容会被隐藏。例如:
<input type="password" name="password" placeholder="请输入密码">
  • radio:用于创建单选按钮。例如:
<input type="radio" name="gender" value="male"><input type="radio" name="gender" value="female">
  • checkbox:用于创建复选框。例如:
<input type="checkbox" name="hobbies" value="reading"> 阅读
<input type="checkbox" name="hobbies" value="sports"> 运动
  • submit:用于创建提交按钮,点击该按钮会将表单数据提交到 action 指定的 URL。例如:
<input type="submit" value="提交">
2. select 元素

<select> 元素用于创建下拉框,用户可以从多个选项中选择一个。例如:

<select name="city"><option value="beijing">北京</option><option value="shanghai">上海</option><option value="guangzhou">广州</option>
</select>
3. textarea 元素

<textarea> 元素用于输入多行文本。例如:

<textarea name="message" rows="5" cols="30" placeholder="请输入留言内容"></textarea>

4.2.3 表单的提交和处理方式

1. 提交方式
  • 使用 submit 按钮:在表单中添加一个 type="submit"<input> 元素或 <button> 元素,点击该按钮即可提交表单。例如:
<form action="https://www.example.com/submit" method="post"><input type="text" name="username" placeholder="请输入用户名"><input type="submit" value="提交">
</form>
  • 使用 JavaScript:可以使用 JavaScript 代码来触发表单的提交事件。例如:
<form id="myForm" action="https://www.example.com/submit" method="post"><input type="text" name="username" placeholder="请输入用户名">
</form>
<button onclick="document.getElementById('myForm').submit()">提交表单</button>
2. 处理方式

表单数据提交到服务器后,服务器需要对这些数据进行处理。常见的处理方式有:

  • 后端编程语言处理:如 Python(Flask、Django)、Java(Spring)、Node.js(Express)等。服务器接收到表单数据后,可以将数据存储到数据库中,或者进行其他业务逻辑处理。
  • API 接口处理:可以将表单数据发送到一个 API 接口,API 接口会对数据进行验证和处理,并返回相应的结果。

🎯 总结:HTML 中的链接标签和表单标签是非常重要的元素,它们为网页提供了丰富的交互功能。通过合理使用这些标签,可以让用户更方便地浏览网页和与网站进行交互。

第五章 HTML语义化与兼容性提问

5.1 语义化标签

5.1.1 语义化标签(header、nav、article等)的作用和优势
1. 作用
  • header 标签:就像是一本书的封面和前言部分📖,它通常包含页面或页面中某个区域的介绍性内容,比如网站的标题、标志、搜索框等。例如在一个新闻网站中,header 可能包含网站的名称、导航栏和搜索功能。
  • nav 标签:类似于城市中的交通指示牌🚥,它专门用于放置导航链接,帮助用户在网站的不同页面之间进行跳转。比如在电商网站中,nav 可能包含“首页”“商品分类”“购物车”等链接。
  • article 标签:可以看作是一篇独立的文章📰,它包含了完整的、可以独立存在的内容,如博客文章、新闻报道等。每一篇 article 都应该有自己的标题和正文。
  • section 标签:如同书籍中的章节📚,它用于对页面内容进行分块,每个 section 通常有自己的标题,用于组织相关的内容。例如在一个产品介绍页面中,不同的产品特性可以用不同的 section 来展示。
  • aside 标签:就像文章旁边的注释或侧边栏📋,它包含的内容与页面的主要内容相关,但又可以独立存在,比如广告、推荐文章等。
  • footer 标签:好比一本书的版权页和后记📕,它通常包含页面的底部信息,如版权声明、联系方式、网站地图等。
2. 优势
  • 提高代码可读性:语义化标签让代码更具逻辑性,开发者可以一眼看出页面的结构,就像看一份清晰的地图🗺️,便于团队协作和后期维护。
  • 方便屏幕阅读器等辅助设备理解内容:对于视力障碍者使用的屏幕阅读器来说,语义化标签能够准确地传达页面的结构和内容,使他们更好地访问网站,体现了网站的无障碍性♿。
  • 利于搜索引擎理解页面内容:搜索引擎可以通过语义化标签更准确地判断页面的主题和内容,从而提高网站在搜索结果中的排名📈。
5.1.2 如何正确使用语义化标签进行页面结构设计
1. 整体布局
  • 首先,使用 html 标签作为整个页面的根元素,然后在其中嵌套 headbody 标签。head 标签用于包含页面的元数据,如标题、字符编码等;body 标签用于包含页面的可见内容。
  • body 标签中,最顶部使用 header 标签来放置网站的标题、导航栏等信息。例如:
<header><h1>我的网站</h1><nav><ul><li><a href="#">首页</a></li><li><a href="#">关于我们</a></li><li><a href="#">联系我们</a></li></ul></nav>
</header>
  • 接着,使用 main 标签来包含页面的主要内容。main 标签表示页面的核心内容,每个页面应该只有一个 main 标签。例如:
<main><article><h2>文章标题</h2><p>文章内容...</p></article>
</main>
  • main 标签中,可以根据需要使用 section 标签对内容进行分块,使用 article 标签来表示独立的文章。
  • 页面的侧边栏可以使用 aside 标签来实现。例如:
<aside><h3>推荐文章</h3><ul><li><a href="#">推荐文章1</a></li><li><a href="#">推荐文章2</a></li></ul>
</aside>
  • 最后,在页面的底部使用 footer 标签来放置版权信息等内容。例如:
<footer><p>版权所有 &copy; 2024</p>
</footer>
2. 注意事项
  • 每个语义化标签都有其特定的用途,不要滥用。例如,不要将 article 标签用于一些不独立的内容,如评论列表。
  • 标签的嵌套要符合逻辑,例如 headerfooter 通常是在页面或 sectionarticle 的外层使用。
5.1.3 语义化标签对搜索引擎优化(SEO)的影响
1. 利于搜索引擎理解页面内容

搜索引擎的爬虫在抓取网页时,语义化标签能够清晰地告诉它们页面的结构和各个部分的内容。例如,article 标签明确表示这是一篇独立的文章,搜索引擎可以更容易地识别文章的标题、正文等内容,从而更准确地对文章进行索引和分类📑。

2. 提高关键词相关性

语义化标签中的标题标签(如 h1h2 等)通常包含页面的重要关键词。搜索引擎会认为这些标题中的关键词是页面的核心内容,从而提高页面在相关关键词搜索结果中的排名。例如,一个关于“旅游攻略”的页面,使用 h1 标签包含“旅游攻略”这个关键词,会让搜索引擎更重视这个关键词,提高页面在“旅游攻略”搜索结果中的曝光率🌟。

3. 增强用户体验,间接影响 SEO

语义化标签使页面结构清晰,用户在浏览页面时能够更快地找到自己需要的信息,提高了用户体验。而用户体验是搜索引擎排名的重要因素之一,良好的用户体验会让用户在页面上停留的时间更长,降低跳出率,从而间接提高页面的 SEO 效果👍。

5.2 兼容性问题

5.2.1 不同浏览器对 HTML 标签和属性的支持差异
1. 标签支持差异
  • 一些较新的 HTML5 标签,如 headernavarticle 等,在旧版本的浏览器(如 IE8 及以下)中可能不被支持。在这些浏览器中,这些标签会被当作普通的 div 标签处理,导致页面布局可能出现问题。
  • 某些特殊的标签,如 canvas 标签用于绘制图形,在一些较旧的浏览器中可能不支持,或者支持的功能有限。
2. 属性支持差异
  • 不同浏览器对 HTML 标签的属性支持也存在差异。例如,input 标签的 placeholder 属性,在一些旧版本的浏览器中可能不支持,导致输入框中无法显示提示信息。
  • videoaudio 标签的属性,如 controlsautoplay 等,在不同浏览器中的表现可能不同。有些浏览器可能不支持某些属性,或者对属性的实现方式有所不同。
5.2.2 如何解决 HTML 在不同浏览器中的显示问题
1. 使用 HTML 重置样式
  • 不同浏览器对 HTML 元素的默认样式有不同的设置,使用 HTML 重置样式可以消除这些差异。常见的重置样式表有 Normalize.css 和 Reset.css。例如,在 HTML 文件中引入 Normalize.css:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">
2. 渐进增强和优雅降级
  • 渐进增强:从最基本的功能开始,为所有浏览器提供基本的页面内容和功能,然后针对支持高级特性的浏览器逐步添加额外的样式和功能。例如,对于 canvas 标签,先判断浏览器是否支持 canvas,如果支持则添加绘制图形的功能;如果不支持,则提供替代内容。
<canvas id="myCanvas">您的浏览器不支持 canvas 标签,请升级浏览器。
</canvas>
<script>var canvas = document.getElementById('myCanvas');if (canvas.getContext) {var ctx = canvas.getContext('2d');// 绘制图形的代码}
</script>
  • 优雅降级:先为支持高级特性的浏览器提供完整的功能和样式,然后针对不支持的浏览器进行适当的降级处理,确保页面仍然可以正常使用。
3. 使用浏览器前缀
  • 一些 CSS3 属性在不同浏览器中需要使用不同的前缀来支持。例如,border-radius 属性在不同浏览器中的写法如下:
.my-element {-webkit-border-radius: 10px; /* Safari 和 Chrome */-moz-border-radius: 10px; /* Firefox */border-radius: 10px; /* 标准写法 */
}
5.2.3 HTML5 的兼容性处理方法
1. 引入 HTML5 Shiv
  • HTML5 Shiv 是一个 JavaScript 脚本,它可以让旧版本的浏览器(如 IE8 及以下)支持 HTML5 标签。在 HTML 文件的 head 标签中引入 HTML5 Shiv:
<!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
2. 提供替代方案
  • 对于一些 HTML5 特有的功能,如 videoaudio 标签,在不支持的浏览器中提供替代方案。例如,对于 video 标签,可以提供下载链接或使用 Flash 播放器作为替代。
<video controls><source src="myvideo.mp4" type="video/mp4"><source src="myvideo.webm" type="video/webm">您的浏览器不支持 video 标签,请下载视频:<a href="myvideo.mp4">下载视频</a>
</video>
3. 检测浏览器特性
  • 使用 Modernizr 等工具来检测浏览器是否支持 HTML5 特性。Modernizr 会在 HTML 的 html 标签上添加相应的类名,根据这些类名可以为不同支持情况的浏览器应用不同的样式和脚本。例如:
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
/* 如果浏览器支持 canvas */
.no-canvas .my-canvas {display: none;
}

通过以上方法,可以有效地解决 HTML5 在不同浏览器中的兼容性问题,确保页面在各种浏览器中都能正常显示和使用😃。

相关文章:

【HTML】【面试提问】HTML面试提问总结

第一章 HTML基础相关提问 1.1 HTML基本概念 1.1.1 什么是HTML HTML 即超文本标记语言&#xff08;HyperText Markup Language&#xff09;&#x1f60e;&#xff0c;它是用于创建网页的标准标记语言。简单来说&#xff0c;HTML 就像是搭建房屋的砖块&#x1f9f1;&#xff0…...

解锁MySQL性能调优:高级SQL技巧实战指南

高级SQL技巧&#xff1a;解锁MySQL性能调优的终极指南 开篇 当前&#xff0c;随着业务系统的复杂化和数据量的爆炸式增长&#xff0c;数据库性能调优成为了技术人员面临的核心挑战之一。尤其是在高并发、大数据量的场景下&#xff0c;SQL 查询的性能直接影响到整个系统的响应…...

数据分析与应用---数据可视化基础

目录 Matplotlib基础绘图 &#xff08;一&#xff09;、pyplot绘图基础语法与常用参数 1、pyplot基础语法 &#xff08;1&#xff09; 创建画布与创建子图 &#xff08;2&#xff09; 添加画布内容 &#xff08;3&#xff09; 保存与显示图形 案例代码 2. 设置pyplot的动态…...

android双屏之副屏待机显示图片

摘要&#xff1a;android原生有双屏的机制&#xff0c;但需要芯片厂商适配框架后在底层实现。本文在基于芯发8766已实现底层适配的基础上&#xff0c;仅针对上层Launcher部分对系统进行改造&#xff0c;从而实现在开机后副屏显示一张待机图片。 副屏布局 由于仅显示一张图片&…...

oracle序列自增问题

1.先查询表名对应的序列名称 SELECT trigger_name, trigger_type, triggering_event FROM all_triggers WHERE table_name 表名;2. 查询id最大值 SELECT MAX(ID) FROM 表名;3. 查询下一次生成ID SELECT SJCJ_ENERGY_DATA_INSERTID.NEXTVAL FROM DUAL;4. 设置临时步长,越过…...

FLASHDB API分析

fdb_kvdb_init 函数详解 fdb_kvdb_init 是 FlashDB 框架中用于 ​初始化键值数据库&#xff08;KVDB&#xff09;​​ 的核心接口&#xff0c;其功能涵盖底层存储配置、默认数据加载与多模式适配。以下从功能、参数、使用场景及注意事项展开分析&#xff1a; 一、功能与作用 ​…...

使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务

&#x1f680; 使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务 本文基于 ABP vNext MinIO 的对象存储集成实践&#xff0c;系统讲解从 MinIO 部署、桶创建、ABP 集成、上传 API、安全校验、预签名访问&#xff0c;到测试、扩展及多租户支持的全过程。目标是构建一套可复…...

3.安卓逆向2-安卓文件目录

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 上一个内容&#xff1a;2.安卓逆向2-adb指令 首先使用adb连接到手机&#xff0c;如下图使用adb命令列出手机的目录&am…...

云原生时代的系统可观测性:理念变革与实践体系

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为什么可观测性在云原生时代变得更加重要? 传统应用系统运行于固定服务器,拓扑结构稳定、依赖路径清晰,排查故障依赖日志和人工经验已足够支撑运维。但在云原生环境中,系统正快速演变为: 微…...

力扣网-复写零

1.题目要求 2.题目链接 1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 3.题目解答 class Solution {public void duplicateZeros(int[] arr) {int cur0,dest-1,narr.length;while(cur<n){//遇到0就dest走两步if(arr[cur]0){dest2;}//遇到非零元素dest就走一步els…...

高项-挣值管理TCPI

TCPI&#xff08;完工尚需绩效指数&#xff09;的英文全称及含义 TCPI 是项目管理&#xff08;尤其是挣值管理EVM, Earned Value Management&#xff09;中的一个关键指标&#xff0c;其英文全称为&#xff1a; To-Complete Performance Index 中文译为**“完工尚需绩效指数”…...

Java大厂面试三轮问答:微服务与数据库技术深度解析

Java大厂面试&#xff1a;谢飞机的三轮挑战 第一轮&#xff1a;微服务基础与电商场景设计 面试官: "谢飞机&#xff0c;假设我们要设计一个电商平台&#xff0c;需要支持用户下单、支付以及订单追踪。你会如何设计微服务架构&#xff1f;" 谢飞机: "呃&#…...

Linux 移植 Docker 详解

一、移植前的环境准备 在将 Docker 移植到 Linux 系统之前&#xff0c;需要确保系统满足一定的条件&#xff0c;以保证 Docker 能够稳定运行。 1. 操作系统版本要求 Docker 对 Linux 操作系统版本有一定的要求&#xff0c;不同的 Docker 版本适配不同的 Linux 发行版及版本。常…...

滑动验证码缺口识别与自动化处理技术解析

在如今的网络安全环境中&#xff0c;滑动验证码作为一种主流的人机验证方案&#xff0c;被广泛应用。它的核心挑战主要集中在两个方面&#xff1a;一是如何准确地识别出缺口位置&#xff0c;二是如何模拟出逼真的拖动轨迹。 一、缺口识别技术方案 &#xff08;一&#xff09;…...

C++字符串处理:`std::string`和`std::string_view`的区别与使用

在 C中&#xff0c;std::string和std::string_view都用于处理字符串&#xff0c;但它们的用途和性能特点有很大不同。本教程将通过代码示例和流程图&#xff0c;帮助你快速掌握它们的使用方法。 1.什么是std::string和std::string_view&#xff1f; 1.1std::string std::str…...

Uniapp中动态控制scroll-view滚动的方式

在Uniapp 4.45中&#xff0c;动态修改scroll-view的scroll-left属性时无法触发滚动&#xff08;直接设置scroll-left属性值没问题&#xff09;&#xff0c;这通常是因为数据更新与 DOM 渲染之间的异步特性导致的。知道了原因&#xff0c;但是直接修改scroll-left属性值还是失败…...

手机怎么查看网络ip地址?安卓/iOS设备查询指南

在移动互联网时代&#xff0c;IP地址作为设备的网络身份证&#xff0c;无论是网络调试、远程连接还是排查故障都至关重要。本文将系统介绍安卓和iOS设备查看IP地址的多种方法&#xff0c;帮助您快速掌握这一实用技能。 一、安卓手机查看IP地址方法 1、通过WiFi设置查看 打开设…...

R语言+贝叶斯网络:涵盖贝叶斯网络的基础、离散与连续分布、混合网络、动态网络,Gephi可视化,助你成为数据分析高手!

&#x1f50d; 在现代生态、环境及地学研究中&#xff0c;变量及其因果关系的推断是核心课题之一。然而&#xff0c;传统的因果关系研究通常依赖于昂贵的实验&#xff0c;而实验结果往往与天然环境中的实际因果联系存在较大偏差。例如&#xff0c;在生态系统中&#xff0c;物种…...

手机内存不够,哪些文件可以删?

1️⃣应用缓存文件 安卓&#xff1a;通过「文件管理器」→「Android」→「data」或「cache」文件夹&#xff08;部分需权限&#xff09;&#xff0c;或直接在应用设置中清除缓存 iOS&#xff1a;无需手动清理&#xff0c;系统会自动管理&#xff0c;或在应用内设置中清除&…...

C语言之 比特(bit)、字节(Byte)、字(Word)、整数(Int)

在C语言中&#xff0c;经常出现上述的概念&#xff0c;即比特&#xff08;bit&#xff09;、字节&#xff08;Byte&#xff09;、字&#xff08;Word&#xff09;、整数&#xff08;Int&#xff09;。查看C语言标准&#xff0c;比特&#xff08;bit&#xff09;的定义如下&…...

组态王通过开疆智能profinet转ModbusTCP网关连接西门子PLC配置案例

本案例是组态王通过使用开疆智能研发的Profinet转ModbusTCP网关采集西门子1200PLC中数据的案例。 网关配置 首先来配置网关的参数&#xff0c;打开网关配置软件“Gateway Configuration Studio” 由于组态王那侧设定为ModbusTCP客户端所以网关作为ModbusTCP服务器。新建项目…...

GO语言学习(五)

GO语言学习&#xff08;五&#xff09; 前面我们已经学了一些关于golang的基础知识&#xff0c;从这一期开始&#xff0c;我们就来讲解一下基于golang为后端的web开发&#xff0c;首先这一期为一些golang为后端的web开发基础讲解&#xff0c;我们将会从web的工作方式、golang如…...

Supermemory:让大模型拥有“长效记忆“

目录 引言&#xff1a;打破大语言模型的记忆瓶颈&#xff0c;迎接AI交互新范式 一、Supermemory 核心技术 1.1 透明代理机制 1.2 智能分段与检索系统 1.3 自动Token管理 二、易用性 三、性能与成本 四、可靠性与兼容性 五、为何选择 Supermemory&#xff1f; 六、对…...

Hooks实现原理与自定义Hooks

React Hooks 是 React 16.8 引入的一种机制&#xff0c;允许在函数组件中使用状态&#xff08;state&#xff09;、副作用&#xff08;effect&#xff09;等功能&#xff0c;而无需编写 class 组件。其核心原理是通过闭包和链表结构&#xff0c;在 React 的 Fiber 架构中管理组…...

【NLP】35. 构建高质量标注数据

如何构建高质量标注数据&#xff1f;大语言模型背后的那只“看不见的手” 在讨论大语言模型&#xff08;LLM&#xff09;性能突破时&#xff0c;人们总是聚焦在模型参数、结构设计和训练技巧上。但真正懂行的人都知道——再好的模型也离不开一手好数据&#xff0c;尤其是那些“…...

2024CCPC吉林省赛长春邀请赛 Java 做题记录

目录 I. The Easiest Problem G. Platform Game L. Recharge E. Connected Components I. The Easiest Problem 签到题 直接输出 21 即可 // github https://github.com/Dddddduo // github https://github.com/Dddddduo/acm-java-algorithm // github https://github.com/…...

黑马程序员C++2024新版笔记 第三章 数组

1.数组定义 数组是一批相同类型的元素&#xff08;element&#xff09;的集合组成的数据结构。 声明语法&#xff1a; <数据类型> <数组名> [<数组长度>] int v[6] // 声明了可以存放6个int数字的数组 数组的每个元素有编号&#xff0c;称之为下标索引…...

Golang的网络安全策略实践

Golang的网络安全策略实践 一、理解网络安全的重要性 当今的网络环境中&#xff0c;安全问题日益突出&#xff0c;各种类型的攻击如雨后春笋般涌现&#xff0c;给个人和组织的信息资产造成了严重威胁。因此&#xff0c;制定和实施有效的网络安全策略至关重要。 二、Golang在网络…...

SAP学习笔记 - 开发13 - CAP 之 添加数据库支持(Sqlite)

上一章学习了CAP开发准备&#xff0c;添加Service。 SAP学习笔记 - 开发12 - CAP 之 开发准备&#xff0c;添加服务-CSDN博客 本章继续学习CAP开发 - 添加数据库支持&#xff08;Sqlite&#xff09;。 目录 1&#xff0c;数据库准备 - H2 内存数据库 - Sqlite数据库 a&…...

DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶

《DriveGPT4: Interpretable End-to-End Autonomous Driving via Large Language Model》 2024年10月发表&#xff0c;来自香港大学、浙江大学、华为和悉尼大学。 多模态大型语言模型&#xff08;MLLM&#xff09;已成为研究界关注的一个突出领域&#xff0c;因为它们擅长处理…...

LLM最后怎么输出值 解码语言模型:从权重到概率的奥秘

LM Head Weights&#xff08;语言模型头部权重&#xff09;&#xff1a;左侧的“LM Head Weights”表示语言模型头部的权重矩阵&#xff0c;它是模型参数的一部分。权重矩阵与输入数据进行运算。Logits&#xff08;未归一化对数概率&#xff09;&#xff1a;经过与LM Head Weig…...

Better Faster Large Language Models via Multi-token Prediction 原理

目录 模型结构&#xff1a; Memory-efficient implementation&#xff1a; 实验&#xff1a; 1. 在大规模模型上效果显著&#xff1a; 2. 在不同类型任务上的效果&#xff1a; 为什么MLP对效果有提升的几点猜测&#xff1a; 1. 并非所有token对生成质量的影响相同 2. 关…...

【NLP】34. 数据专题:如何打造高质量训练数据集

构建大语言模型的秘密武器&#xff1a;如何打造高质量训练数据集&#xff1f; 在大语言模型&#xff08;LLM&#xff09;如 GPT、BERT、T5 爆发式发展的背后&#xff0c;我们常常关注模型架构的演化&#xff0c;却忽视了一个更基础也更关键的问题&#xff1a;训练数据从哪里来…...

uniapp 微信小程序 获取openId

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“uniapp 微信小程序 获取openId”。 一、主要属性 1.uni.login 二、实例代码 1、前端代码 uni.login({provider: weixin,success: (res) > {uni.showLoading({title: 登录中...,mask: true})let code res.…...

企业标准信息公共服务平台已开放标准通编辑器访问入口

标准通 数字化标准编辑器 专业、高效、便捷 企业标准信息公共服务平台 近日&#xff0c;企业标准信息公共服务平台已开放标准通编辑器访问入口&#xff0c;可进入官网指定版块使用&#xff01; 核心功能亮点 解决企业痛点 传统标准编制&#xff0c;需反复核对格式、逐条…...

小米MUJIA智能音频眼镜来袭

智能眼镜赛道风云再起&#xff0c;小米新力作MIJIA智能音频眼镜2正式亮相&#xff0c;引发市场热议。 这款产品在设计和功能上都有显著提升&#xff0c;为用户带来更舒适便捷的佩戴体验&#xff0c;同时也标志着小米在智能眼镜领域的持续深耕。 轻薄设计&#xff0c;舒适体验 …...

Node.js 实战八:服务部署方案对比与实践

你开发好了接口&#xff0c;准备上线&#xff0c;然后开始犹豫&#xff1a; “直接 node app.js 启就行了吗&#xff1f;” “要不要用 PM2&#xff1f;听说 Docker 更稳&#xff1f;” “Serverless 是不是就不用管服务器了&#xff1f;” 部署是从“能运行”到“能长久运行”…...

地下水安全监测实施方案

一、方案目标 本方案的核心目标在于构建一个全方位、科学严谨且高效运转的地下水监测体系&#xff0c;旨在实现对地下水资源全方位的动态监测、科学化的管理和有效的保护。监测的具体目标涵盖了地下水位、流量以及水质等多个关键性指标&#xff0c;通过精准的数据采集和分析&am…...

HTTP由浅入深

概述 超文本传输协议&#xff08;HTTP, Hypertext Transfer Protocol&#xff09; 是一种用于传输超媒体文档&#xff08;例如 HTML&#xff09;的应用层协议。它最初被设计用于 Web 浏览器与 Web 服务器之间的通信&#xff0c;但也广泛应用于其他客户端与服务器的交互。 HTT…...

Conda 环境下安装 GCC 和 glibc (crypt.h) 教程

Conda 环境下安装 GCC 和 glibc (crypt.h) 教程 由于运行Low-Light Image Enhancement via Structure Modeling and Guidance原始论文代码&#xff0c;发现服务器的gcc版本太老&#xff0c;没法运行。同时缺少libxcrypt (crypt.h)&#xff0c;不得不询问gpt进行解答。发现可以…...

C++面试3——const关键字的核心概念、典型场景和易错陷阱

const关键字的核心概念、典型场景和易错陷阱 一、const本质&#xff1a;类型系统的守护者 1. 与#define的本质差异 维度#defineconst编译阶段预处理替换编译器类型检查作用域无作用域&#xff08;全局污染&#xff09;遵循块作用域调试可见性符号消失保留符号信息类型安全无类…...

超小多模态视觉语言模型MiniMind-V 训练

简述 MiniMind-V 是一个超适合初学者的项目&#xff0c;让你用普通电脑就能训一个能看图说话的 AI。训练过程就像教小孩&#xff1a;先准备好图文材料&#xff08;数据集&#xff09;&#xff0c;教它基础知识&#xff08;预训练&#xff09;&#xff0c;再教具体技能&#xf…...

深入理解仿函数(Functors):从概念到实践

文章目录 1. 什么是仿函数&#xff1f;2. 仿函数与普通函数的区别3. 标准库中的仿函数4. 仿函数的优势4.1 状态保持4.2 可定制性4.3 性能优势 5. 现代C中的仿函数5.1 Lambda表达式5.2 通用仿函数 6. 仿函数的高级应用&#xff08;使用C2020标准库及以上版本&#xff09;6.1 函数…...

第二届parloo杯的RSA_Quartic_Quandary

&#xff08;害&#xff0c;还是太菜了&#xff0c;上去秒了一道题之后就动不了了&#xff0c;今晚做个记录&#xff0c;一点点的往回拾起吧&#xff09; # from Crypto.Util.number import getPrime, bytes_to_long # import math # # FLAG b************** # # # def gene…...

团队氛围紧张,如何提升工作积极性?

当团队氛围长期处于紧张状态时&#xff0c;员工的积极性、创造力和凝聚力会显著下降。要有效提升工作积极性&#xff0c;应从建设心理安全环境、优化管理沟通方式、提升认可与激励机制、加强情感联结与归属感等方面系统改善。其中&#xff0c;建设心理安全环境是最重要的基础&a…...

vuex的基本使用

个人简介 &#x1f468;‍&#x1f4bb;‍个人主页&#xff1a; 魔术师 &#x1f4d6;学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全栈发展 &#x1f6b4;个人状态&#xff1a; 研发工程师&#xff0c;现效力于政务服务网事业 &#x1f1e8;&#x1f1f3;人生格言&…...

chrome因使用selenium无图模式导致不再加载图片问题解决

因为使用了selenium的无图模式访问chrome的本地用户数据导致正常使用chrome访问网页时图片不加载。现在页面出现验证码&#xff0c;验证码显示不了。 第一步&#xff1a;关闭所有chrome 第二步&#xff1a;找到Perferences文件 文件的目录为&#xff1a;C:\Users\用户名\AppDa…...

并发编程(5)

抛异常时会释放锁。 当线程在 synchronized 块内部抛出异常时&#xff0c;会自动释放对象锁。 public class ExceptionUnlockDemo {private static final Object lock new Object();public static void main(String[] args) {Thread t1 new Thread(() -> {synchronized …...

自己拥有一台服务器可以做哪些事情

上大学时候&#xff0c;买了自己的第一台服务器在HoRain Cloud上&#xff0c;结果没有好好利用&#xff0c;刚工作时候&#xff0c;又买了一台HoRain Cloud服务器&#xff0c;就想着好好利用。 可以搭建一些学习环境&#xff0c;比如说数据库&#xff0c;gitlab什么的 …...

Node.js聊天室开发:从零到上线的完整指南

为让你全面了解Node.js聊天室开发&#xff0c;我会先介绍开发背景与技术栈&#xff0c;再按搭建项目、实现核心功能、部署上线的流程展开&#xff0c;还会分享优化思路。 Node.js聊天室开发实战&#xff1a;从入门到上线 在即时通讯日益普及的今天&#xff0c;基于Node.js搭建…...