移动Web开发基础-flexible布局方案

article/2025/9/29 13:57:58

概述

前面我们已经已经了解了两种基本的布局方案,移动Web开发基础-百分比+flex布局方案 和 移动Web开发基础-rem布局,其中rem布局方案和我们今天要了解的flexible布局方案是有关系的,因为这两种方案布局元素的单位都是rem,他们的区别在于前者是固定viewport缩放值,而flexible布局方案是根据设备像素密度比DPR动态修改viewport,下面我们来具体了解下吧。

基本了解

1.flexible布局方案是手淘团队在实际应用中总结出来的一套适配方案
2.GitHub地址:https://github.com/amfe/lib-flexible
3.详细学习参考:使用Flexible实现手淘H5页面的终端适配

理解

flexible布局方案主要处理三件事情

1.动态改写<meta>标签

这里写图片描述


2.给<html>元素添加data-dpr属性,并且动态改写data-dpr的值

3.给<html>元素添加font-size属性,并且动态改写font-size的值

如下图


这里写图片描述

这里写图片描述

从iPhone 6的设备上可以看出,淘宝约定了 1rem = 75px,如果你说计算不方便的话可以尝试去使用相应的一些插件。
因为通过viewport缩放解决了Retina显示屏倍率的问题,所以这种方案可以完美解决1像素的问题,可以直接设置边框为1px。如果你对Retina显示屏还不太了解的话可以看这里 移动Web开发基础-Viewport。

data-dpr的作用是什么?

因为rem布局中,一般阅读类型的页面文字是不建议用rem作为单位的,所以我们就需要根据不同的像素密度比对同一元素设置不同的字体大小,这样更符合系统的设计原则。如下图

这里写图片描述

总结

本文主要分析了淘宝flexible布局方案的三个关键点,相信大家对原理了解清楚了之后就更容易在实践中应用它了,当然,除了目前介绍的几种布局方案之外呢,还有利用CSS3的VW、VH单位进行布局的方案,具体可以学习 大漠老师的文章 再聊移动端页面的适配。

当然在使用rem布局方案的同时,也相应的可以知道一下几点内容:

1.阅读类型的页面文字尽量不用rem作为单位,因为这不符合设备系统的设计原则,也就是说不同屏幕宽度的设备,用户希望看到的是更多或更少的文字,而不是更大或更小的文字。这就好比吃红烧肉,小碗装的是小块的肉,你不能因为你换了个盆装就把红烧肉切成豆腐块那么大吧,因为用户最终希望的还是想要一小块刚刚好放嘴里的红烧肉。

2.设备最大宽度。在body元素上可以设置最大宽度,这样做的目的是为了不至于在一些特殊情况比如在PC上打开页面的时候页面上的内容非常非常大。

3.图标元素设置一定的容错空间。因为rem作为布局单位是通过计算最终转化成px作为单位的,这样有时就会因为取舍造成小数像素的误差,布局的时候还好,但是用在如雪碧图图标上时有可能出现切边,所以这种场景下可以考虑使用 iconfont或者使用 background-image时,尽量为背景图设置一定的空白间隙,如下图。

这里写图片描述

这里写图片描述

图片来源: rem 产生的小数像素问题(淘宝前端团队(FED))

另,如果想了解更多移动web开发的基础知识,可以关注我的专栏 移动Web开发实战,谢谢!


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

相关文章

十大移动web开发工具

以下列出的这些是目前十大移动web开发工具,移动开发者可以(根据具体情况)用这些工具来创建apps,实现丰富的功能。欢迎提出宝贵意见。 1)mobl-lang Mobl是一款免费且开源的语言,可以加快移动app的开发速度。结合HTML5技术,mobl具有以下特性:是一种简洁的语言,给人的感觉就…

Web前端系列技术之移动Web开发(从基础开始)①

移动Web开发 现如今&#xff0c;PC端网页已经不能满足于人们日常生活的便捷了&#xff0c;应运而生的移动端网页自然而然也变得更加受人青睐&#xff1b;毕竟曾有言&#xff1a;“ 有人或许不会使用电脑&#xff0c;但是大部分人都会使用手机 ”&#xff1b; 所以&#xff0c…

Unity3D标准资源包下载与使用

如图下面没有标准包&#xff0c;不利于做一些基本的场景搭建操作。可通过下面的方法下载并使用&#xff1a; 资源包下载有两种方法&#xff1a; 一、直接导入型的资源包 下载地址&#xff1a;https://unity.cn/ 依次选择下图红色标记处&#xff0c;并选择适合自己的类型&am…

Unity3D 获取资源运行时内存和硬盘大小

Unity3D &#x1f33b;获取资源运行时内存和硬盘大小 &#x1f33b;内存 使用Profiler可以查看某个资源的内存占用情况&#xff0c;但是必须启动游戏&#xff0c;并且待查看的资源已经载入游戏中。我希望的是不启动游戏&#xff0c;也能看到它的内存好做统计。 &#x1f33b;…

Unity3D 导入资源

使用Unity3D来设计游戏 全部文章 见 使用Unity3D来设计游戏 打开Unity3D的&#xff1a;window-asset store 就会出来这样的界面&#xff1a; 我们选择一个天空纹理&#xff0c;注意这里的标签只有一个&#xff0c;如果有多个就会显示所有标签的内容&#xff1a; 找个比较小的免…

Unity3D视图介绍

unity视图介绍 Unity 3D 拥有强大的编辑界面&#xff0c;游戏开发者在创建游戏过程中可以通过可视化的编辑界面创建游戏。 Unity 3D 的基本界面非常简单&#xff0c;主要包括菜单栏、工具栏以及五大视图&#xff0c;几个窗口就可以实现几乎全部的编辑功能。 一、Unity 3D 界…

