学了一天响应式后给站点适配了移动端

省流地址:sinan.fun (注意在移动端体验哦)

前言

在上周发帖「学两个月前端后做了个这样的网站」后,收到蛮多反馈,较多朋友们是希望能适配下移动端,于是搁置了之前的优化任务,开始了响应式的学习。

开始

还是跟之前一样,降低要求,初版适配只要内容能正常显示就行。

现在的问题是原先只考虑了pc端,移动端宽度不够,导致挤压到了一起。

不同端主要的差异在于「分辨率大小」和「侧边栏展示逻辑」...响应式适配初版的想法,便是移动端适当调整布局宽高、边距、字体大小,pad 端稍微调整主题内容宽度,整体效果可以与 pc 保持一致。

调整布局宽高、边距、字体大小比较容易,又到了头疼的设计环节,移动端的侧边栏放哪?

有的选择将侧边栏放到主体内容底部,可首页和内容页都有底部无限加载,存在冲突;多数选择是将侧边栏收缩,比如收缩至顶部 Logo 左侧,点击抽屉式展开,中规中矩,可以作为备选方案;

再继续找参考的过程中,发现手机上有悬浮球式菜单,点击后从页面中间展开,用户资料页菜单有十多个,屏幕中间应该放不下...

还有这种的,滑动屏幕侧边拖出菜单,感觉效果不错。

学习响应式

先看一下文档 responsive-design

text 复制代码
'sm': '640px',

'md': '768px',

'lg': '1024px',

'xl': '1280px',

'2xl': '1536px',

需要理解 tailwind 的 mobile first 概念。比如原先 pc 端写 max-w-6xl 现在到了移动端,明显宽度超了,结合文档中的 smmdlgxl,很可能会写出 sm:max-w-3xl max-w-6xl这样的样式,其实应该写成 max-w-3xl lg:max-w-6xl(那sm:max-w-3xl max-w-6xl 是啥呢,sm 以上分辨率的屏幕最大宽度 3xl 而小于 sm 分辨率的6xl,刚好相反)这个理解后响应式就简单了。

图纸和理论基础都有了,移动端分辨率在 sm 以下,pad 端在 md ~ lg 区间,pc 端在 xl 以上,移动端考虑侧边栏收缩至底部,点击后屏幕右侧展开(参考上面第三种)。

剩下需要考虑的是如何将侧边栏收缩至底部?

  • 重新写一套逻辑会包含:首页右侧分类筛选、内容详情页左侧点赞、收藏等,用户资料页左侧的菜单导航。分类筛选和菜单导航简单,只是页面跳转,但是内容详情页的点赞收藏会涉及一些业务逻辑,会很多冗余代码
  • 直接将侧边栏组件缩放至底部,可以复用组件业务逻辑。由于之前的侧边栏都包含有图标,缩放至底部时只保留图标,文字隐藏。

到此,侧边栏响应式逻辑上基本自洽了。

效果

  • 首页
  • 首页(暗黑模式)
  • 内容详情页
  • 内容详情页(暗黑模式)
  • 用户资料页
  • 用户资料页(暗黑模式)

一个小插曲,实现过程中,由于是将侧边栏 组件直接丢至底部,使底部菜单具备了调用任何页面组件的能力,比如,trending 页中间部分的筛选现在也可以放到底部。

欢迎掘金朋友们体验反馈:sinan.fun/

相关推荐
saber_andlibert1 小时前
TCMalloc底层实现
java·前端·网络
逍遥德1 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~1 小时前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions1 小时前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子1 小时前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘1 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
空&白2 小时前
vue暗黑模式
javascript·vue.js
梦帮科技2 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
VT.馒头3 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript