粉粉蕉的笔记本粉粉蕉的笔记本
  • JAVA

    • 代码笔记
    • Java8实战
    • 分布式事务实战(Seata)
    • 模板引擎(FreeMarker)
    • SpringSecurity
    • Maven
  • PYTHON

    • 概述
    • python3
    • python3(菜鸟教程)
    • pandas
    • numpy
    • matplotlib
  • 中间件

    • Kafka
    • RocketMQ
    • Redis
    • MongoDB
    • Elastic Search
  • 数据库

    • Mysql
  • 前端

    • HTML
    • CSS
    • Javascript
    • Vue2学习笔记
    • Vue3学习笔记
  • 设计模式
  • 大数据

    • 概览
    • Hadoop
    • Hive
  • 机器学习

    • 机器学习概览
  • openclaw实战
  • claudecode实战
  • RAG
  • 拟人类Agent
  • linux命令速查
  • windows命令速查
  • Docker笔记
  • kubernetes学习笔记
  • kubernetes实操笔记
  • 运维工具大全
  • git操作宝典
  • 概率论
  • 线性代数
  • 统计学
  • 金融知识学习
  • 聚宽
  • 因子分析
  • 后端

    • JAVA基础
    • JAVA多线程
    • JVM
    • 分布式相关
    • 数据库
  • 前端

    • HTML
    • CSS
    • JAVASCRIPT
    • VUE3
    • 网络
    • 前端工程化
    • nodejs
  • AI

    • RAG
  • 健身

    • 笔记
    • 训练计划
  • 读书笔记

    • 《深度学习》
  • 其他

    • RSS
    • 资源导航
    • 医保
    • 装修攻略
我也想搭建这样的博客!
🚋开往
  • JAVA

    • 代码笔记
    • Java8实战
    • 分布式事务实战(Seata)
    • 模板引擎(FreeMarker)
    • SpringSecurity
    • Maven
  • PYTHON

    • 概述
    • python3
    • python3(菜鸟教程)
    • pandas
    • numpy
    • matplotlib
  • 中间件

    • Kafka
    • RocketMQ
    • Redis
    • MongoDB
    • Elastic Search
  • 数据库

    • Mysql
  • 前端

    • HTML
    • CSS
    • Javascript
    • Vue2学习笔记
    • Vue3学习笔记
  • 设计模式
  • 大数据

    • 概览
    • Hadoop
    • Hive
  • 机器学习

    • 机器学习概览
  • openclaw实战
  • claudecode实战
  • RAG
  • 拟人类Agent
  • linux命令速查
  • windows命令速查
  • Docker笔记
  • kubernetes学习笔记
  • kubernetes实操笔记
  • 运维工具大全
  • git操作宝典
  • 概率论
  • 线性代数
  • 统计学
  • 金融知识学习
  • 聚宽
  • 因子分析
  • 后端

    • JAVA基础
    • JAVA多线程
    • JVM
    • 分布式相关
    • 数据库
  • 前端

    • HTML
    • CSS
    • JAVASCRIPT
    • VUE3
    • 网络
    • 前端工程化
    • nodejs
  • AI

    • RAG
  • 健身

    • 笔记
    • 训练计划
  • 读书笔记

    • 《深度学习》
  • 其他

    • RSS
    • 资源导航
    • 医保
    • 装修攻略
我也想搭建这样的博客!
🚋开往

HTML 面试题

⭐有哪些常用标签

文档结构标签:

标签说明
<html>根元素
<head>文档头部,包含元信息
<body>文档主体
<meta>元信息(字符集、视口、SEO)
<title>页面标题
<link>外部资源链接(CSS 等)
<script>JavaScript
<style>内联样式

语义化结构标签(HTML5):

标签说明
<header>页眉 / 章节头部
<nav>导航区域
<main>页面主内容(唯一)
<section>独立内容区块
<article>独立完整文章
<aside>侧边栏 / 附属内容
<footer>页脚

文本内容标签:

标签说明
<h1>~<h6>标题(h1 最重要)
<p>段落
<span>内联容器(无语义)
<div>块级容器(无语义)
<strong>重要文本(粗体,有语义)
<em>强调文本(斜体,有语义)
<br>换行
<hr>水平分隔线
<pre>预格式化文本
<code>代码片段
<blockquote>块级引用

列表标签:

标签说明
<ul>无序列表
<ol>有序列表
<li>列表项
<dl>定义列表
<dt>定义术语
<dd>术语描述

表单标签:

标签说明
<form>表单容器
<input>输入框(多种 type)
<textarea>多行文本
<select> / <option>下拉选择
<button>按钮
<label>表单标签(提升可访问性)
<fieldset> / <legend>表单分组

媒体标签:

标签说明
<img>图片
<video>视频
<audio>音频
<canvas>画布(JS 绘图)
<svg>矢量图形
<iframe>内嵌页面

链接和导航:

标签说明
<a>超链接

⭐什么是语义化 HTML?为什么重要?

