您查询的关键词是:前端自适应布局 
下面是原始网址 https://blog.csdn.net/qq_34416331/article/details/103658179 在 2023-07-17 02:17:40 的快照。

360搜索与该网页作者无关,不对其内容负责。

前端自适应布局_AldarLin的博客-CSDN博客

前端自适应布局

在前端开发中,我们不可避免要面临适配问题。本文将介绍几种适配方式:

一、px和em

1.1 px

1.2 em 

二、rem

2.1 rem原理

2.2 rem如何计算的

2.3 rem使用

三、使用插件px2rem转换

3.1 原理和优点

3.2 使用方式


一、px和em

px、em、rem都是计量单位,都能表示尺寸。

1.1 px

px表示的是绝对尺寸,是一个固定大小的单元。像素的计算是针对设备屏幕的,1px就是设备屏幕上的一个点。

由于它是固定大小的单位,一般用它来设计网页,但如果用来在手机/ipad上的话,在不同的屏幕上显示无法做到自适应的效果。

 

1.2 em 

em表示的是相对长度单位,它是通过设置文本字体尺寸来实现自适应,它是相对于当前对象内文本的字体尺寸。通常浏览器默认1em=16px,通过设置font-size大小来修改,如:16px*0.625=10px, 则1em=10px。

但em的值会根据父元素的变化而变化,若是修改了一个父元素的尺寸,其子元素的尺寸都要重新修改。

 

二、rem

2.1 rem原理

rem是css3新增的一个相对长度单位,解决了em变量依赖父元素尺寸的弊端,而rem只相对于根目录,即html标签。我们只要在html标签上设置font-size大小,文档中的字体大小都会以此为标准,通常使用rem来做自适应布局。

 

2.2 rem如何计算的

rem是将设备屏幕宽度按比例划分的,将屏幕分为均等的100份,则在<html>中设置font-size值为 1rem = 设备宽度/100,之后的元素尺寸设定我们都应使用rem进行设定。当设备宽度改变时,1rem对应的像素就自动修改了。

常见的设备尺寸:
320px => iphone5/se
360px => 安卓手机
375px => iphone6/7/8 iphoneX
414px => iphone6/7/8 plus
// 设备尺寸为320px时
1rem = 320/100 = 3.2px
// 设备尺寸为360px时
1rem = 360/100 = 3.6px
// 设备尺寸为375px时
1rem = 375/100 = 3.75px
// 设备尺寸为414px时
1rem = 414/100 = 4.14px

 

2.3 rem使用

2.3.1 使用枚举类型进行自适应

// 自适应
// ------------------------
html{
font-size: 38px;
}
@media only screen and (min-width: 320px) {
html {
font-size: 42.666px !important;
}
}
@media only screen and (min-width: 360px) {
html {
font-size: 48px !important;
}
}
@media only screen and (min-width: 375px) {
html {
font-size: 50px !important;
}
}
@media only screen and (min-width: 414px) {
html {
font-size: 55.2px !important;
}
}
@media only screen and (min-width: 480px) {
html {
font-size: 64px !important;
}
}
@media only screen and (min-width: 560px) {
html {
font-size: 74.666px !important;
}
}
@media only screen and (min-width: 640px) {
html {
font-size: 85.333px !important;
}
}
@media only screen and (min-width: 720px) {
html {
font-size: 96px !important;
}
}
@media only screen and (min-width: 750px) {
html {
font-size: 100px !important;
}
}
@media only screen and (min-width: 800px) {
html {
font-size: 106.666px !important;
}
}
@media only screen and (min-width: 960px) {
html {
font-size: 128px !important;
}
}

 

2.3.2 使用 rem.js 来计算rem

在项目中加入rem.js,并引入就可以使用

/* rem.js文件内容 */
(function () {
var html = document.documentElement;
function onWindowResize() {
html.style.fontSize = html.getBoundingClientRect().width / 20 + 'px';
}
window.addEventListener('resize', onWindowResize);
onWindowResize();
})();

 

三、使用插件px2rem转换

3.1 原理和优点

使用px2rem插件,可以无需再引入rem项目,插件会自动根据手机型号计算 dpr 的值,同时在html根标签内植入一个相应的font-size的值。

优点如下:

  • 保证不同设备下的统一视觉体验。
  • 不需要你再手动设置 viewport,根据当前环境计算出最适合的 viewport。
  • 支持任意尺寸的设计图,不局限于特定尺寸的设计图。
  • 支持单一项目,多种设计图尺寸,专为解决大型,长周期项目。
  • 提供 px2rem 转换方法,CSS 布局,零成本转换,原始值不丢失。
  • 有效解决移动端真实 1 像素问题。

 

3.2 使用方式

3.2.1 安装

npm i px2rem-loader -D

3.2.2 在配置中加入这个插件

可以在webpack中加入配置

plugins:[
new webpack.LoaderOptionsPlugin({
vue: {
postcss: [require('postcss-px2rem')({'remUnit': 100,'remPrecision':8})]
},
})
]

一般postcss建议单独配置在文件postcss.config.js

module.exports = {
plugins: [
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('postcss-px2rem')({remUnit: 100, remPrecision:8})
]
}

 

参考链接:

移动端h5之rem布局/px2rem: https://www.jianshu.com/p/e96ccb603a50

px2rem 移动端自适应方案:https://www.jianshu.com/p/64a6cafb1d5a

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
前端自适应(Responsive Web Design)是指网站能够根据用户设备的屏幕大小和分辨率等特性,自动调整页面布局和内容展示方式,以提供更好的用户体验。下面是一些实现前端自适应的代码技巧: 1. 使用响应式布局:使用 CSS3 Media Queries,设置不同屏幕大小和分辨率下的布局样式。例如: ```css /* 当屏幕宽度小于等于 768 像素时应用此样式 */ @media (max-width: 768px) { .container { width: 100%; padding: 0; } } /* 当屏幕宽度大于 768 像素时应用此样式 */ @media (min-width: 769px) { .container { width: 768px; padding: 20px; } } ``` 2. 使用弹性布局:使用 CSS Flexbox 或 Grid 等弹性布局技术,让页面中的元素能够自适应屏幕大小和分辨率的变化。例如: ```css .container { display: flex; flex-wrap: wrap; justify-content: space-between; } .item { flex-basis: calc(33.33% - 20px); margin-bottom: 20px; } ``` 3. 使用相对单位:使用相对单位(如百分比、em 等)代替绝对单位(如像素),以便让页面中的元素能够根据屏幕大小和分辨率自适应。例如: ```css .container { width: 100%; max-width: 1200px; } .item { width: 33.33%; padding: 1em; } ``` 4. 使用图片自适应技术:使用响应式图片或图片缩放技术,让图片能够根据屏幕大小和分辨率自适应。例如: ```html <img src="example.jpg" srcset="example-large.jpg 1200w, example-medium.jpg 800w, example-small.jpg 400w" alt="example"> ``` 5. 使用 JavaScript:使用 JavaScript 编写自适应的脚本,根据设备屏幕大小和分辨率等参数动态改变页面布局和内容。例如: ```javascript function adjustLayout() { const screenWidth = window.innerWidth; const screenHeight = window.innerHeight; // 根据屏幕大小动态调整页面布局和内容 } window.addEventListener('resize', adjustLayout); ``` 综上所述,前端自适应需要综合运用多种技术,以实现页面布局和内容的动态适应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AldarLin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值