面试八股---HTML

面试八股

1、HTML

1.1 src和href的区别

src 用于替换当前元素,href 用于在当前文档和引用资源之间确立联系。

核心区别在于 href 关联的资源(主要是 CSS)是用于描述页面外观的,浏览器可以先生成内容再应用样式,因此可以并行下载不阻塞渲染。

src 嵌入的资源(脚本、图片、iframe)是页面内容或行为本身的一部分,其加载和执行/渲染直接影响页面的结构和显示,因此浏览器需要等待它们完成以确保页面正确构建和显示,这通常涉及到暂停解析或阻塞渲染直到资源可用。

1.2 html语义化的理解

HTML语义化强调根据内容的功能和意义选择合适的标签

(1)提升代码可读性和可维护性

  • 语义化标签使代码更直观,便于开发者快速理解页面的结构和功能。
  • 在团队协作中,语义化代码可以减少沟通成本,降低维护难度。

(2)优化搜索引擎优化(SEO)

  • 搜索引擎爬虫通过分析HTML标签来理解页面内容。例如,使用 <article> 标签包装文章内容,能让搜索引擎明确知道这是文章,而不是广告或导航部分。
  • 语义化标签帮助爬虫更准确地抓取和索引页面内容,从而提升网页在搜索结果中的排名。

1.3 DOCTYPE(⽂档类型) 的作⽤

<!DOCTYPE html>

告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档

<!doctype html> 的作用就是让浏览器进入标准模式,使用最新的 HTML5 标准来解析渲染页面;如果不写,浏览器就会进入混杂模式,我们需要避免此类情况发生。

浏览器渲染页面的两种模式(可通过document.compatMode获取,比如):

  • CSS1Compat:标准模式,默认模式,浏览器使用W3C的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面
  • BackCompat:怪异模式(混杂模式),浏览器使用自己的怪异模式解析渲染页面。在怪异模式中,页面以一种比较宽松的向后兼容的方式显示。

区分:网页中的DTD,直接影响到使用的是严格模式还是混杂模式,可以说DTD的使用与这两种方式的区别息息相关。有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式

1.4 script标签中defer和async的区别

他们都是异步加载外部的JS脚本文件,它们都不会阻塞页面的解析

属性下载方式执行时机执行顺序是否阻塞页面解析
defer异步下载页面解析完成后,DOMContentLoaded事件之前按照脚本在文档中的顺序不阻塞
async异步下载脚本下载完成后立即执行取决于下载速度,无固定顺序不阻塞

总结:

  • **执行顺序:**多个带async属性的标签,不能保证加载的顺序(取决于下载速度,无固定顺序);多个带defer属性的标签,按照加载顺序执行;

  • 脚本是否并行执行

    async属性:脚本下载和 HTML 解析同时进行,一旦下载好,不管 HTML 解析到哪了,都会阻断并立刻执行脚本。

    defer属性:加载后续文档的过程和 JS 脚本的加载(此时仅加载不执行)是并行进行的(异步),JS 脚本需要等到文档所有元素解析完成之后才执行,DOMContentLoaded 事件触发执行之前。

1.5 常用的meta标签

meta 标签由 namecontent 属性定义,用来描述网页文档的属性,比如网页的作者,网页描述,关键词等

 <meta charset="UTF-8">

用来描述HTML文档的编码类型

<meta name="keywords" content="关键词" />

keywords,页面关键词:

<meta name="description" content="页面描述内容" />

description,页面描述:

<meta http-equiv="refresh" content="0;url=" />

refresh,页面重定向和刷新:

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

viewport,适配移动端,可以控制视口的大小和比例:

其中,content 参数有以下几种:

  • width viewport :宽度(数值/device-width)
  • height viewport :高度(数值/device-height)
  • initial-scale :初始缩放比例
  • maximum-scale :最大缩放比例
  • minimum-scale :最小缩放比例
  • user-scalable :是否允许用户缩放(yes/no)

搜索引擎索引方式:

<meta name="robots" content="index,follow" />

