前端自适应实现方法

article/2025/10/24 18:26:37

一、自适应的分类

1、大屏幕显示更多内容

描述:即根据固定像素大小,显示内容根据显示器分辨率决定,分辨率越大,显示内容越多。
适应性:适合没有图表的页面,因为图表一般用作大屏展示,而大屏一般都是铺满整个屏幕的。

2、不同屏幕显示相同内容

描述:不同大小及分辨率的屏幕,只要宽高比例相同(例 16:9),其展示的内容就一致。
适应性:比较适合大屏展示,移动端和后台管理也可以用,但没必要。

二、普通项目自适应(后台管理,移动端等)

1、使用flex布局

对齐方式可以使用flex,包括左对齐,右对齐,水平居中,垂直居中,两端分布布局等。
flex常见样式

描述
justify-content: center纵轴居中对齐(垂直对齐)
justify-content: flex-start纵轴左对齐
justify-content: flex-end纵轴右对齐
align-items: center水平居中
align-items: baseline水平基线对齐
flex-direction: column置换横纵轴方向(修改为从上往下排列)
flex-wrap: wrap允许换行(内容过多时,可以自动换行)
justify-content: space-between两端均匀分布,左右不留空
justify-content: space-around两端均匀分布,左右留空

2、宽高避免写死

尽量不要把宽高写死,防止用户放大比例或者在小屏幕上样式错乱。
可以按比例、百分比、或者flex去设置宽高,同事借助margin,padding去实现。
以一个按钮举例:

<template><div class="main"><div class="button">短按钮</div><div class="button">长按钮长按钮</div></div>
</template><style lang="scss" scoped>
.main {display: flex;align-items: center;justify-content: center;.button {margin: 20px;color: rgb(255, 255, 255);background-color: rgb(50, 91, 224);padding: 0 16px;height: 30px;line-height: 30px;border-radius: 15px;}
}
</style>

在这里插入图片描述
可以看到,按钮没有设定宽度,仅仅使用了padding去撑开,这样的好处是,无论按钮字数多长,宽度都可以自适应;
这里高度使用固定30px,虽然高度也可以使用padding撑开,但按钮这种用途的,是可以使用固定高度的(随机应变)。

3、使用滚动

在设计图稿时就应该考虑到小屏幕的展示问题,但如果UI经验不足没有兼顾到,或者内容过多时,可以考虑使用滚动条,上下或者左右滚动。

三、大屏自适应

1、使用rem

rem的值是动态计算的,具体可以获取当前显示器的屏幕宽高,与一个标准值进行对比,其对比的值,就是rem的值。
获取屏幕宽高的方法

描述
window.innerWidth当前窗口的宽度
window.innerHeight当前窗口的高度

以设计图为1920*1080px举例
单独写一个js文件,计算rem的值,并在main.js中引入

function setRem() {// 默认使用100px作为基准大小const baseSize = 100;const baseVal = baseSize / 1920;const vW = window.innerWidth; // 当前窗口的宽度const rem = vW * baseVal; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应font-size值window.$size = rem / 100;document.documentElement.style.fontSize = rem + "px";
}
// 初始化
setRem();
// 窗口大小变化时重置 rem
window.onresize = function() {setRem();
};

如果你使用vscode编辑器,在使用rem单位的时候,可以借助 px to rem & rpx (cssrem)插件,这个插件可以帮助你计算px和rem的转换值。
插件
安装好插件后,可以在首选项中设置px与rem的转换基准比例,上面示例使用了100作为基准,所以这里也设置为100。
配置基准值

注意:这个示例没有计算屏幕高度的比例,是因为高度可以通过上下滚动或铺满来解决。

二、创建一个可使用的全局比例变量

可以在main.js文件中创建,方便直接使用

Vue.prototype.$size = document.body.clientWidth / 1920; 

这个变量是给一些没有自适应的第三方组件使用的,在已有的数值上乘以$size

