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

2024 高级前端面试题之 移动端多端开发 「精选篇」

该内容主要整理关于 移动端多端开发 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。

移动端多端开发精选篇

  • 1. 移动端适配
  • 2. 移动端300ms延迟
  • 3. 如何解决移动端 Retina 屏 1px 像素问题
  • 4. 如何解决移动端击穿(穿透)问题
  • 5. 移动端的兼容问题
  • 6. JSBridge原理是什么?如何设计一个JSBridge?


1. 移动端适配

  • 为什么要做适配

    为了适应各种移动端设备,完美呈现应有的布局
    各个移动端设备,分辨率大小不一致,网页想铺满整个屏幕,并在各种分辨下等比缩放

  • 适配方案

    • 固定高度,宽度百分比适配-布局非常均匀,适合百分比布局
    • 固定宽度,改变缩放比例适配——什么情况都可以
    • rem适配
    • 像素比适配

单位

  • em 根据元素自身的字体大小计算,元素自身 16px 1em=16px
  • rem r -> root 根节点( html ) 根据html的字体大小计算其他元素尺寸

百分比适配

固定高度,宽度百分比适配

  • 根据设置的大小去设置高度,单位可以用 px 百分比 auto
  • 常用 Flex 布局
  • 百分比宽度

rem适配(常用)

  • 根据屏幕的分辨率动态设置html的文字大小,达到等比缩放的功能
  • 保证html最终算出来的字体大小,不能小于12px
  • 在不同的移动端显示不同的元素比例效果
  • 如果htmlfont-size:20px的时候,那么此时的1rem = 20px
  • 把设计图的宽度分成多少分之一,根据实际情况
  • rem做盒子的宽度,viewport 缩放

像素比适配

  • window.devicePixelRatio
  • 物理像素是手机屏幕分辨率
  • 独立像素 指css像素 屏幕宽度
  • 像素比 = 物理像素 / css宽度
  • 获取设备的像素比 window.devicePixelRatio

2. 移动端300ms延迟

3. 如何解决移动端 Retina 屏 1px 像素问题

4. 如何解决移动端击穿(穿透)问题

5. 移动端的兼容问题

6. JSBridge原理是什么?如何设计一个JSBridge?

  • 6.1 JSBridge原理
  • 6.2 JsBridge的核心
  • 6.3 为什么是‘JS’Bridge
  • 6.4 应用场景
  • 6.5 JSBridge实现 —— Native端调用Web端代码
  • 6.6 JSBridge实现 —— Web端调用Native端代码(拦截URL Schema)
  • 6.7 JSBridge实现 —— Web端调用Native端代码(注入api)

相关文章:

  • transformer_正余弦位置编码代码笔记
  • 服务器为什么老是被攻击?被攻击了怎么办?
  • 十一、常用API——练习
  • 《HTML 简易速速上手小册》第8章:HTML 表单高级技术(2024 最新版)
  • 【云上建站】快速在云上构建个人网站3——网站选型和搭建
  • 用ASM HEMT模型提取GaN器件的参数
  • VUE!!!必看
  • ElementUI Form:Input 输入框
  • 消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ
  • 本地socket通信
  • linux ping 某台服务的端口
  • C#中的WebApi响应Accept头,自动返回xml或者json
  • SpringBoot中异步方法的使用
  • 【Vue】vue项目中使用tinymce富文本组件(@tinymce/tinymce-vue)
  • KAFKA鉴权设计以及相关探讨
  • bearychat的java client
  • CentOS6 编译安装 redis-3.2.3
  • extjs4学习之配置
  • Javascript基础之Array数组API
  • Java方法详解
  • js
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Mocha测试初探
  • TCP拥塞控制
  • Wamp集成环境 添加PHP的新版本
  • 阿里云前端周刊 - 第 26 期
  • 前端之React实战:创建跨平台的项目架构
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 写给高年级小学生看的《Bash 指南》
  • 用quicker-worker.js轻松跑一个大数据遍历
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 怎样选择前端框架
  • Java总结 - String - 这篇请使劲喷我
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #14vue3生成表单并跳转到外部地址的方式
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • %@ page import=%的用法
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (算法)前K大的和
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)平衡树
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET Framework .NET Core与 .NET 的区别
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • /*在DataTable中更新、删除数据*/
  • @angular/cli项目构建--Dynamic.Form
  • @Query中countQuery的介绍
  • @Transactional类内部访问失效原因详解