移动端有哪些常见的布局方式?

本文深入探讨移动端网页设计中常见的布局方式,包括固定布局、流体布局、FLEX布局及栅格布局,分析其优缺点及应用场景,帮助前端开发者掌握响应式设计的核心技巧。

这里是修真院前端小课堂,每篇分享文从

【移动端有哪些常见的布局方式? 】

大家好,我是IT修真院北京分院25期的学员,一枚正直纯洁善良的web前端程序员

今天给大家分享一下,修真院官网css任务13,深度思考中的知识点——移动端有哪些常见的布局方式?

1.背景介绍

随着智能手机的普及以及社会的发展,传统的网站布局已经无法适应现状,我们编写的网页不仅仅要展示在电脑上,也要展示在移动设备上,而移动设备种类繁多,一般的电脑端的页面布局在手机上无法完全适应,所以在手机端上我们要重新布局。

2.知识剖析

2.1固定布局

固定布局是第一次做移动端时最好的选择方式,思路沿用PC端,上手比较快。在标签里把 viewport 加好,然后设想整个网页的宽度为 320px 即可。 其他地方根据 PC 端来布局。 缺点:大屏手机显示网页比较宽,固定布局宽度参照永远是 320px,导致左右两 边会有空白。

demo

2.2流体布局

流布局与固定宽度布局基本不同点就在于对网站尺寸的测量单位不同。固定宽度布局使用的是像素,但是流布局使用的是百分比,看到百分比,你应该想到,这将提供了很强的可塑性和流动性。换句话说,通过设置了百分比,你将不需要考虑设备尺寸或者屏幕宽度大小了,结论就是,你可以为每种情形找到一种可行的方案,因为你的设计尺寸将适应所有的设备尺寸。

demo

2.3FLEX布局

flex也称为弹性布局,他会根据页面的剩余宽度自动分配空间。

2.4栅格布局

bootstrap是一个比较流行的响应式前端框架,利用bootstrap的栅格系统可以实现响应式的移动端布局。

3.常见问题

移动端和PC端的区别

4.解决方案

第一: PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化。

第二: 在部分事件的处理上,移动端多出来的事件是触屏事件,而缺少的是hover事件。 另外包括移动端弹出的手机键盘的处理,这样的问题在PC端都是遇不到的

第三:在移动端有很多网页是可以横屏看也可以竖屏看,并且很多屏幕的饿分辨率都是不一样的,所以只要牵涉到移动端都要考虑用响应式布局

第四: 在动画处理上,PC端由于要考虑IE的兼容性,所以通常使用JS做动画的通用性会更好一些,但是CSS3做了很大的牺牲, 而在手机端,如果要做一些动画、特效等,第一选择是CSS3, 既简单、效率又高。

第五:Pc端的交互是鼠标,键盘的交互而移动端变成了触摸,手势的交互

5.编码实战

6.扩展思考

手机端软件界面设计中的几种常用布局样式

网址

7.参考文献

参考一:前端:移动端和PC端的区别

参考二:移动端布局浅谈

8.更多讨论

你们觉得响应式好呢,还是手机和PC端分开来写?

网址

9.鸣谢

感谢大家观看

BY :王姝丽

### 3.1 移动端输入法引擎的核心开发方法 在移动端开发高效的输入法引擎,需要兼顾性能优化、交互体验提升以及多平台兼容性。由于移动设备的计算资源有限,因此对代码执行效率和内存占用有较高要求。常见的开发方法包括: - **模块化架构设计**:将输入法引擎划分为前端UI、语言模型处理、词库管理等多个独立模块,便于维护和扩展[^1]。 - **本地与云端协同处理**:部分复杂计算(如基于大模型的候选词生成)可借助云端完成,而本地负责基础输入响应,以实现低延迟和高准确率的平衡。 - **异步加载与缓存机制**:通过预加载常用词库和异步查询候选词的方式,减少用户等待时间,提高输入流畅度。 ### 3.2 移动端输入法的技术栈选择 针对不同平台,开发者可以选择不同的技术栈来构建输入法应用。以下是主流移动端输入法常用的技术方案: | 模块 | Android 平台技术栈 | iOS 平台技术栈 | |------------------|----------------------------------------|----------------------------------------| | 前端界面 | Java/Kotlin + XML 或 Jetpack Compose | Swift/UIKit/SwiftUI | | 后端逻辑处理 | C++/Rust(用于核心引擎) | Objective-C/C++(用于高性能组件) | | 跨平台支持 | Flutter/Dart 或 React Native | Flutter/Dart 或 React Native | | 语言模型 | TensorFlow Lite / ONNX Runtime | Core ML / TensorFlow Lite | | 数据存储 | SQLite / Room Persistence Library | CoreData / SQLite | Flutter作为一种跨平台开发框架,可以显著降低多端开发成本,并提供接近原生的渲染性能。其基于Skia绘图引擎直接绘制UI组件,避免了依赖系统控件带来的兼容性问题,在输入法这类高度定制化的UI场景中具有优势[^2]。 ### 3.3 示例代码:使用Flutter构建输入法UI布局 以下是一个使用Flutter实现的简化版拼音输入法候选栏布局示例: ```dart import 'package:flutter/material.dart'; void main() { runApp(CandidateBarApp()); } class CandidateBarApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('候选词展示')), body: CandidateBar(), ), ); } } class CandidateBar extends StatelessWidget { final List<String> candidates = ['你好', '您好', '你们', '你们好', '你']; @override Widget build(BuildContext context) { return Container( height: 50, color: Colors.grey[200], child: ListView.builder( scrollDirection: Axis.horizontal, itemCount: candidates.length, itemBuilder: (context, index) { return GestureDetector( onTap: () { // 处理候选词点击事件 print("选中词:${candidates[index]}"); }, child: Container( padding: EdgeInsets.symmetric(horizontal: 16), margin: EdgeInsets.symmetric(vertical: 8), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), ), alignment: Alignment.center, child: Text(candidates[index], style: TextStyle(fontSize: 16)), ), ); }, ), ); } } ``` 该示例展示了如何在Flutter中构建一个横向滚动的候选词条目列表,模拟实际输入法中点击候选词上屏的功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值