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

【HTML/CSS面经】

HTML/CSS面经

  • HTML
    • 1. script标签中的async和defer的区别
    • 2. H5新特性
      • (1 标签语义化
      • (2 表单功能增强
      • (3 音频和视频标签
      • (4 canvas和svg绘画
      • (5 地理位置获取
      • (6 元素拖动API
      • (7 Web Worker
      • (8 Web Storage
      • (9 Web Socket
    • 3. 浏览器渲染页面
    • 4. 重绘和重排

HTML

1. script标签中的async和defer的区别

当浏览器在解析html的时候一旦遇到了script标签,那么就会停下来把script标签内的内容给执行掉,如果script标签引入的是外部文件,就需要等待下载和执行完才会回去继续往下解析。如果外部文件刚好是在一个网络情况较差的服务器上,那整个网站的加载都会带来很大影响。这就是script标签同步解析带来的阻塞弊端,从而影响页面加载性能

📌async异步 和 defer推迟:两者都是异步加载js。
不同点:async是js一加载完就会马上执行,不管html是否解析完毕,可能出现阻塞;而defer要等到html解析完毕之后才执行,不会阻塞html解析。

2. H5新特性

html5是一种描述性的标记语言。

(1 标签语义化

(2 表单功能增强

可以输入类型type(如email、date、url、tel)
新属性和功能:placeholder:输入框提示文本、required:必填字段、
autofocus:自动聚焦、pattern:正则验证等

(3 音频和视频标签

添加<audio>和<vedio>标签
属性有:autoplay:自动播放(许多浏览器已限制)、loop:循环播放
muted:静音、preload:预加载等

(4 canvas和svg绘画

(5 地理位置获取

(6 元素拖动API

  • 设置元素 draggable="true"

  • 监听拖动事件:dragstart, drag, dragend

  • 定义放置区域并监听:dragenter, dragover, dragleave, drop

(7 Web Worker

Web Worker 允许在后台线程中运行 JavaScript,不会阻塞 UI。

(8 Web Storage

  • 提供了比 cookies 更强大的客户端存储机制。Web Storage 更适合存储纯客户端的数据,而 Cookie 更适合需要在客户端和服务器之间传递的小量数据(如身份验证令牌)

  • 两种存储方式:

    localStorage - 永久存储,除非手动删除

    sessionStorage - 会话期间有效,关闭标签页后删除

cookie:

  1. 容量小4kb左右,可设置过期时间
  2. 是每次 HTTP 请求都会自动携带(通过请求头 Cookie)
    服务器可以通过响应头 Set-Cookie 设置客户端的 Cookie
    3.适合使用 Cookie 的情况:
    (1) 需要与服务器交互的小量数据(如会话 ID)
    (2) 需要设置过期时间的场景
    (3) 需要跨子域共享数据的场景

(9 Web Socket

WebSocket 提供了全双工、持久化的网络通信协议,适合实时应用。
特点:单个 TCP 连接、低延迟通信、服务器可以主动推送数据

3. 浏览器渲染页面

https://juejin.cn/post/7018358245785862151?searchId=20250528150844ACC48259DFD04AFDC5B6
(1.)主要过程:
- DOM树构建:渲染引擎解析HTML文档,将各个元素转换为DOM节点,从而生成DOM树
- CSSOM树构建:解析CSS,将其转化为CSS对象,组装构建成CSSOM树
- 渲染树构建:DOM树和CSSOM树构建完成后,浏览器会根据这两棵树构建除渲染树
- 页面布局:渲染树完成后,元素的位置关系以及样式确定,这时浏览器会计算出所以元素的大小和绝对位置
- 页面绘制
来源稀土掘金https://juejin.cn/user/3544481220801815

4. 重绘和重排

渲染树是动态构建的,DOM节点和CSS节点的改动都可能会造成渲染树的重新构建。也就造成页面的重排(回流)和重绘

  • 重排
    当DOM树中几何尺寸的变化(如元素大小,位置,布局方式等),这时渲染树里有改动的节点和受影响的节点都要重新计算。会导致要重新经历页面渲染的整个流程,所以开销很大。

以下操作都会导致页面重排:

页面首次渲染; 浏览器窗口大小发生变化; 元素的内容发生变化; 元素的尺寸或者位置发生变化; 元素的字体大小发生变化; 激活CSS伪类;
查询某些属性或者调用某些方法; 添加或者删除可见的DOM元素

  • 重绘
    当对DOM修改导致样式的变化(如颜色,背景色),则无需重新计算,直接为该元素进行绘制。重绘就是对元素绘制属性的修改。
    相较于重排,省去了布局和分层阶段,所以执行效率相对会高。

下面这些属性会导致重绘:

color、background 相关属性:background-color、background-image 等; outline
相关属性:outline-color、outline-width 、text-decoration;
border-radius、visibility、box-shadow。

注意:当触发重排,一定会触发重绘;但重绘不一定引发重排

相关文章:

【HTML/CSS面经】

HTML/CSS面经 HTML1. script标签中的async和defer的区别2. H5新特性&#xff08;1 标签语义化&#xff08;2 表单功能增强&#xff08;3 音频和视频标签&#xff08;4 canvas和svg绘画&#xff08;5 地理位置获取&#xff08;6 元素拖动API&#xff08;7 Web Worker&#xff08…...

git查看commit属于那个tag

1. 快速确认commit原始分支及合入tag # git describe 213b4b3bbef2771f7a1b8166f6e6989442ca67c8 查看commit合入tag # git describe 213b4b3bbef2771f7a1b8166f6e6989442ca67c8 --all 查看commit原始分支 2.查看分支与master关系 # git show --all 0.5.67_0006 --stat 以缩…...

如何从ISO镜像直接制作Docker容器基础镜像

引言 这段最值得总结的经验知识,就是如何在ISO镜像的基础上&#xff0c;直接做出docker base image&#xff0c;无需联网! 特别地&#xff0c;对于一些老旧OS系统&#xff0c;都能依此做出docker base image&#xff01; 例如,某些老旧系统&#xff0c;CentOS 6&#xff0c;…...

网站缓存入门与实战:浏览器与Nginx/Apache服务器端缓存,让网站速度起飞!(2025)

更多服务器知识&#xff0c;尽在hostol.com 嘿&#xff0c;各位站长和网站管理员朋友们&#xff01;咱们精心打造的网站&#xff0c;内容再好&#xff0c;设计再炫&#xff0c;如果用户打开它的时候&#xff0c;加载速度慢得像“老牛拉破车”&#xff0c;那体验可就大打折扣了…...

mysql-mysql源码本地调试

前言 先进行mysql源码本地编译&#xff1a;mysql源码本地编译 1.本地调试 这里以macbook为例 1.使用vscode打开mysql源码 2.创建basedir目录、数据目录、配置文件目录、配置文件 cd /Users/test/ mkdir mysqldir //创建数据目录和配置目录 cd mysqldir mkdir conf data …...

PCIe— Legacy PCI

Legacy Model ​​ 该器件通过将其引脚置位到控制器来生成中断。 在较旧的系统中&#xff0c;这个控制 器通常是Intel 8259 PIC&#xff0c;有15个IRQ输入和一个INTR输出。 然后&#xff0c;PIC将断 言INTR以通知CPU一个或多个中断正在挂起。 一旦CPU检测到INTR的断言…...

PostgreSQL数据库配置SSL操作说明书

背景&#xff1a; 因为postgresql或者mysql目前通过docker安装&#xff0c;只需要输入主机IP、用户名、密码即可访问成功&#xff0c;这样其实是不安全的&#xff0c;可能会通过一些手段获取到用户名密码导致数据被窃取。而ES、kafka等也是通过用户名/密码方式连接&#xff0c;…...

MySQL 的 super_read_only 和 read_only 参数

MySQL 的 super_read_only 和 read_only 参数 一、参数基本概念 1. read_only 参数 作用&#xff1a;控制普通用户是否只能读取数据影响范围&#xff1a;所有非SUPER权限的用户默认值&#xff1a;OFF&#xff08;可读写&#xff09; 2. super_read_only 参数 作用&#xf…...

低碳理念在道路工程中的应用-预制路面

一、引子 在上一篇文章里&#xff0c;给大家介绍了预制基层的应用&#xff0c;有人提出&#xff0c;既然基层能够预制&#xff0c;那么&#xff0c;道路面层能不能预制呢&#xff0c;有没有相关的研究成果和应用实例呢&#xff1f;答案是肯定的&#xff0c;在本篇文章中&#x…...

12-后端Web实战(登录认证)

在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的&#xff0c;所以我们今天的主题就是登录认证。最终要实现的效果是&#…...

TIDB创建索引失败 mkdir /tmp/tidb/tmp_ddl-4000/1370: no such file or directory.

TIDB创建索引失败&#xff1a;解决“mkdir /tmp/tidb/tmp_ddl-4000/1370: no such file or directory”问题 在使用 TIDB 数据库时&#xff0c;我们有时会遇到创建索引失败的问题。常见的错误信息为&#xff1a; mkdir /tmp/tidb/tmp_ddl-4000/1370: no such file or directo…...

Redis 插入中文乱码键

Java 代码&#xff1a; Bean// 静态代理模式: Redis 客户端代理类增强public StringRedisTemplateProxy stringRedisTemplateProxy(RedisKeySerializer redisKeySerializer,StringRedisTemplate stringRedisTemplate,RedissonClient redissonClient) {stringRedisTemplate.setK…...

Mac OS 使用说明

Mac 的启动组合键 了解可通过在启动时按住一个或多个按键来访问的 Mac 功能和工具。 若要使用这些组合键中的任何一个&#xff0c;请在按下电源按钮以开启 Mac 后或在 Mac 开始重新启动后&#xff0c;立即按住相应按键。请一直按住&#xff0c;直至电脑出现对应的行为。 !!!上…...

4.2.2 Spark SQL 默认数据源

在本实战概述中&#xff0c;我们探讨了如何在 Spark SQL 中使用 Parquet 格式作为默认数据源。首先&#xff0c;我们了解了 Parquet 文件的存储特性&#xff0c;包括其二进制存储方式和内嵌的 Schema 信息。接着&#xff0c;通过一系列命令&#xff0c;我们演示了如何在 HDFS 上…...

234. Palindrome Linked List

目录 一、题目描述 方法一、使用栈 方法二、将链表全部结点值复制到数组&#xff0c;再用双指针法 方法三、递归法逆序遍历链表 方法四、快慢指针反转链表 一、题目描述 234. Palindrome Linked List 方法一、使用栈 需要遍历两次。时间复杂度O(n)&#xff0c;空间复杂度…...

广州邮科高频开关电源:以创新科技赋能通信能源绿色未来

在数字化浪潮席卷全球的当下&#xff0c;通信网络作为信息社会的基石&#xff0c;其稳定运行对电源系统的可靠性、效率及智能化水平提出了更高要求。作为国内通信电源领域的领军企业&#xff0c;广州邮科凭借其自主研发的高频开关电源技术&#xff0c;以高效节能、智能管控、绿…...

day41 python图像识别任务

目录 一、数据预处理&#xff1a;为模型打下坚实基础 二、模型构建&#xff1a;多层感知机的实现 三、训练过程&#xff1a;迭代优化与性能评估 四、测试结果&#xff1a;模型性能的最终检验 五、总结与展望 在深度学习的旅程中&#xff0c;多层感知机&#xff08;MLP&…...

无人机报警器探测模块技术解析!

一、运行方式 1. 频谱监测与信号识别 全频段扫描&#xff1a;模块实时扫描900MHz、1.5GHz、2.4GHz、5.8GHz等无人机常用频段&#xff0c;覆盖遥控、图传及GPS导航信号。 多路分集技术&#xff1a;采用多传感器阵列&#xff0c;通过信号加权合并提升信噪比&#xff0c;…...

Docker 替换宿主与容器的映射端口和文件路径

在使用 Docker 容器化应用程序时&#xff0c;经常需要将宿主机的端口和文件路径映射到容器中&#xff0c;以便在本地访问容器中的服务和数据。本文将详细介绍如何替换和配置 Docker 容器的端口和文件路径映射。 1. 端口映射 端口映射用于将宿主机的端口转发到容器中的端口&am…...

我的3种AI写作节奏搭配模型,适合不同类型写作者

—不用内耗地高效写完一篇内容&#xff0c;原来可以这样搭配AI ✍️ 开场&#xff1a;为什么要“搭配节奏”写作&#xff1f; 很多人以为用AI写作&#xff0c;就是丢一句提示词&#xff0c;然后“等它写完”。 但你有没有遇到这些情况&#xff1a; AI写得很快&#xff0c;学境…...

Bonjour

Bonjour 是苹果的一套零配置网络协议&#xff0c;用于发现局域网内的其他设备并进行通信&#xff0c;比如发现打印机、手机、电视等。 一句话&#xff1a;发现局域网其他设备和让其他设备发现。 Bonjour 可以完成的工作 IP 获取名称解析搜索服务 实际应用场景示例&#xff0…...

华为云Flexus+DeepSeek征文 | 基于Dify和DeepSeek-R1开发企业级AI Agent全流程指南

作者简介 我是摘星&#xff0c;一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型&#xff0c;将实际使用经验分享给大家&#xff0c;希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 1. 前言 2. 环境准备 2.1 华为云资源准备 2.1 实…...

HarmonyOS-ArkUI固定样式弹窗(1)

固定样式弹窗指的就是ArkUI中为我们提供的一些具备界面模板性质的弹窗。样式是固定的,我们可以决定在这些模板里输入什么样的内容。常见的有,警告弹窗, 列表选择弹窗, 选择器弹窗,对话框,操作菜单。 下图是本文中要讲到的基类固定样式弹窗,其中选择器弹窗没有包含在内,…...

痉挛性斜颈相关内容说明

一、颈部姿态的异常偏移​ 痉挛性斜颈会打破颈部原本自然笔直的状态&#xff0c;让颈部像被无形的力量牵引&#xff0c;出现不自主的歪斜、扭转。它就像打乱了颈部原本和谐的 “平衡游戏”&#xff0c;使得颈部姿态偏离正常&#xff0c;影响日常的体态与活动。​ 二、容易察觉…...

C语言| 函数参数传递指针

C语言| 拷贝传递(指针控制内存单元)-CSDN博客 【函数参数传指针和传数据的区别】 如果希望在另外一个函数中修改本函数中变量的值&#xff0c;那么在调用函数时只能传递该变量的地址。 1 普通变量&#xff0c;传递它的地址&#xff0c;可以直接操作该变量的内存空间。 举例…...

【25-cv-05917】HSP律所代理Le Petit Prince 小王子商标维权案

Le Petit Prince 小王子 案件号&#xff1a;25-cv-05917 立案时间&#xff1a;2025年5月28日 原告&#xff1a;SOCIETE POUR LOEUVRE ET LA MEMOIRE DANTOINE DE SAINT EXUPERY - SUCCESSION DE SAINT EXUPERY-DAGAY 代理律所&#xff1a;HSP 原告介绍 《小王子》&#x…...

MyBatis 动态 SQL 详解:灵活构建强大查询

MyBatis 的动态 SQL 功能是其最强大的特性之一&#xff0c;它允许开发者根据不同条件动态生成 SQL 语句&#xff0c;极大地提高了 SQL 的灵活性和复用性。本文将深入探讨 MyBatis 的动态 SQL 功能&#xff0c;包括 OGNL 表达式的使用以及各种动态 SQL 元素&#xff08;如 if、c…...

从 “金屋藏娇” 到 自然语言处理(NLP)

文章目录 从两个问题理解自然语言处理&#xff08;NLP&#xff09;1、汉武帝喜欢阿娇吗1. 政治联姻的背景2. 早期情感与后期疏远3. 历史评价的复杂性4. 现代视角结论 2、刘彻和淮南王关系一、背景&#xff1a;诸侯王与中央的矛盾二、刘彻与刘安的互动三、深层原因与历史评价结论…...

vue3 ElMessage提示语换行渲染

在 ElMessage.error 中使用换行符 \n 并不会实现换行&#xff0c;因为 ElMessage 默认会将字符串中的换行符忽略。要实现换行显示&#xff0c;可以使用 HTML 标签 <br> 并结合 ElMessage 的 dangerouslyUseHTMLString 选项。以下是实现换行提示的代码示例&#xff1a; i…...

Java 微服务架构设计:服务拆分与服务发现的策略

Java 微服务架构设计&#xff1a;服务拆分与服务发现的策略 微服务架构作为一种热门的软件架构风格&#xff0c;在 Java 领域有着广泛的应用。它通过将系统拆分为一组小型服务来实现更灵活、可扩展的系统设计。在微服务架构中&#xff0c;服务拆分和服务发现是两个关键环节。本…...