移动开发的小积累

由于公司的发展的需要,我被安排到移动站做前端,说起移动端的开发,对我来说追溯到我2011年的时候就有接触过,只不过那时候是做app开发,与现在的移动web开发有相当的区别。做移动开发也正合我今年的工作计划。从个方面来说,挺感谢自己的领导给我这个机会及对我的信任。

对于我们现在公司在移动web端的前后端开发都是从零开始,各方面的技术架构都不够系统全面,也正因为这样的一个公司,它能给每个做技术的人,一个自我学习提高及突破的平台。怎样去把不完善的东西健全完善起来,这就是你在这块的成长,公司业务也得到发展。

在前一个月中,为了赶在世界杯开幕前做一个与其相关的业务。公司专门成立了一个项目组加班加点的,确保在那个时间节点能把这个产品诞生出来。结果,我们按时完成了,不过也多少也些不完美。

在这个项目我个人学到了还蛮多东西的,虽然这些东西在大部分做过移动开发的同学眼中可能早于不是啥新技术啦。but对于我还是第一次开发移动web的新鸟来说,这些东西如甘泉雨露,对于做技术的能每天学到一点自己所不知晓的东西,就真的从内心的开心。下面让我讲讲我学到的一些比较肤浅的东西,大家看了觉得学到了知识的给赞,没学到的可拍砖,可扔iphone,我全收了。

我记得我做第一个移动页面的时候,发现我的做页面可以使用浏览器的默认触控手势进行页面的放大缩小,产品经理就不干了,死活不让页面有这个默认的缩放功能。没办呀,谁叫自己不是产品经理呗,自己只好google了。

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-

scalable=0" name="viewport">

结果就是在head中加上上述代码搞定。里面的一些设置属性大家英文比较好的一看就明白是啥意思,但是如果想对其更深刻的了解,大家就自行google,百度啦。

大家或多或少的知道一些浏览器会自带一个UI样式。我遇到一个比较突出的是iphone上submit按钮的默认风格,与我们设计师设计出来的不一样,这下设计师不高兴了。so为了搏妹子一笑,咱去找google先生。解决结果如下

.subtn{
   -webkit-appearance: none;
   -moz-appearance:    none;
   appearance:         none
}

原来浏览器还有appearance这个属性,这个属性还相当的强大,只不过每个浏览器的默认风格差异很大。想了解更多的可阅读《使用CSS3的appearance属性改变元素的外观》了解更 多。

下面这个情况做过移动web开发的都差不多遇到过,就是当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景。但是,大部分情况下我是不需要这个高亮。解决方案:

.nav_a{
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}

  这个关键在最后一个值0,意思是把颜色的alpha值为0。更多css3的高级属性

做网站当然就少不了使用icons。现在国外现在很流行把图标转换成web字体,国内部分网站也有用,虽然这有它的优势;但这些也有不足之处,比如图标必须是纯色之类的。我这里主要说的是用图片做icon的时候,图片变得很虚。有问题,就有解决的方法:

