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

20道HTML相关前端面试题及答案

20道HTML相关前端面试题及答案

HTML 相关面试题及答案

  1. 什么是 HTML?它的全称是什么?

    HTML 是超文本标记语言(HyperText Markup Language),是用于创建网页的标准标记语言。它通过标签描述网页的结构和内容,如文本、图像、链接等,浏览器会解析这些标签并展示为可视化页面。

  2. HTML5 相比 HTML4 有哪些主要改进?

  • 新增语义化标签(如<header><article>),提升代码可读性和 SEO。

  • 引入原生多媒体支持(<video><audio>),无需依赖插件。

  • 新增 Canvas 绘图、SVG 矢量图支持。

  • 提供本地存储(LocalStorage、SessionStorage)和离线应用(Service Worker)能力。

  • 简化 DOCTYPE 声明(<!DOCTYPE html>),去除过时标签(如<font>)。

  1. 什么是元标签(meta tag)?常见的 meta 标签有哪些作用?

    元标签是位于<head>中的辅助标签,用于提供页面的元数据(如描述、关键词、编码等),不直接显示在页面上。

    常见作用:
    charset="UTF-8":指定字符编码;
    name="viewport":控制移动端页面缩放(如content="width=device-width, initial-scale=1.0");
    name="description":提供页面描述(用于搜索引擎);
    http-equiv="refresh":自动刷新页面或跳转。

  2. HTML 中的注释语法是什么?注释有什么作用?

    注释语法:<!-- 注释内容 -->,浏览器会忽略注释内容。

    作用:
    ① 解释代码逻辑,方便开发和维护;
    ② 临时隐藏代码(调试时);
    ③ 不影响页面渲染,不被用户看到。

  3. 什么是表单的 enctype 属性?它有哪些取值及用途?

    enctype用于指定表单数据提交时的编码类型,默认值为application/x-www-form-urlencoded

    取值及用途:
    application/x-www-form-urlencoded:普通表单数据(文本)编码;
    multipart/form-data:用于上传文件(必须配合method="post");
    text/plain:纯文本编码,特殊字符不转义(极少使用)。

  4. <div><span>的区别是什么?分别适用于什么场景?

  • <div>:块级元素,独占一行,可包含块级或行内元素,常用于布局(如划分页面区块)。

  • <span>:行内元素,不独占一行,仅能包含行内元素或文本,常用于包裹局部文本(如设置特定样式)。

    核心区别:<div>用于大区块布局,<span>用于文本片段样式调整。

  1. HTML 中的列表有哪几种类型?分别用什么标签定义?
  • 无序列表:项目前带符号(如圆点),用<ul>定义,子项为<li>

  • 有序列表:项目前带编号(如 1、2、3),用<ol>定义,子项为<li>,可通过type属性指定编号类型(如字母、罗马数字)。

  • 定义列表:包含术语和解释,用<dl>定义,术语为<dt>,解释为<dd>(如字典条目)。

  1. 什么是<label>标签?它的作用是什么?

    <label>用于关联表单控件(如<input><select>),点击<label>时会触发关联控件的交互(如聚焦输入框、选中复选框)。

    关联方式:
    ① 通过for属性绑定控件的id(如<label for="username">用户名</label><input id="username">);
    ② 将控件嵌套在<label>内部(如<label>同意 <input type="checkbox"></label>)。

  2. HTML 中的<img>标签有哪些重要属性?alt属性的作用是什么?

    重要属性:
    src:指定图片路径;
    alt:图片加载失败时显示的替代文本;
    width/height:设置图片尺寸(建议只设置一个,保持比例);
    loading="lazy":图片懒加载。

    alt的作用:
    ① 提升可访问性(屏幕阅读器读取);
    ② 图片加载失败时提示内容;
    ③ 帮助搜索引擎理解图片内容。

  3. 什么是<a>标签的target属性?它有哪些取值?

    target用于指定链接打开的位置,常见取值:
    _self:在当前窗口打开(默认);
    _blank:在新窗口打开(建议配合rel="noopener noreferrer"提升安全性);
    _parent:在父框架打开;
    _top:在顶层窗口打开;
    ⑤ 框架名称:在指定框架打开。

  4. HTML5 的<canvas><svg>有什么共同点和区别?

    共同点:均用于绘制图形。

    区别:

  • 绘制方式:<canvas>通过 JavaScript 动态绘制像素,<svg>通过 XML 标签定义矢量图形。

  • 缩放效果:<canvas>放大后失真,<svg>放大不失真。

  • 事件支持:<canvas>需手动实现元素事件,<svg>标签可直接绑定事件。

  • 适用场景:<canvas>适合复杂动画、游戏;<svg>适合图标、图表。

  1. 什么是语义化标签?为什么要使用语义化标签?

    语义化标签是指具有明确含义的标签(如<nav>表示导航、<footer>表示页脚),而非通用的<div>

    原因:
    ① 提升代码可读性和可维护性;
    ② 帮助搜索引擎解析页面结构(优化 SEO);
    ③ 便于屏幕阅读器等辅助设备识别内容(提升无障碍性)。

  2. HTML 中的<form>标签的method属性有什么作用?getpost有什么区别?

    method指定表单数据的提交方式:

  • get:数据通过 URL 参数传递(可见,有长度限制),适合查询、搜索等非敏感操作,可被缓存。

  • post:数据在请求体中传递(不可见,无长度限制),适合提交表单、上传文件等敏感操作,不可被缓存。

  1. 什么是 HTML5 的data-*属性?它的作用是什么?

    data-*是自定义数据属性,用于在 HTML 元素中存储额外数据(*为自定义名称,如data-iddata-user)。

    作用:
    ① 存储与元素相关的元数据(如 <div data-id="123" data-name="商品">);
    ② 通过 JavaScript 的dataset属性读取(如element.dataset.id获取123),避免使用classid存储数据。

  2. HTML 中的<table>标签相关的结构标签有哪些?它们的作用是什么?

    结构标签:
    <thead>:表格头部(如列标题);
    <tbody>:表格主体(数据行);
    <tfoot>:表格底部(如汇总信息);
    <th>:表头单元格(默认加粗居中);
    <tr>:表格行;
    <td>:表格数据单元格。

    作用:明确表格结构,提升可读性和无障碍性,便于 CSS 样式定位。

  3. 什么是<iframe>标签?使用时需要注意哪些问题?

    <iframe>用于在当前页面嵌入另一个页面(如嵌套第三方内容)。

    注意问题:
    ① 影响页面加载速度(阻塞onload事件);
    ② 搜索引擎难以抓取内容(不利于 SEO);
    ③ 可能引发安全风险(如第三方页面注入恶意代码);
    ④ 需设置width/height控制尺寸,避免布局错乱。

  4. HTML5 新增的表单输入类型有哪些?举例说明其作用。

    新增类型:
    email:验证邮箱格式;
    tel:适合输入电话号码(移动端弹出数字键盘);
    url:验证 URL 格式;
    number:仅允许输入数字(带上下箭头);
    date:日期选择器;
    range:滑块控件(用于选择范围值);
    color:颜色选择器。

    作用:提升用户体验(专用输入控件),减少前端验证代码。

  5. 什么是 HTML 的 DOCTYPE?它的作用是什么?缺失会有什么影响?

    DOCTYPE(文档类型声明)位于 HTML 文档第一行,用于告诉浏览器当前文档遵循的 HTML 规范(如<!DOCTYPE html>表示 HTML5)。

    作用:确保浏览器以标准模式(Standard Mode)解析页面,避免进入怪异模式(Quirks Mode)。

    缺失影响:浏览器可能采用旧的渲染规则,导致页面布局错乱(如盒模型计算方式不同)。

  6. HTML 中的块级元素和行内元素有哪些特性?如何相互转换?

    块级元素特性:
    ① 独占一行;
    ② 可设置widthheightmarginpadding
    ③ 可包含块级或行内元素(如<div><p>)。

    行内元素特性:① 不独占一行;
    widthheight无效,marginpadding仅水平方向有效;
    ③ 仅能包含行内元素或文本(如<span><a>)。

    转换方式:通过 CSS 的display属性,如display: block(行内→块级)、display: inline(块级→行内)、display: inline-block(兼具两者特性)。

  7. HTML5 的离线存储有哪些方式?它们的区别是什么?

    主要方式:
    ① LocalStorage:永久存储(除非手动删除),容量 5-10MB,同源页面共享;
    ② SessionStorage:会话级存储(关闭标签页消失),容量 5-10MB,仅当前标签页可见;
    ③ Cookie:容量 4KB 左右,可设置过期时间,随 HTTP 请求发送到服务器;④ Application Cache(已废弃,被 Service Worker 替代)。

    核心区别:存储周期、容量、是否随请求发送、共享范围。

