HTML面试整理

本篇博客整理了本人在近期 HTML 面试题中的部分错误或薄弱问题。

第 1 题:如何在 HTML 中实现响应式图片加载?请举例说明 srcset 和 picture 的使用场景。

HTML 提供了 srcset 和 <picture> 两种方式来实现响应式图片加载。

方式一:使用 srcset:

html 复制代码
<img srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 1500w"
     sizes="(max-width: 600px) 500px, (max-width: 1200px) 1000px, 1500px"
     src="fallback.jpg" alt="示例图片">

srcset 属性可为同一图像提供多个文件源和各自的分辨率描述符。浏览器会根据当前设备的屏幕尺寸(如宽度)和像素密度(如 DPI )来选择最合适的图像源进行加载。这样,就能 获得与其设备相匹配的最佳图像体验,而不必加载比所需更大或更高分辨率的图像,从而节省带宽并加快页面加载速度。

方式二:srcset与 <picture> 元素结合使用:

html 复制代码
<picture>
  <source 
    media="(min-width: 800px)"
    srcset="large-1.jpg 1x, large-2.jpg 2x"
    sizes="(min-width: 1200px) 600px, (min-width: 1000px) 50vw, 100vw">
  <source 
    media="(min-width: 400px)"
    srcset="medium-1.jpg 1x, medium-2.jpg 2x">
  <img 
    src="default.jpg" 
    srcset="small-1.jpg 1x, small-2.jpg 2x"
    alt="Responsive image">
</picture>

<picture> 元素提供了更复杂的图像源选项,可以根据不同的媒体条件(如屏幕宽度和分辨率)指定不同的图像源。这对于艺术方向性的响应式图像特别有用,比如当你希望在不同设备上显示不同裁剪或方向的图片时。

<source> 元素:

  • 第一个<source>元素针对视口宽度至少为 800px 的设备。使用 srcset 提供了两种分辨率(1x 和 2x)的大图像,适用于高分辨率显示设备。sizes 属性进一步定义了不同视口宽度下图像的显示宽 度,提供更精细的控制。
  • 第二个<source>元素针对视口宽度至少为 400px 的设备。同样使用 srcset 提供普通和高分辨率的中等尺寸图像。

<img> 元素:

作为所有 元素的后备选项。如果没有任何 元素的条件被满足,或者浏览器不支持 元素,将加载 中定义的图像。这里还使用了 srcset 来为小图提供不同分辨率的版本。

第 2 题:如何在 HTML 中实现一个可访问性良好的表单?

  1. 使用 <label> 与输入框关联:
html 复制代码
<label for="email">邮箱:</label>
<input type="email" id="email" name="email">
  1. 使用 <fieldset> 和 <legend> 来组织表单组。
  2. 使用 aria-* 属性增强辅助技术识别能力。

第 3 题:解释 <label> 标签的作用,并说明它如何与表单控件关联。

html 复制代码
<label for="username">用户名</label>
<input type="text" id="username">
  • <label> 标签描述表单输入项
  • for 属性应对应输入项的 id(不是 name)
  • 增强可访问性,点击 label 自动聚焦输入项

第 4 题:什么是块级元素和行内元素?请举出三个例子。

  • 行内元素有:a b span img input select strong(强调的语气)
  • 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4...p

第 5 题:HTML5 中如何嵌入音频和视频?

html 复制代码
<audio controls>
  <source src="audio.mp3" type="audio/mpeg">
  您的浏览器不支持 audio 标签。
</audio>

<video controls width="320">
  <source src="video.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

第 6 题:ARIA 属性的作用以及你在什么情况下使用它。

ARIA 属性用于增强无障碍访问,例如:

  • aria-label:提供辅助说明
  • aria-hidden="true":隐藏内容对读屏软件不可见
  • role="button":声明元素的交互角色
  • localStorage:持久存储
  • sessionStorage:临时存储(关闭标签页即失效)
    区别:本地存储不会自动随请求发送,容量更大,操作更简单

总结

通过本次错题整理发现,自己在 HTML 的可访问性、响应式图片、多媒体标签、ARIA 属性等方面还存在一定的理解偏差。

建议后续结合项目实际进行实践运用,并加强对 HTML5 新特性与浏览器行为的理解。

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
汉堡大王95273 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大3 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端