.m_okhqb_header .dib {
	width:35px;
	height:30px;
	background:url(http://s2.hqbcdn.com/mobile/v0/images/icons/sp_icos_2.png) no-repeat 0 2px;     background-size:50px auto;
}

上面的css重点在于sp_icos_2.png要比实际图片大一倍,再通过background-size去设置成其大小的一半,不过至于是不是一定要设置成其一半的大小,大家可以试试。

 下面介绍三个相关布局的css属性,相当实用。

box-sizing 属性

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
box-sizing有三个属性值content-box,border-box,inherit。这里我重点说下border-box。

当box-sizing的属性值为border-box时,表示通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。看下面的css代码:

.box {
	box-sizing:border-box;
	-moz-box-sizing:border-box; /* Firefox */
	-webkit-box-sizing:border-box; /* Safari */
	width:200px;
        height:100px;
	float:left;
	padding:50px 50px 0;
}

  这段css表示类为box的元素的总的宽度为200px,左右内边距为100px,而这个元素的内容宽度问100px。不知道这样大家能否理解,不理解的话可以自己亲自试试。再不懂可点《CSS3 box-sizing 属性》了解更多。可能大家会问这个到底有什么作用,它在移动站的响应式布局时,时常不知晓宽度的时候是非常有作用。

box-flex 属性

box-flex 属性规定框的子元素是否可伸缩其尺寸。(可伸缩元素能够随着框的缩小或扩大而缩写或放大。只要框中有多余的空间,可伸缩元素就会扩展来填充这些空间。)

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title> 

box-flex </title>
	<style type="text/css">
		* {margn:0; padding:0;}
		.box {
			background:blue;
			width:600px;
			height:100px;
			display:-webkit-box;
			display:-moz-box;
			display:box;
		}
		.box .p1 {
			-webkit-box-flex:1.0;
			-moz-box-flex:1.0;
			box-flex:1.0;
			background:yellow;
		}
		.box .p2 {
			-webkit-box-flex:2.0;
			-moz-box-flex:2.0;
			box-flex:2.0;
			background:green;
		}
	</style>
</head>
<body>
	<div class="box">
		<p class="p1">p1</p>
		<p class="p2">p2</p>
	</div>
</body>
</html>

  在使用这个css属性的时候,一定要在其父元素上(这里就是.box)设置display:box;当然现在浏览器还不支持这个属性,所有必须带上私有前缀(-webkit,-moz...)。这个属性现在移动端也是非常好用的,特别是布局是平分的时候。了解更多《CSS3 box-flex 属性

display:table 与 display:table-cell

第一个表示的是:此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

第二个表示的是:此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

这两个结合起来用,可以元素类是表格的布局。在移动端上这两个应该使用的频率也是蛮高。

其中的布局作用,这里就不好怎么讲解,大家可以在实际的布局中尝试,才能体会其中的妙处。

好了,也写了这么多,这也就是我在过去的一个月中,学到的其中的一部分知识点,分享给大家,希望对刚接触移动web开发的同学有一点点小帮助。移动上的技术不比pc上的容易,相反,我觉得移动端上要学的还很多。极少成多,滴水石穿,希望自己能在移动这块有自己的建树。依然欢迎大家一起交流讨论,提高他人进步同时也是自己的进步!!!

移动开发的小积累

时间: 2025-01-04 23:48:59

移动开发的小积累的相关文章

18、Cocos2dx 3.0游戏开发找小三之cocos2d-x,请问你是怎么调度的咩

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30478251 Cocos2d 的一大特色就是提供了事件驱动的游戏框架, 引擎会在合适的时候调用事件处理函数,我们只需要在函数中添加对各种游戏事件的处理, 就可以完成一个完整的游戏了. 例如,为了实现游戏的动态变化,Cocos2d 提供了两种定时器事件: 为了响应用户输入,Cocos2d 提供了触摸事件和传感器事件: 此外,Cocos2d 还提供了一系列

webstorm开发微信小程序代码提醒(webstorm开发工具)

使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: 1.首先FileType下Cascading Style Sheet 添加*.wxss 1.png 2.FileType下HTML 添加*.wxml 2.png 3.将其中的wecharCode.jar下载下来,然后在webStorm 的 File -> import settings 中导入即可 3.png 配置已经完

模型驱动开发的小尝试有所收获,一起分享

现在互联网上太多这样所谓的快速开发平台,但怎么个快速法?什么样原理?普通开发者如何使用? 都太笼统了,大多我最后也弄不明白,没那么执着.我只能来讲讲自己的这个基于模型驱动开发的小程序. 正所谓无图无真相,我敢紧截了一个图上来.下图是很常见的组织.用户.角色.权限的管理界面.这界面里一共有六张数据库表,在这里可以对六张表进行增.删.改.查.在各种操作表单中有文本框,单选,选择,树型单选.多选,列表单选,多选.这些功能你需要多少时间来实现呢?再加上测试.BUG修复增加不少工作量吧? 以上所说还仅仅是

【iOS开发每日小笔记(十)】自制带圆框的头像 利用在CALayer设置“寄宿图”

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 在上一篇文章中,我详细地回顾.复习了Core Graphics框架中利用Quartz 2D来绘制各种各样的图形,其实这些绘图就是绘制到了UIView的CALayer层上.这次,受到另一篇博文(http://

【iOS开发每日小笔记(九)】在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习. 一直想写一篇关于runloop学习有所得的文章,总是没有很好的例子.正巧自己的上线App Store的小游戏<跑酷好基友>(https://itunes.apple.com/us/app/pao-k

【iOS开发每日小笔记(五)】实测copy到底是个神马玩意

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在本文的评论

C# 开发2048小游戏

这应该是几个月前,闲的手痒,敲了一上午代码搞出来的,随之就把它丢弃了,当时让别人玩过,提过几条更改建议,但是时至今日,我也没有进行过优化和更改(本人只会作案,不会收场,嘎嘎),下面的建议要给代码爱好的童鞋完成了. 更改建议: a.当数字超过四位数时,显示的时候有部分被它的容器TextBox遮挡了,能不能把显示的数值变小点?答案是可以的.代码里有一段通过矩阵数据填充TextBox值的操作,可以在填充时,判断下数值长度,然后修改TextBox的文字大小. b.玩游戏的时候,使用方向键移动时,焦点可能

【iOS开发每日小笔记(十二)】仿Facebook登录界面 错误提示抖动 利用CAAnimation设置动画效果

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 原本以为国庆假期可以有时间看看书,写写博客.实际上大部分时间都被赶场参加婚礼和到处去亲戚家串门吃饭所占用.眼看明天还剩最后一天时间,今天赶紧来更新一篇,也算是没有完全荒废这7天长假吧! Facebook的客

【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 测试组的小伙伴们大显神威,iOS8刚发布,他们就把测试设备急速升级了,然后就是扑面而来的各种bug和他们各种幸灾乐祸的笑.没办法,老老实实修复bug! 来看看今天我遇到的一个问题: 项目中,我将一个简化的H