http://www.lryc.cn/news/620447.html

相关文章:

  • 如何通过WiFi将文件从安卓设备传输到电脑
  • 点图:数据分布的可视化利器
  • PostgreSQL——视图
  • 读书笔记:《我看见的世界》
  • 为什么Integer缓存-128 ~ 127
  • 【Linux学习|黑马笔记|Day4】IP地址、主机名、网络请求、下载、端口、进程管理、主机状态监控、环境变量、文件的上传和下载、压缩和解压
  • 编排之神-Kubernetes微服务专题--ingress-nginx及金丝雀Canary的演练
  • [Oracle数据库] ORACLE基本DML操作
  • 图论Day2学习心得
  • Pytest本地插件定制及发布指南
  • 代码随想录Day50:图论(图论理论、深度搜索理论、所有可达路径、广度搜索理论)
  • python sqlite3模块
  • 高效解决 pip install 报错 SSLError: EOF occurred in violation of protocol
  • 《贵州棒球百科》体育赛事排名·棒球1号位
  • 视频号主页的企业信息如何设置?
  • 消费级显卡分布式智能体协同:构建高性价比医疗AI互动智能体的理论与实践路径
  • 从理论到落地:分布式事务全解析(原理 + 方案 + 避坑指南)
  • 云原生存储架构设计与性能优化
  • 【java实现一个接口多个实现类通用策略模式】
  • GitHub 仓库代码上传指南
  • Python包性能优化与并发编程:构建高性能应用的核心技术(续)
  • OpenBMC中C++策略模式架构、原理与应用
  • Qt基本控件
  • Elasticsearch:如何使用 Qwen3 来做向量搜索
  • 设计模式-策略模式 Java
  • 设计模式基础概念(行为模式):策略模式
  • Swift 实战:用链表和哈希表写出高性能的贪吃蛇引擎(LeetCode 353)
  • LeetCode 刷题【41. 缺失的第一个正数】
  • linux 主机驱动(SPI)与外设驱动分离的设计思想
  • tomcat 定时重启