Unity3D资源管理架构

在Unity3D引擎中&#xff0c;场景资源文件(.unity)是以2进制格式存储的&#xff0c;但同时它也有一种基于文本的表现格式。可在Edit>Project Setting>Editor 中设置&#xff1a; 1.使用binary2text.exe(win下目录&#xff1a;Editor\Data\Tools)可将.unity文件转换成.…

Unity3D 修改动画,资源文件设置

导出到项目中的动画文件&#xff0c;或者其他类型的资源文件&#xff08;图片&#xff0c;音频...&#xff09;&#xff0c;通常是需要在面板中修改一下设置的。少量修改可以手动处理&#xff0c;当需要批量修改设置时&#xff0c;就会想到做个工具批量修改。 之前做过批量修改…

关于Unity3D资源打成安卓包的资源加载路径问题

1.问题描述&#xff08;博主在论坛提了问&#xff0c;没人回复自己又折腾了一天&#xff0c;解决了。&#xff09; 2.解决方法&#xff1a; 网上查了一大堆资料。有说 file后加/// 或者 &#xff01;/assets/改成 &#xff01;assets的&#xff0c;全部亲测无效 方法&#xff1…

unity3d资源商店买的素材下载遇到问题

unity3d资源商店买的素材下载遇到问题 unity3d资源商店买的素材下载&#xff0c;在打开package manager 的my assets 进行下载的时候&#xff0c;右下角一直弹出 the download could not be completed. please try again. 使用的那个素材包规定的unity之前的版本创建的新项目…

Unity3D游戏资源的提取

现在越来越多的安卓游戏用Unity3D引擎编写,以前关注的地方都是内购破解方面,所以修改比较多的地方是C/C++编写的dll逻辑,资源的提取很少操作。看了 @林哥 的分享,http://www.kanxue.com/bbs/showthread.php?t=191380 ,觉得这方面提升的空间很大,就折腾了一番。前言 在游…

【Unity3D】基于AssetBundle实现资源热更新

1 前言 Unity3D 本地资源一般放在 Resources 目录下&#xff0c;但是 Resouces 文件夹的大小不能超过 2G&#xff0c;使用 AssetBundle 管理资源可以解决 Resources 文件夹受限问题。 本文代码资源见→基于AssetBundle实现资源热更新。 AssetBundle 主要用于管理资源&#xff0…

Unity3D资源加密解决方案

https://blog.csdn.net/love_hot_girl 很多VR企业开发的软件有很多文件资源需要保护&#xff0c;而目前行业鲜有好的加密方案可供开发者使用。基于深思云授权平台&#xff0c;有一套Unity3D代码及资源加密保护方案&#xff0c;可通过Virbox Protector加壳工具对代码及资源进行加…

unity3d 挂载脚本_Unity3D加载资源的四种方式

一、准备场景和预设和AB包资源 ①新建一个Cube然后创建一个材质球,然后将其做成预设,如下所示: ②编写打包预设为AB包的脚本(注意:该脚本需要放置在Editor这个特定的目录文件夹下)/*** *Title:"三维可视化" 项目 *主题:打AB包 *Description: *功能:XXX *Date…

Unity3D资源加载Resources

Unity3D资源加载Resources 目录 1、博客介绍 2、内容 3、推送 4、结语 1、博客介绍 本篇博客对资源加载类Resources做一个介绍 2、内容 FindObjectsOfTypeAll返回一个该类型对象的列表Load从Resources文件夹内加载一个路径的资源LoadAll从Resources文件夹内加载一个路径下…

Unity3D学习 ④ Unity导入商店资源,实现基本的奔跑、攻击动作切换与交互

1.导入unity3D商店资源 ① 直接进入unity商店下载 Unity Asset Store - The Best Assets for Game Makinghttps://assetstore.unity.com/② 在3D下面的动画栏&#xff0c;点进去然后找些自己喜欢的模型就好了&#xff0c;可以通过排序“价格由低到高”筛选些免费的模型。 下面…

Unity 3D 资源下载 || Unity 3D 综合案例

Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window → Asset Store 菜单命令直接访问 Unity 资源商店&#xff08;Asset Store&#xff09;。 Unity 资源商店简介 Unity 资源商店https://www.assetstore.unity3d.com/ 中提供了多种类的游戏媒体资源&#xff08;人物模型…

Unity 3D 导入资源包 || Unity 3D 导出资源包

项目中的一些资源具有复用性&#xff0c;只需要将资源导出&#xff0c;就能够重复使用。 导出资源包 执行 Assets → Select Dependencies 菜单命令&#xff0c;选中与导出资源相关的内容。接着执行 Assets→ Export Package 菜单命令。 弹出的 Exporting Package 导出资源对话…

干货整理 Unity3D资源汇总

Unity3D是目前最流行的游戏开发工具&#xff0c;是一个可以让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具&#xff0c;是一个全面整合的专业游戏引擎。 为了让开发者能够系统全面的学习Unity3D知识&#xff0c;CSDN特…

嵌入式编程之状态机

文章目录 1、什么是状态机&#xff1f;2、状态机编程的优点(1)提高CPU使用效率(2) 逻辑完备性(3)程序结构清晰 3、状态机的三种实现方法switch—case 法表格驱动法函数指针法小节 摘要&#xff1a;不知道大家有没有这样一种感觉&#xff0c;就是感觉自己玩单片机还可以&#xf…