其中,content 参数有以下几种:

  • all:文件将被检索,且页面上的链接可以被查询;
  • none:文件将不被检索,且页面上的链接不可以被查询;
  • index:文件将被检索;
  • follow:页面上的链接可以被查询;
  • noindex:文件将不被检索;
  • nofollow:页面上的链接不可以被查询。

1.6 HTML5有哪些更新

1. 语义化标签
  • header:定义文档的页眉(头部);
  • nav:定义导航链接的部分;
  • footer:定义文档或节的页脚(底部);
  • article:定义文章内容;
  • section:定义文档中的节(section、区段);
  • aside:定义其所处内容之外的内容(侧边);
2. 媒体标签
  • audio:音频
    • controls 控制面板
    • autoplay 自动播放
    • loop=‘true’ 循环播放
  • video视频
    • poster:指定视频还没有完全下载完毕,或者用户还没有点击播放前显示的封面。默认显示当前视频文件的第一针画面,当然通过poster也可以自己指定。
    • controls 控制面板
    • width
    • height
  • source标签:兼容不同的浏览器,可以通过source来指定视频源。
3. 表单
  • 表单类型:email、number、url、range
  • **表单属性:**placeholder、autofocus、required、pattern
  • 表单属性:
    • oninput 每当input里的输入框内容发生变化都会触发此事件。
    • oninvalid 当验证不通过时触发此事件。
4.进度条、度量器:

progress:meter属性:用来显示剩余容量或剩余库存

meter属性:用来显示剩余容量或剩余库存

5.DOM查询操作:
  • document.querySelector()
  • document.querySelectorAll()

