项目过去个把月了,一直没有写些东西总结下,这次借着年后的空隙,将当时记录下来的几个点回顾一下。
今明的布局:position技巧
每当看到类似横向并排布局的时候,总是想起定宽浮动,和下面讲到的列表并排不同,这里是指定输出的数据。并且你可以看到,在浮动的元素中,有一个元素与其他不同,我们将其他相同样式的元素称为时段导航,不同的单独称为日期导航。最初的认知告诉我要用ul标签,内嵌li标签来解决这个布局,可是在我尝试多次之后,并没有达到理想效果,日期导航和时段导航的留空和高度始终不和谐。之后,我分析了以下,之所以不适合完全用ul li 浮动来排版,是因为日期导航的样式实在是太区别于时段导航,让我们可以将它单独拎出来作为一个独立样式来实现。
我的方案是:时段导航仍用合适的ul li 来实现,而日期导航采用div标签定位{position:absolute; top:0; right:0;}来实现。这样,日期导航始终出现在目标区域的最右边,我只要关注时段导航的留白和高度,就能完全掌控日期导航的留白和高度,实现理想展示效果。

del引发的下划线:*{}去除,del{}特殊line-though
del标签在某些安卓系统的浏览器下会展示多余的底部下划线,即目标样式同时拥有删除线和下划线,看起来很不舒服。我采用的解决方案是用*去除所有下划线,然后指定目标样式为{ text-decoration:line-through;} 这样del在浏览器中的展示就统一了。
列表布局:width: Npx; 配合 overflow:hidden技巧
这个是小技巧,相信大家都知道。
我这里写出我的想法,我的认知告诉我像下面这种并列的大都是用定宽,加上浮动方案解决。这样浮动没有问题,问题就在于在控制中间留白的时候,我的思维限制于宽度中,就决定给奇偶项不同的margin值,奇数项是:margin-right;偶数项是margin-left;
这样有个弊端:必须要求后端给的数据是成双成对的,比如:6*6*4,如果其中参杂奇数:5*6*3,那么所展示的布局就会错乱。在这个项目中,这是完全不可控的,意味着随时有奇数对儿的数据出现,因此,这种奇偶对待的方案被完全否定。
 
我的一行两列方案:
 
我的留空方案:
 
列表导航随滚动条滚动,样式处理技巧
导航随高度智能漂浮是常见的UI展现方式,不过在实现的时候我踩了个大坑。实现思路很明确:当目标容器的top值小于滚动的高度时,目标容器的样式设置为{position:fixed;top:0;}
然后再赋予悬浮的样式,就能达到如下效果。
其中的坑在哪呢?简单的这么实现,你会发现,在PC浏览器上, 你拖动滚动条的时候目标容器会在临界值的边缘抖动,这很让人不爽。问题在哪里?没错,就是因为你野蛮的将目标直接从它的原始位置上拽了下来,导致整个web页面的布局发生变化,目标容器以下的元素都会自动上调位置,这就造成了难看的抖动画面。
我的解决方案是:将要转换样式的时候,保留目标容器的位置,即设置合适的宽和高。
 
总结
     
以上几点是我印象比较深刻的,虽然技术含量不高哦,但我想表达的是前端是个Magic,有很多方案可以实现设计师的效果,但要想用最舒适,最平滑的方案去实现,我们还是得花心思的,野蛮的实现可能只会带去不和谐的用户体验。
最后还是希望带给大家分享的快乐。算是起步吧。

