面试题整合——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) 画圆
相关推荐
·云扬·1 小时前
MySQL 常见存储引擎详解及面试高频考点
数据库·mysql·面试
石去皿2 小时前
大模型面试常见问答
人工智能·面试·职场和发展
黄晓琪3 小时前
Java AQS底层原理:面试深度解析(附实战避坑)
java·开发语言·面试
PaQiuQiu4 小时前
GitHub 开源分享 | Coding Interview University
面试·开源·github
Surplusx5 小时前
运用VS Code前端开发工具完成网页头部导航栏
前端·html
源代码•宸8 小时前
Golang原理剖析(channel面试与分析)
开发语言·经验分享·后端·面试·golang·select·channel
小程同学>o<8 小时前
嵌入式之ARM体系与架构面试题(一)硬件基础篇
arm开发·笔记·学习·面试·架构
顾林海9 小时前
Android登录模块设计:别让“大门”变成“破篱笆”
android·经验分享·面试·架构·移动端
Chan1610 小时前
【 Java八股文面试 | RabbitMQ篇 】
java·spring boot·spring·面试·java-ee·rabbitmq·java-rabbitmq
小旭952710 小时前
【Java 面试高频考点】finally 与 return 执行顺序 解析
java·开发语言·jvm·面试·intellij-idea