面试题整合——html篇

引言

下面介绍九个面试时碰到的关于html的面试题。

1. 行内元素和块级元素的特点

行内元素(inline elements)

  • 特点:

    • 不能设置 widthheight,大小由内容决定。
    • 默认不会换行,多个行内元素在同一行显示。
    • 只能包裹文本或其他行内元素,不能包含块级元素。
  • 常见的行内元素:
    <a><span><b><i><strong><em><label><img><input>

块级元素(block elements)

  • 特点:

    • 独占一行,默认宽度 100%(除 div 外)。
    • 可以设置 widthheight,可以包含块级和行内元素。
  • 常见的块级元素:
    <div><p><h1>~<h6><ul><ol><li><table><section><article><aside><footer>


2. HTML5 新特性

结构语义化标签

  • <header><footer><article><section><nav><aside> 提升 SEO 和可读性。

表单增强

  • <input type="email | number | date | range">
  • <datalist> 提供自动补全
  • <output> 用于显示计算结果

多媒体支持

  • <audio><video> 直接播放音频和视频。
  • <canvas> 画布绘图。

本地存储

  • localStorage:长期存储,数据不随浏览器关闭而丢失。
  • sessionStorage:仅会话存储,浏览器关闭即丢失。

WebSockets

  • 实现实时通信(如 Web 聊天、推送)。

Geolocation API

  • 获取用户地理位置。

3. 浮动(float)及清除浮动

浮动的作用

  • float 使元素脱离文档流,常用于布局(如文字环绕图片)。
css 复制代码
img {
  float: left;
  margin-right: 10px;
}

如何清除浮动

详细见上篇文章:简单介绍清除浮动解决高度塌陷的四种方法✍🏻


4. 网页端适配方案

  1. 流式布局 :使用 width: % 使内容适应不同屏幕。

  2. 媒体查询(Media Query)

    css 复制代码
    @media (max-width: 600px) {
      body {
        background-color: lightblue;
      }
    }
  3. 弹性布局(flexbox/grid) :使用 display: flex 适配不同屏幕。

  4. rem/vw/vh

    css 复制代码
    html { font-size: 16px; }
    body { font-size: 1rem; } /* 适应不同设备 */

5. 盒子模型

  • 标准盒模型width = content + padding + border + margin
  • IE 盒模型(box-sizing: border-box;width = content + padding + border(更方便布局)

6. 重排(Reflow)和重绘(Repaint)

  • 重排(Reflow) :涉及 DOM 结构变化(影响布局)。

    • 触发:添加/删除元素、widthheightposition 变化。
    • 解决方案:减少 DOM 操作、使用 display: none 批量修改后再显示。
  • 重绘(Repaint) :仅涉及视觉更新(不影响布局)。

    • 触发:colorbackground 变化。

7. Float 布局

  • float: left/right 让元素左右浮动。

  • 缺点

    • 需要清除浮动,避免父元素高度塌陷。
    • 影响后续元素的排版。
css 复制代码
.container {
  width: 500px;
}
.left {
  float: left;
  width: 200px;
}
.right {
  float: right;
  width: 200px;
}

8. Flex 布局

  • display: flex 让子元素可以自动调整布局,适用于响应式开发
css 复制代码
.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

常见属性

属性 作用
flex-direction 方向(rowcolumn
justify-content 主轴对齐方式(centerspace-betweenspace-around
align-items 交叉轴对齐方式(stretchcenter
flex-wrap 是否换行(nowrapwrap

9. Canvas

<canvas> 是 HTML5 提供的 2D 画布,用于绘制图形、动画、数据可视化。

ini 复制代码
<canvas id="myCanvas" width="400" height="400"></canvas>
<script>
  const canvas = document.getElementById("myCanvas");
  const ctx = canvas.getContext("2d");

  ctx.fillStyle = "red";
  ctx.fillRect(50, 50, 100, 100); // 绘制红色方块
</script>

Canvas API

方法 作用
fillRect(x, y, width, height) 绘制矩形
strokeRect(x, y, width, height) 绘制边框矩形
beginPath() 开始路径
moveTo(x, y) 移动画笔
lineTo(x, y) 画线
arc(x, y, r, start, end) 画圆
相关推荐
EnticE1522 小时前
[高阶数据结构]二叉树经典面试题
数据结构·算法·面试
Attacking-Coder2 小时前
前端面试宝典---webpack面试题
前端·面试·webpack
小堃学编程3 小时前
前端学习(1)—— 使用HTML编写一个简单的个人简历展示页面
前端·javascript·html
前端小巷子5 小时前
CSS3 遮罩
前端·css·面试·css3
什码情况6 小时前
星际篮球争霸赛/MVP争夺战 - 华为OD机试真题(A卷、Java题解)
java·数据结构·算法·华为od·面试·机试
chenyuhao20247 小时前
链表面试题7之相交链表
数据结构·算法·链表·面试·c#
牛马baby8 小时前
Java高频面试之并发编程-16
java·开发语言·面试
航Hang*8 小时前
前端项目2-01:个人简介页面
前端·经验分享·html·css3·html5·webstorm
Frankabcdefgh9 小时前
前端进化论·JavaScript 篇 · 数据类型
javascript·安全·面试·数据类型·操作符·初学者·原理解析
水银嘻嘻10 小时前
Web 自动化之 HTML & JavaScript 详解
前端·自动化·html