100 * this.$size;

三、使用flex

同上

四、使用滚动

同上

五、避免宽高写死

同上

写在最后

自适应没有完全区分的界限,使用哪种方案需要根据项目实际情况来,两种同时混合使用也是很常见的,只是在混合使用时,需要注意rem和px的区分。


http://chatgpt.dhexx.cn/article/thvH5AuQ.shtml

相关文章

html移动端布局与页面自适应布局

常见的布局方式&#xff0c;这里指的是对于width和height在不同页面情况下的改变&#xff0c; 1.比如使用px&#xff0c;就是固定其高宽&#xff0c;不论页面怎样放大缩小&#xff0c;其占领的依旧是&#xff0c;使用px固定了的高宽。 2.又比如弹性布局&#xff0c;没有设置内容…

HTML页面与浏览器自适应

先看需求&#xff0c;打开了一个页面&#xff0c;正常打开没有问题&#xff0c;但是一旦把浏览器缩小&#xff0c;各种样式都发生了变化&#xff0c;还有一些页面有空余。 碰到这种问题&#xff0c;我们首先想到的就是页面的长宽是写死的&#xff0c;比如使用weight:120px;这类…

HTML简易自适应布局

效果图&#xff1a; 第一步&#xff1a;在body下先建三个块级&#xff0c;代码如下&#xff1a; <div class"one">第1个元素中的内容</div> <div class"two">第2个元素中的内容</div> <div class"three">第3个元…

人脸识别系列(一):dlib安装和使用

Dlib是较流行的人脸识别的开源库&#xff0c;使用c编写&#xff0c;里面包含了许多的机器学习算法&#xff0c;在python中也可以使用。Dlib保持着很好的更新节奏&#xff0c;文档也写得相当清晰&#xff0c;涉及到的资源都有标明在哪里下载&#xff0c;是一个优秀的人脸识别开源…

人脸识别经典开源项目

Face Recognition 是一个基于 Python 的人脸识别库&#xff0c;它还提供了一个命令行工具&#xff0c;让你通过命令行对任意文件夹中的图像进行人脸识别操作。 该库使用 dlib 顶尖的深度学习人脸识别技术构建&#xff0c;在户外脸部检测数据库基准(Labeled Faces in the Wild …

人脸检测库libfacedetection介绍

libfacedetection是于仕琪老师放到GitHub上的二进制库&#xff0c;没有源码&#xff0c;它的License是MIT&#xff0c;可以商用。目前只提供了windows 32和64位的release动态库&#xff0c;主页为https://github.com/ShiqiYu/libfacedetection&#xff0c;采用的算法好像是Mult…

face_recognition使用:人脸识别开源python库(face_recognition是基于dlib的深度学习人脸识别库)

face_recognition实现人脸识别的思路&#xff1a; &#xff11;.给定想要识别的人脸的图片并对其进行编码&#xff08;每个人只需要一张&#xff09;&#xff0c;并将这些不同的人脸编码构建成一个列表。编码其实就是将人脸图片映射成一个&#xff11;&#xff12;&#xff18;…

C/C++ 计算机视觉库/人脸识别开源软件

计算机视觉库 OpenCV OpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少量 C 类构成&#xff0c;实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。 OpenCV 对…

libfacedetection 人脸检测库的基本使用

目录 1、源码下载 2、编译 3、构建工程 4、个人总结 运行总结&#xff1a; 与CascadeClassifier级联分类器 人脸检测 对比: 1、源码下载 直接从github上克隆项目仓库。 git clone https://github.com/ShiqiYu/libfacedetection.git2、编译 这个项目使用了cmake脚本&#…

人脸检测库libfacedetection使用方法

libfacedetection介绍 libfacedetection是一个开源的人脸检测库&#xff0c;使用C编写&#xff0c;将模型文件转化为C的静态变量&#xff0c;不依赖外部第三方库&#xff0c;使用时可以直接把源代码拷到自己的工程&#xff0c;也可以使用动态库(so)/静态库(a)的方式来调用&…