语义化:使用具有明确含义的 HTML 标签来描述内容的结构和意义,而不是仅用 <div> 和 <span> 堆砌。

重要性:

  1. SEO 优化:搜索引擎更好地理解页面结构,提高排名
  2. 可访问性:屏幕阅读器等辅助技术依赖语义标签理解内容
  3. 可维护性:代码更易读,团队协作效率更高
  4. 浏览器兼容:浏览器对语义标签有内置样式优化
<!-- 非语义化(不推荐)-->
<div class="header">
  <div class="nav">...</div>
</div>
<div class="content">
  <div class="post">...</div>
</div>
<div class="footer">...</div>

<!-- 语义化(推荐)-->
<header>
  <nav>...</nav>
</header>
<main>
  <article>...</article>
</main>
<footer>...</footer>

⭐HTML5 新增了哪些特性?

分类新特性
语义化标签<header> <footer> <nav> <main> <section> <article> <aside> <figure>
表单增强新 input type:email、number、date、range、search;placeholder、required、autofocus 属性
多媒体<video>、<audio>,原生播放无需 Flash
图形<canvas>(位图绘制)、<svg>(矢量图形)
存储localStorage、sessionStorage(替代 Cookie 存储)
通信WebSocket(全双工通信)、Server-Sent Events
离线Service Worker、Cache API、Application Cache(已废弃)
APIGeolocation(地理位置)、Drag & Drop、History API、Web Workers
结构<!DOCTYPE html> 简化、字符集 <meta charset="UTF-8"> 简化

⭐src 和 href 的区别

属性用途加载行为常用标签
src引入外部资源,替换当前元素内容阻塞解析(script),或并行(img)<img>、<script>、<iframe>
href建立当前文档与外部资源的链接关系不阻塞解析(CSS 并行加载)<a>、<link>
<!-- src:资源内容嵌入当前位置 -->
<img src="logo.png">
<script src="app.js"></script>  <!-- 阻塞 HTML 解析 -->

<!-- href:建立链接关系 -->
<link href="style.css" rel="stylesheet">  <!-- 并行加载,但阻塞渲染 -->
<a href="https://example.com">链接</a>

⭐script 标签中 defer 和 async 的区别

特性普通 <script>asyncdefer
下载时机遇到时立即下载并行下载并行下载
执行时机下载后立即执行(阻塞 HTML 解析)下载完立即执行(可能打断解析)HTML 解析完毕后执行
执行顺序按顺序不保证顺序保证顺序
适用场景依赖 DOM 的同步脚本独立脚本(如统计)依赖 DOM、有顺序依赖的脚本
<!-- 阻塞解析 -->
<script src="app.js"></script>

<!-- 并行下载,完成即执行(顺序不保证)-->
<script src="analytics.js" async></script>

<!-- 并行下载,DOM 解析完后执行(顺序保证)-->
<script src="main.js" defer></script>

⭐link 和 @import 的区别

特性<link>@import
归属HTML 标签CSS 语法
加载时机页面加载时并行加载页面加载完后再加载 CSS
兼容性无兼容性问题低版本 IE 不支持
JS 操作可通过 DOM 操作不可通过 JS 操作
权重无差异无差异
<!-- 推荐:并行加载 -->
<link rel="stylesheet" href="style.css">
/* 不推荐:串行加载,影响性能 */
@import url("style.css");

⭐行内元素和块级元素的区别

特性块级元素(block)行内元素(inline)
占位独占一行与其他元素共一行
宽高可设置 width/height无法设置(由内容决定)
margin/padding上下左右均有效上下 margin 无效,padding 上下不影响布局
常见标签div p h1-h6 ul tablespan a img input strong em

inline-block:像行内元素一样排列,但可以设置宽高(如 <img>、<input>)。


⭐什么是 DOCTYPE?有什么作用?

DOCTYPE(Document Type Declaration) 是文档类型声明,告诉浏览器用哪种 HTML 规范来解析页面。

<!-- HTML5 标准声明(推荐)-->
<!DOCTYPE html>

作用:

  • 触发标准模式:浏览器按 W3C 标准渲染
  • 避免怪异模式:不写 DOCTYPE 时,浏览器会用"怪异模式"(Quirks Mode),模拟旧浏览器行为,可能导致布局异常

⭐Cookie、localStorage、sessionStorage 的区别

特性CookielocalStoragesessionStorage
存储大小~4KB~5MB~5MB
有效期可设置过期时间永久(手动清除)标签页关闭即清除
随请求发送是(自动携带)否否
作用域可跨子域同源共享同标签页同源
服务端访问可通过 Set-Cookie 设置否否
适用场景身份验证 Token用户偏好设置临时页面状态
// localStorage
localStorage.setItem('theme', 'dark')
localStorage.getItem('theme')  // 'dark'
localStorage.removeItem('theme')

// sessionStorage(API 相同,生命周期不同)
sessionStorage.setItem('step', '2')

// Cookie
document.cookie = 'token=abc123; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/'
Last Updated: 6/26/26, 3:05 AM
Contributors: dongyz8