【前端】【业务场景】【面试】在网页开发中,如何优化图片以提高页面加载速度?解决不同设备屏幕适配问题
📌 问题 1:在网页开发中,如何优化图片以提高页面加载速度?
🔍 一、关键词总结
| 关键词 | 说明 |
|---|---|
| 图片压缩 | 借助 TinyPNG、ImageOptim 等工具,无损减小图片文件大小 |
| 格式选择 | JPEG(照片类)、PNG(简单图形、透明图像)、WebP(现代浏览器优先) |
| 尺寸适配 | 确保图片实际尺寸与页面显示尺寸相符 |
| 响应式加载 | 利用 元素或 的 srcset、sizes 属性适配设备 |
✨ 二、精炼总结
优化图片提升页面加载速度,关键在于:
压缩图片减体积,格式选对更轻巧,尺寸适配避缩放,响应加载省流量,多管齐下改善加载性能。
✅ 三、标准答法(结构化表达)
-
图片压缩
使用 TinyPNG、ImageOptim 等工具,在不明显损失画质前提下,去除 PNG 图片不必要元数据、优化色彩表等,减小文件大小。 -
格式选择
- JPEG:适合照片类图像,通过有损压缩在保证视觉效果时大幅缩小体积。
- PNG:适用于简单图形及有透明度需求的图像,如 logo 等。
- WebP:在支持的浏览器中,相比 JPEG 和 PNG 有更好的压缩效果,可借助现代图像加载库(如 imgix)实现自适应加载。
-
尺寸适配
确保图片尺寸与页面显示尺寸一致,避免浏览器对图片进行不必要缩放。若图片在页面显示宽度为 300px,准备对应宽度图片,而非大尺寸后用 CSS 缩放。 -
响应式加载
- 利用 HTML 的 元素,为不同设备屏幕尺寸和分辨率加载合适图片。
- 或通过 标签的 srcset 和 sizes 属性,如手机加载小尺寸图片,桌面设备加载大尺寸图片,减少数据传输。
📌 问题 2:在移动端开发中,如何解决不同设备屏幕适配问题?
🔍 一、关键词总结
| 关键词 | 说明 |
|---|---|
| 百分比布局 | 元素宽高、边距等设为百分比,随父容器缩放 |
| Flexbox 布局 | 强大布局模型,灵活控制子元素排列与对齐 |
| 媒体查询 | 根据设备屏幕特性应用不同样式 |
| rem/em 单位 | 相对根元素(rem)或父元素(em)字体大小缩放 |
✨ 二、精炼总结
解决移动端屏幕适配问题,核心思路为:
布局用百分比保比例,Flexbox 布局增灵活,媒体查询定样式,适配单位促缩放,综合运用满足多样设备需求。
✅ 三、标准答法(结构化表达)
-
百分比布局
设置元素的宽度、高度、边距等属性为百分比值,使元素按父容器大小按比例缩放。如 div 容器设width: 50%;,其宽度始终为父容器一半。 -
Flexbox 布局
- 通过设置
display: flex;开启弹性盒模型。 - 利用
flex - direction控制子元素排列方向,justify - content、align - items等属性调整对齐方式,实现复杂布局并适配不同屏幕。
- 通过设置
-
媒体查询
利用 CSS 的媒体查询,依据设备屏幕宽度、高度、分辨率等特性应用不同样式。如:
@media (max - width: 600px) {body {font - size: 14px;}
}
表示屏幕宽度小于等于 600px 时,页面字体大小设为 14px。
- 适配单位
- 使用 rem(相对于根元素字体大小)或 em(相对于父元素字体大小)单位替代固定像素单位。
- 设定根元素字体大小,如
html {font - size: 16px;},1rem 即等于 16px ,改变根元素字体大小,所有使用 rem 单位的元素会相应缩放。
相关文章:
【前端】【业务场景】【面试】在网页开发中,如何优化图片以提高页面加载速度?解决不同设备屏幕适配问题
📌 问题 1:在网页开发中,如何优化图片以提高页面加载速度? 🔍 一、关键词总结 关键词说明图片压缩借助 TinyPNG、ImageOptim 等工具,无损减小图片文件大小格式选择JPEG(照片类)、P…...
Git Flow分支模型
经典分支模型(Git Flow) 由 Vincent Driessen 提出的 Git Flow 模型,是管理 main(或 master)和 dev 分支的经典方案: main 用于生产发布,保持稳定; dev 用于日常开发,合并功能分支(feature/*); 功能开发在 feature 分支进行,完成后合并回 dev; 预发布分支(rele…...
安装 vmtools
第2章 安装 vmtools 1.安装 vmtools 的准备工作 1)现在查看是否安装了 gcc 查看是否安装gcc 打开终端 输入 gcc - v 安装 gcc 链接:https://blog.csdn.net/qq_45316173/article/details/122018354?ops_request_misc&request_id&biz_id10…...
【论文阅读20】-CNN-Attention-BiGRU-滑坡预测(2025-03)
这篇论文主要探讨了基于深度学习的滑坡位移预测模型,结合了MT-InSAR(多时相合成孔径雷达干涉测量)观测数据,提出了一种具有可解释性的滑坡位移预测方法。 [1] Zhou C, Ye M, Xia Z, et al. An interpretable attention-based deep…...
滑动窗口学习
2090. 半径为 k 的子数组平均值 题目 问题分析 给定一个数组 nums 和一个整数 k,需要构建一个新的数组 avgs,其中 avgs[i] 表示以 nums[i] 为中心且半径为 k 的子数组的平均值。如果在 i 前或后不足 k 个元素,则 avgs[i] 的值为 -1。 思路…...
用户需求报告、系统需求规格说明书、软件需求规格说明的对比分析
用户需求报告、系统需求规格说明书(SyRS)和软件需求规格说明书(SRS)是需求工程中的关键文档,分别对应不同层次和视角的需求描述。以下是它们的核心区别对比: 1. 用户需求报告(User Requirem…...
# 基于PyTorch的食品图像分类系统:从训练到部署全流程指南
基于PyTorch的食品图像分类系统:从训练到部署全流程指南 本文将详细介绍如何使用PyTorch框架构建一个完整的食品图像分类系统,涵盖数据预处理、模型构建、训练优化以及模型保存与加载的全过程。 1. 系统概述 本系统实现了一个基于卷积神经网络(CNN)的…...
v-html 显示富文本内容
返回数据格式: 只有图片名称 显示不出完整路径 解决方法:在接收数据后手动给img格式的拼接vite.config中的服务器地址 页面: <el-button click"">获取信息<el-button><!-- 弹出层 --> <el-dialog v-model&…...
【数学建模】孤立森林算法:异常检测的高效利器
孤立森林算法:异常检测的高效利器 文章目录 孤立森林算法:异常检测的高效利器1 引言2 孤立森林算法原理2.1 核心思想2.2 算法流程步骤一:构建孤立树(iTree)步骤二:构建孤立森林(iForest)步骤三:计算异常分数 3 代码实现…...
<项目代码>YOLO小船识别<目标检测>
项目代码下载链接 YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN)࿰…...
Crawl4AI:打破数据孤岛,开启大语言模型的实时智能新时代
当大语言模型遇见数据饥渴症 在人工智能的竞技场上,大语言模型(LLMs)正以惊人的速度进化,但其认知能力的跃升始终面临一个根本性挑战——如何持续获取新鲜、结构化、高相关性的数据。传统数据供给方式如同输血式营养支持ÿ…...
AI 技术发展:从起源到未来的深度剖析
一、AI 的起源与早期发展 人工智能(AI)作为计算机科学的重要分支,其诞生可以追溯到 20 世纪中叶。1943 年,艾伦・图灵提出图灵机的概念,为计算机科学和 AI 理论奠定了基础。1950 年,图灵又提出著名的图灵…...
jsconfig.json文件的作用
jsconfig.json文件的作用 为什么今天会谈到这个呢?有这么一个场景:我们每次开发项目时都会给路径配置别名,配完别名之后可以简化我们的开发,但是随之而来的就有一个问题,一般来说,当我们使用相对路径时…...
nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包
nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包 🧰 一、Node.js 的包管理工具有哪些? 工具简介是否默认特点npmNode.js 官方的包管理工具(Node Package Manager&am…...
常见的raid有哪些,使用场景是什么?
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种将多个物理硬盘组合成一个逻辑硬盘的技术,目的是通过数据冗余和/或并行访问提高性能、容错能力和存储容量。不同的 RAID 级别有不同的实现方式和应用场景。以下…...
【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句
1.准备工作 1.1创建数据库 (1)创建数据库: CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;(2)使用数据库 -- 使⽤数据数据 USE mybatis_test;1.2 创建用户表和实体类 创建用户表 -- 创建表[⽤⼾表…...
金融数据分析(Python)个人学习笔记(12):网络爬虫
一、导入模块和函数 from bs4 import BeautifulSoup from urllib.request import urlopen import re from urllib.error import HTTPError from time import timebs4:用于解析HTML和XML文档的Python库。 BeautifulSoup:方便地从网页内容中提取和处理数据…...
[Android]豆包爱学v4.5.0小学到研究生 题目Ai解析
拍照解析答案 【应用名称】豆包爱学 【应用版本】4.5.0 【软件大小】95mb 【适用平台】安卓 【应用简介】豆包爱学,一般又称河马爱学教育平台app,河马爱学。 关于学习,你可能也需要一个“豆包爱学”这样的AI伙伴,它将为你提供全方位的学习帮助…...
Qt开发:软件崩溃时,如何生成dump文件
文章目录 一、程序崩溃时如何自动生成 Dump 文件二、支持多线程中的异常捕获三、在 DLL 中使用 Dump 捕获四、封装成可复用类五、MiniDumpWriteDump函数详解 一、程序崩溃时如何自动生成 Dump 文件 步骤一:包含必要的头文件 #include <Windows.h> #include …...
普罗米修斯Prometheus监控安装(mac)
普罗米修斯是后端数据监控平台,通过Node_exporter/mysql_exporter等收集数据,Grafana将数据用图形的方式展示出来 官网各平台下载 Prometheus安装(mac) (1)通过brew安装 brew install prometheus &…...
Python SQL 工具包:SQLAlchemy介绍
SQLAlchemy 是一个功能强大且灵活的 Python SQL 工具包和对象关系映射(ORM)库。它被广泛用于与关系型数据库进行交互,提供了从低级 SQL 表达式到高级 ORM 的完整工具链。SQLAlchemy 的设计目标是让开发者能够以 Pythonic 的方式操作数据库&am…...
Shader属性讲解+Cg语言讲解
CPU调用GPU传递数据 修改Render组件的material属性 在脚本中更改游戏物体材质颜色代码示例: using System.Collections; using System.Collections.Generic; using UnityEngine;public class TestFixedColor : MonoBehaviour {void Start(){//创建预制体GameObjec…...
基于LightGBM-TPE算法对交通事故严重程度的分析与可视化
基于LightGBM-TPE算法对交通事故严重程度的分析与可视化 原文: Analysis and visualization of accidents severity based on LightGBM-TPE 1. 引言部分 文章开篇强调了道路交通事故作为意外死亡的主要原因,引起了多学科领域的关注。分析事故严重性特…...
什么是CRM系统,它的作用是什么?CRM全面指南
CRM(Customer Relationship Management,客户关系管理)系统是一种专门用于集中管理客户信息、优化销售流程、提升客户满意度、支持精准营销、驱动数据分析决策、加强跨部门协同、提升客户生命周期价值的业务系统工具。其中,优化销售…...
MySQL 启动报错:InnoDB 表空间丢失问题及解决方法
MySQL 启动报错:InnoDB 表空间丢失问题及解决方法 在启动 MySQL 时,遇到了如下错误: 2025-01-16T12:43:28.341240Z 0 [ERROR] InnoDB: Tablespace 5975 was not found at ./my_jspt/sw_rtu_message_202408.ibd. 2025-01-16T12:43:28.341244…...
MYSQL之库的操作
创建数据库 语法很简单, 主要是看看选项(与编码相关的): CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 1. 语句中大写的是…...
笔记本电脑研发笔记:BIOS,Driver,Preloader详记
在笔记本电脑的研发过程中,Driver(驱动程序)、BIOS(基本输入输出系统)和 Preloader(预加载程序)之间存在着密切的相互关系和影响,具体如下: 相互关系 BIOS 与 Preload…...
同样的html标记,不同语言的文本,显示的字体和粗细会不一样吗
同样的 HTML 标记,在不同语言的文本下,显示出来的字体和粗细确实可能会不一样,原因如下: 🌍 不同语言默认字体不同 浏览器字体回退机制 CSS 里写的字体如果当前系统不支持,就会回退到下一个,比如…...
JavaScript 笔记 --- part 5 --- Web API (part 3)
(webAPI part3) BOM 操作 JS 执行机制 javascript 是单线程的, 也就是说, 只能同时执行一个任务。 为了解决这个问题, 利用多核 CPU 的计算能力, HTML5 提出 Web Worker API, 允许 JavaScript 脚本创建多个线程, 并将任务分配给这些线程。 于是, JS 出现了同步和异步的概念。…...
Linux 下的网络管理(附加详细实验案例)
一、简单了解 NM(NetworkManager) 在 Linux 中,NM 是 NetworkManager 的缩写。它是一个用于管理网络连接的守护进程和工具集。 在 RHEL9 上,使用 NM 进行网络配置,ifcfg (也称为文件)将不再…...