它们选择的对象可以是标签,可以是类(需要加点),可以是ID(需要加#)

6. Web存储

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储
7. 其他
  • 拖放:拖放是一种常见的特性,即抓取对象以后拖到另一个位置。设置元素可拖放:

  • 画布(canvas ): canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

  • SVG:SVG 指可伸缩矢量图形,用于定义用于网络的基于矢量的图形,使用 XML 格式定义图形,图像在放大或改变尺寸的情况下其图形质量不会有损失,它是万维网联盟的标准

  • 地理定位:Geolocation(地理定位)用于定位用户的位置。‘

1.7 img的srcset属性的作⽤?

srcset属性用于设置不同屏幕密度下,img 会自动加载不同的图片。

1.8 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

  • 行内元素有:a b span img input select strong
  • 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4 h5 h6 p

空元素,即没有内容的HTML元素。空元素是在开始标签中关闭的,也就是空元素没有闭合标签:

  • 常见的有:<br><hr><img><input><link><meta>

1.9 对 web worker 的理解

JavaScript 是单线程的,这意味着所有任务都在主线程上执行。如果遇到计算密集型任务(如大数据处理、复杂算法等),主线程可能会被阻塞,导致页面卡顿甚至无响应。为了解决这个问题,HTML5 引入了 Web Worker 技术,它允许在后台线程中执行脚本,从而避免阻塞用户界面12。简单来说,Web Worker 为 JavaScript 创造了多线程环境,主线程可以创建 Worker 线程,将任务分配给 Worker 运行。Worker 线程在后台运行,主线程和 Worker 线程互不干扰,直到 Worker 完成任务并将结果返回给主线程

1.10 HTML5的离线储存怎么使用,它的工作原理是什么

Web 应用程序在没有网络连接的情况下继续运行,从而提高用户体验和应用的可用性。

Service Worker 是 HTML5 引入的一种运行在浏览器后台的脚本,可以拦截网络请求并缓存资源,从而实现离线访问。

  • 拦截请求:Service Worker 可以拦截页面的所有网络请求。
  • 缓存资源:使用 Cache API 将资源缓存到本地。
  • 离线访问:当用户离线时,Service Worker 从缓存中返回资源。

1.11 title与h1的区别、b与strong的区别、i与em的区别?

  • strong标签有语义,是起到加重语气的效果,而b标签是没有的,b标签只是一个简单加粗标签。
  • title属性只表示是个标题,H1则表示层次明确的标题,对页面信息的抓取有很大的影响
  • i内容展示为斜体,em表示强调的文本

1.12 iframe 有那些优点和缺点?

创建包含另外一个文档的内联框架(即行内框架)

优点:

  • 用来加载速度较慢的内容(如广告)
  • 可以使脚本可以并行下载
  • 可以实现跨子域通信

缺点:

  • iframe 会阻塞主页面的 onload 事件
  • 无法被一些搜索引擎索识别
  • 会产生很多页面,不容易管理

1.13 label 的作用是什么?如何使用

label标签来定义表单控件的关系:当用户选择label标签时,浏览器会自动将焦点转到和label标签相关的表单控件上,还可以提供文本标签。

<label for="mobile">Number:</label>
<input type="text" id="mobile"/><label>Date:<input type="text"/></label>

1.14 Canvas和SVG的区别

(1)绘图方式
  • Canvas
    基于像素绘制,通过 JavaScript API 控制每个像素点的颜色和位置。适合需要频繁重绘的场景,如动画、游戏等。
  • SVG
    基于矢量绘制,通过 XML 标签描述图形。例如,一个圆形可以通过 <circle> 标签定义。适合需要清晰缩放的图形,如图标、图表等。
(2)DOM 支持
  • Canvas
    绘制后的图形是静态的像素图,无法直接绑定事件或修改样式。如果需要交互,必须通过 JavaScript 重新绘制。
  • SVG
    每个 SVG 图形元素都是 DOM 节点,可以直接绑定事件(如点击、悬停),也可以通过 CSS 或 JavaScript 动态修改样式。
(3)缩放与清晰度
  • Canvas
    放大后可能失真,因为它是基于像素绘制的,类似于位图。适合不需要频繁缩放的动态场景58。
  • SVG
    可以无限缩放而不失真,因为它是基于矢量的。适合需要高分辨率显示的场景,如图标、地图等。
(4)性能表现
  • Canvas
    在处理大量图形或复杂动画时性能更优,因为它是直接操作像素,避免了 DOM 操作的开销。
  • SVG
    在图形较少且需要交互的场景中性能更优,但大量图形或复杂动画可能导致性能下降。

1.15 head 标签有什么作用,其中什么标签必不可少?

标签用于定义文档的头部,它是所有头部元素的容器。

文档的头部描述了文档的各种属性和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系等。

其中 定义文档的标题,它是 head 部分中唯一必需的元素。

1.16 浏览器乱码的原因是什么?如何解决?

产生乱码的原因:

  • 核心问题在于编码不统一。无论是网页文件本身、HTML声明、数据库存储,还是浏览器识别,只要其中任意两个环节的编码不一致(比如一个是GBK,另一个是UTF-8),就可能导致乱码。

解决办法:

  • 统一编码: 确保从编辑器、HTML声明、数据库到传输的整个流程都使用同一种编码(推荐UTF-8)。
  • 转码处理: 如果编码不一致是客观存在的,需要在程序层面进行编码转换。
  • 手动调整: 如果浏览器显示乱码,可以手动在浏览器设置中切换编码格式。

1.17 渐进增强和优雅降级之间的区别

1)渐进增强(progressive enhancement):先确保网站在所有浏览器中都能提供最基本的内容和功能。再针对支持更高级功能的浏览器逐步添加增强的视觉效果和交互功能

(2)优雅降级 graceful degradation: 一开始就构建完整的功能,然后再针对低版本的浏览器进行兼容

渐进增强和优雅降级都是处理浏览器兼容性的有效策略,但它们的设计思路和侧重点不同。渐进增强更注重“从基础到增强”,适合需要长期维护和扩展的项目;而优雅降级更注重“从复杂到简化”,适合目标用户主要使用现代浏览器的情况。根据项目需求选择合适的策略,可以更好地平衡用户体验和开发效率。

1.18 说一下 HTML5 drag API

  • dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。
  • darg:事件主体是被拖放元素,在正在拖放被拖放元素时触发。
  • dragenter:事件主体是目标元素,在被拖放元素进入某元素时触发。
  • dragover:事件主体是目标元素,在被拖放在某元素内移动时触发。
  • dragleave:事件主体是目标元素,在被拖放元素移出目标元素是触发。
  • drop:事件主体是目标元素,在目标元素完全接受被拖放元素时触发。
  • dragend:事件主体是被拖放元素,在整个拖放操作结束时触发。

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

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