人脸识别之一图像采集及人脸库的建立

完整人脸识别系统&#xff08;源码教程环境&#xff09;&#xff1a; 开源毕业设计&#xff1a;基于嵌入式ARM-Linux的应用OpenCV和QT实现的人脸识别系统(源码论文) 完全毕设教程&#xff1a;Linux上Opencv与Qt实现的人脸识别的考勤点名/门禁系统(PC与嵌入式ARM版本) 人脸识别…

C++实现人脸识别(百度云平台)

C实现人脸识别&#xff08;百度云平台&#xff09; 项目资源下载 项目思路&#xff1a;opencv 采集人脸照片&#xff0c;将照片发送至百度智能云平台&#xff0c;百度云平台与人脸库中的数据进行比较并返回结果。 一、项目环境 Ubuntu 64 20.0.4 opencv 4.2.0 二、环境配置…

人脸识别开源库

https://blog.csdn.net/qq_42156420/article/details/83445801 以往的人脸识别主要是包括人脸图像采集、人脸识别预处理、身份确认、身份查找等技术和系统。现在人脸识别已经慢慢延伸到了ADAS中的驾驶员检测、行人跟踪、甚至到了动态物体的跟踪。由此可以看出&#xff0c;人脸…

人脸识别——基于DLib库

目录 1.人脸识别的流程 2.ResNet-34算法概述 3.测试准备 4.测试代码 5.测试结果 1.人脸识别的流程 dlib库提供高精度人脸识别算法是基于深度学习网络ResNet-34实现&#xff0c;该网络基于三百万张照片进行训练&#xff0c;最终获得了人脸检测模型。 模型下载地址&#xff…

深度学习系列18:开源人脸识别库

这年头&#xff0c;能有个开源的人脸库真是感天谢地了&#xff0c;而且可以在arm机器上使用&#xff0c;真不容易。git地址见https://github.com/ageitgey/face_recognition 1. 人脸检测 人脸检测可以选hog和cnn两种。默认用hog&#xff08;在cpu上用cnn真的很慢&#xff09;…

人脸识别库的安装

确保你的python为3.6 !!! 1.安装cmake pip install cmake2.安装boost pip install boost3.安装dlib 选择19.8.1 pip install dlib19.8.14.安装face-recognition pip install face-recognition

应用一个基于Python的开源人脸识别库,face_recognition

转载请注明出处&#xff1a;http://blog.csdn.net/hongbin_xu 或 http://hongbin96.com/ 文章链接&#xff1a;http://blog.csdn.net/hongbin_xu/article/details/74981819 或http://hongbin96.com/125 今天看微信时&#xff0c;看到一篇推送文章介绍了一个基于python的开源人…

开源人脸识别库,face_recognition

转载请注明出处&#xff1a;http://blog.csdn.net/hongbin_xu 或 http://hongbin96.com/ 文章链接&#xff1a;http://blog.csdn.net/hongbin_xu/article/details/74981819 或http://hongbin96.com/125 今天看微信时&#xff0c;看到一篇推送文章介绍了一个基于python的开源人…

[深度学习] Python人脸识别库Deepface使用教程

deepface是一个Python轻量级人脸识别和人脸属性分析&#xff08;年龄、性别、情感和种族&#xff09;框架&#xff0c;提供非常简单的接口就可以实现各种人脸识别算法的应用。deepface官方仓库为deepface。deepface提供了多种模型&#xff0c;模型下载地址为deepface_models。 …

[深度学习] Python人脸识别库face_recognition使用教程

Python人脸识别库face_recognition使用教程 face_recognition号称是世界上最简单的开源人脸识别库&#xff0c;可以通过Python或命令行识别和操作人脸。face_recognition提供了十分完整的技术文档和应用实例&#xff0c;人脸识别初学者建议研究该库上手。face_recognition的官…