Mobile页面项目总结的更多相关文章

  1. Sharepoint页面项目展示画廊纯前端实现,后端用list/library简单维护

    需求背景: Sharepoint页面项目展示画廊.图片+文字,要求图片与文字用Sharepoint Library维护,然后在sharepoint页面上被调用,生成项目展示画廊. 解决方案(纯前端), ...

  2. [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布

    [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局 当我们专注地研究人类生活的空虚,并考虑荣华富贵空幻无常时,或许我们正在阿谀逢迎自己懒惰的天 ...

  3. (二)Jquery Mobile介绍以及Jquery Mobile页面与对话框

    Jquery Mobile介绍以及Jquery Mobile页面与对话框  一. Adobe Dreamweaver CS6 环境 最新版本的cs6会支持JM的使用,有自动提示功能,很强大.安装说明地 ...

  4. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇--纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外 ...

  5. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇--多页面VueSSR+热更新Server) @(HTML/JS) 这是Vue多页面框架系列文章的第二篇,上一篇(纯前 ...

  6. vue自动路由-单页面项目(非build时构建)

    博客中自动路由的原理? 答:简单点说,就是在请求页面时,根据url进行动态添加路由. 与其它自动路由博客的区别? 目前网上的博客,一般都是在build的时候进行动态路由添加,而本博客,采用的是在获得u ...

  7. jQuery Mobile 页面事件

    jQuery Mobile 页面事件 在 jQuery Mobile 中与页面打交道的事件被分为四类: Page Initialization - 在页面创建前,当页面创建时,以及在页面初始化之后 P ...

  8. 用谷歌浏览器Chrome浏览jQuery Mobile页面需要配置Tomcat服务器

    在浏览jQuery Mobile 页面中,除了 Chrome浏览器出错外,其他的浏览器都ok: 这里,是因为需要单独配置 Tomcat 服务: 1.先配置java jdk: 2.下载,安装,配置,To ...

  9. 02.Jquery Mobile介绍以及Jquery Mobile页面与对话框

    一.为什么要学Jquery Mobile   JqueryMobile 是jquery的移动版本,懂基本的jquery知识,会简单的html+css就可以完成很多复杂的功能,还有就是这个框架在企业中用 ...

随机推荐

  1. 求解决!!!SystemVerilog于ModelSim在编译和执行

    我们正在学习SV流程,样品执行书.. 功能:函数返回数组. Code1: /*书上提供的样例.存在错误,不可执行 function void init(ref int f[5], int start) ...

  2. 用fildder 查看loveuv 刷流量时通信的数据

    loveuv是一个用来刷网页流量的站点,以下介绍怎么查看它刷流量时数据的传输 首先是注冊页面,邀请码UBMNEY 注冊账号登陆后,在账户资料页面http://www.loveuv.com/user/m ...

  3. 《java系统性能调优》--1.发现瓶颈

    性能啊!性能! 之所以想写写性能调优,也是有感于我们的项目,我们採用一些手段使得系统性能上升了一个台阶,总是须要把这点经验沉淀一下.随着工作的深入,关于系统性能的事肯定还有非常多,也算是通过这个系列文 ...

  4. 项目开发经常使用PHP功能

    日期操作 为了便于存储.比较和交付.我们通常使用strtotime()功能转换的日期UNIX时间戳.有仅用于在显示给用户时date()成经常使用的时间格式. strtotime()  函数将不论什么英 ...

  5. C语言练手自己编写学生成绩管理系统

    #include<stdio.h> #include<stdlib.h> /*定义学生结构体*/ struct Student { ]; ]; float Mark1; flo ...

  6. IplImage 封装释放

    IplImage是openCV库中非常重要的一个结构体,库中的图像都是保存为这个结构体后再进行操作的,详细结构例如以下: </pre><pre> typedef struct ...

  7. 解决Postman发送post数据但是Node.js中req.body接收不到数据的问题[已解决]

    之前编写后台接口,测试数据都是使用的Postman,相当的方便,之前也一直使用get方法,编写Node.js一直没有问题,但是由于要编写一个注册/登陆的功能,所以发送的post数据,后台的逻辑已经编写 ...

  8. Asterisk 未来之路3.0_0004

    原文:Asterisk 未来之路3.0_0004 Asterisk Wiki   asterisk 的Wiki是很多启迪和困惑的发源地,另外一个最重要的VOIP知识库www.voip-info.org ...

  9. Asterisk 未来之路3.0_0002

    原文:Asterisk 未来之路3.0_0002 伟大的变化需要可扩展性技术 每一个现有的PBX都因为其自身的缺点变的糟糕,不管其功能如何丰富,总有一些东西会漏掉.具备非常完全功能的PBX 也不能预见 ...

  10. 如何把va_list可变参数传送到下一级函数中(如传送到printf)

    最近我在一个LCD上想实现打印格式化字符串的功能,实现这样的功能可有两种方式: 一 最直接的就是自己去解析类似于printf功能的一个函数: 二 比较简单的方法是使用已有的sprintf功能,把格式化 ...