相关文章

气候智能体:AI如何重构人类应对气候危机的决策体系?

前言 前些天发现了一个巨牛的人工智能免费学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 《气候智能体&#xff1a;AI如何重构人类应对气候危机的决策体系&#xff1f;》 展开全景式论述。文章结合2025年最新技术突破与…

UITableView的位置向下偏移, contentInsetAdjustmentBehavior使用详情

一.contentInsetAdjustmentBehavior 作用: 在iOS 11及以后&#xff0c;苹果引入了安全区域&#xff08;Safe Area&#xff09;的概念,当UITableView的frame超出了安全区域,系统会自定调整SafeAreaInsets的值,它可以自动调整内容的内边距&#xff0c;使得内容不会被导航栏遮挡。…

腾讯云RayData全新推出“行业解决方案模板”,一键快捷制作3D数据可视化作品

点击蓝字⬆ 关注我们 本文共计958字 预计阅读时长3分钟 腾讯云RayData Plus是一款专注于高视效的3D数据可视化的实时渲染工具。 功能全面&#xff1a;提供了三维、二维、动画、数据、交互逻辑等各类能力&#xff1b; 零代码制作&#xff1a;灵活的节点式创作&#xff0c;即便没…

深度解析基于贝叶斯的垃圾邮件分类

贝叶斯垃圾邮件分类的核心逻辑是基于贝叶斯定理&#xff0c;利用邮件中的特征&#xff08;通常是单词&#xff09;来计算该邮件属于“垃圾邮件”或“非垃圾邮件”的概率&#xff0c;并根据概率大小进行分类。它是一种朴素贝叶斯分类器&#xff0c;因其假设特征&#xff08;单词…

WPF 3D 开发全攻略:实现3D模型创建、旋转、平移、缩放

&#x1f3ae; WPF 3D 入门实战&#xff1a;从零打造一个可交互的立方体模型 标题&#xff1a; &#x1f680;《WPF 3D 开发全攻略&#xff1a;实现旋转、平移、缩放与法线显示》 &#x1f4a1; 引言 在现代图形应用中&#xff0c;3D 可视化已经成为不可或缺的一部分。WPF 提供…

Ruby 安装使用教程

一、Ruby 简介 Ruby 是一种简单快捷的面向对象脚本语言&#xff0c;以优雅、简洁、易读著称。它常被用于 Web 开发&#xff08;如 Ruby on Rails 框架&#xff09;、自动化脚本、DevOps、命令行工具等领域。 二、Ruby 安装教程 2.1 支持平台 Ruby 支持跨平台运行&#xff0c…

python | numpy小记(五):理解 NumPy 中的 `np.arccos`:反余弦函数

python | numpy小记&#xff08;五&#xff09;&#xff1a;理解 NumPy 中的 np.arccos&#xff1a;反余弦函数 一、函数签名与核心参数二、数学定义与取值范围三、基础使用示例四、与 Python 内建 math.acos 的对比五、常见问题与注意事项六、典型应用场景1. 三维向量夹角计算…

华为云Flexus+DeepSeek征文 | 华为云ModelArts与Reor的完美结合:创建高效本地AI笔记环境

华为云FlexusDeepSeek征文 | 华为云ModelArts与Reor的完美结合&#xff1a;创建高效本地AI笔记环境 引言一、ModelArts Studio平台介绍华为云ModelArts Studio简介ModelArts Studio主要特点 二、Reor介绍Reor简介Reor主要特点 三、安装Reor工具下载Reor软件安装Reor工具 四、开…

【启发式算法】Dynamic A*(D*)算法详细介绍(Python)

&#x1f4e2;本篇文章是博主人工智能&#xff08;AI&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

报告怎么写

替代方案&#xff08;按场景选择&#xff09; 岗前准备阶段 ✅ "熟悉业务流程/系统操作" ✅ "掌握XX工具/平台的核心功能" ✅ "完成上岗前技术对接" 知识转化场景 ✅ "梳理产品知识体系" ✅ "转化技术文档为实操方案" ✅ &…

大模型——怎么让 AI 写出好看有设计感的网页

大模型——怎么让 AI 写出好看有设计感的网页 你让 AI 给你写的网页大概都是这样的: 或者这样: 好点的时候能这样: 但都不够高级,尤其是那个像引用一样的边框,太 AI 了。 今天教大家一个小技巧,写出下面这样的网页: 或者这样的

【Torch】nn.Linear算法详解

1. 定义 nn.Linear 是 PyTorch 中最基础的全连接&#xff08;fully‐connected&#xff09;线性层&#xff0c;也称仿射变换层&#xff08;affine layer&#xff09;。它对输入张量做一次线性变换&#xff1a; output x W T b \text{output} x W^{T} b outputxWTb 其中&a…

ZGC收集器

ZGC收集器 欢迎来到我的博客&#xff1a;TWind的博客 我的CSDN:&#xff1a;Thanwind-CSDN博客 我的掘金&#xff1a;Thanwinde 的个人主页 0.前言 ZGC收集器完全可以说是Java收集器的一个跨时代的收集器&#xff0c;他真正意义上实现了停顿时间在10ms以内并且几乎全时段都是…

隧道技术篇2frp代理nps代理shisel代理

FRP代理 1.实现湖北内网控制北京的内网C2上线 2.实现湖北内网探针北京内网 信息收集 &#xff08;socks建立和端口映射&#xff09; 1.连接47.98.210.85 7000端口服务端 2.尝试将服务端的6666转到127.0.0.1 5555采用tcp协议&#xff0c;备注名proxies serverAddr"47.98…

[Python 基础课程]PyCharm 的安装

Python 的编辑器目前主流的有 PyCharm 和 Vscode。 PyCharm 是 Python 目前最主流、最常用、最推荐的 Python 编辑器。 https://www.jetbrains.com/pycharm/ PyCharm 有社区版和专业版&#xff0c;可以根据自己的需要下载对应的版本。社区版是收费的&#xff0c;对于初学者或…

Spread Ribbon 工具栏控件:在WinForms中高效编辑Spread工作簿

引言 在数据密集型应用中&#xff0c;电子表格功能是提升用户体验的关键要素。GrapeCity Spread.NET V17 推出的独立 Ribbon工具栏控件&#xff0c;为WinForms开发者提供了与Excel高度一致的UI交互体验。通过集成此控件&#xff0c;用户可直观地进行数据编辑、格式调整等操作&…

leedcode:找到字符串中所有字母异位词

问题&#xff1a;给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 package com.text;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;…

华为云Flexus+DeepSeek征文|基于华为云 Flexus Dify平台开发AI Agent的详细流程

目录 一、Dify 应用开发平台 1.1 什么是 Dify&#xff1f; 1.2 Dify 平台优势 二、构建 AI Agent 2.1 创建智能客服助手 2.2 配置 LLM组件 三、访问智能应用 3.1 应用发布 3.2 智能对话 四、API 调用智能客服助手 4.1 配置 API 访问接口 4.2 调用智能客服助手API …

【知识图谱构建系列7】:结果评价(1)

文章目录 前言前情提要三元组提取结果评价脚本代码分析几分钟后前言 翻了一下记录,发现咱的知识图谱构建已经接近10天没有搞了。时间也是过得真快啊。但这毕竟是咱未来产生论文的主要阵地,所以得赶紧把节奏给拾起来哈~ 前情提要 我们已经可以在mistral模型的基础上,跑通提…

BT下载工具 qBittorrent v5.1.1.10,便携无广告,BT下载速度翻倍

[软件名称]: BT下载工具 qBittorrent v5.1.1.10 [软件大小]: 15.9 MB [下载通道]: 夸克盘 | 迅雷盘 软件介绍 &#x1f525;《qBittorrent增强版》v5.1.1.10便携版&#xff5c;BT下载神器&#xff0c;速度与隐私兼得&#x1f310; ✨ 核心优势&#xff1a; ✅ 无视版权限制…