暑期Scratch编程课 | 通过创造自己的游戏实现思维训练

 

11节录播课齐上线,完成孩子的编程入门

Scratch,麻省理工学院的儿童编程工具

随时答疑,知识就该急不可耐

▲适合小学2年级以上孩子

编程课宣传片

【欢迎来到电脑世界 】

为什么每个孩子都应从小学编程

文 | 王木头

编程课导师,博雅小学堂著名科普节目主播

说到编程,大多数的人都会想到坐在电脑前敲着键盘的极客形象。可是少儿编程到底是什么东西?为什么要从Scratch软件入手?恐怕家长们都还不是很清楚。

少儿编程和成人编程是不太一样的,在少儿编程中根本不需要学习写代码。因为借助麻省理工学院(MIT) 设计开发的少儿编程工具Scratch,就可以降低门槛,解决很多少儿编程的问题。

Scratch的操作界面非常简单

少儿编程目的在于思维训练

少儿编程的目的,不是编程知识和技巧,而这个过程中对思维的训练。

孩子们的天性就喜欢创造,愿意把自己幻想的东西实现出来。有的孩子可能是愿意用画画的方式实现,有的孩子可能喜欢用泥巴或是积木搭建出来,有的孩子可能干脆就是写文章写诗来表达。

少儿编程也是这样的,甚至是比其他更好的实现方式。大家可以看一下下面这个视频,或许就能理解了。

往期编程课学生作品

这个作品是这位小朋友从头到尾独立完成。我们能看到,他俨然就是一个小编剧+小导演了。剧本肯定是他自己读过相关的故事后写出来的,换成自己的话,然后形成旁白+对话的形式。其中两个角色位置的安排,形象的绘制,还有镜头的运用也是像模像样。

在这位小朋友的创作过程中,编程只是像画笔一样的工具,获得最大的收获是他的创意、画面感、和语言组织能力的训练。

 

编程还有一个特点,那就是计算机只接受正确的指令。这就代表着,孩子们所有的幻想和天马行空必须落实到程序和代码上。

而编程不同于画画和写作,不符合语法和规范的都不会被接受,会立即得到反馈。创造力不是凭空的想象,能被实现出来的幻想才是。而且编程天然所具有的逻辑和抽象属性,想要实现自己的想法,必须准守必要的逻辑规则,这就会在潜移默化中就锻炼了孩子的逻辑思维能力

大家可以想一下,像上面那位小朋友,当可以熟练用编程工具实现自己想法的时候,再去写作文会发生什么。

别人在心中打腹稿,默想自己要写的话,最多也就是在脑子中把想法先画出来,然后再去用文字描述出来。而他呢?腹稿就是心中已经做好的程序。而且在脑子中构建程序的过程,就是运用抽象思维和逻辑思维,把大场景拆成了小场景,把大问题拆成了小问题的过程。

少儿编程,编程只是一个工具,学习到的编程的知识和技能未来可能永远也不会用到。不过在编程的帮助下,孩子们把自己天马行空的想法在符合逻辑的框架下整理出来、实现出来,这样的过程才是无比的珍贵。 

为什么推荐Scratch

讲到这里就要说一下,为什么不是所有的编程都适合给孩子学,为什么会推荐Scratch。这是因为Scratch是越过了编程思维中的有关算法的训练,直接训练孩子建模能力

Scratch猫,Scratch软件的吉祥物

如果有家长了解过编程的话应该知道,学习编程的时候一般都是先学数字的使用,例如比个大小,在数组里排序之类的。这其实都是算法问题。

可是在由麻省理工学院(MIT) 设计开发的儿童编程工具Scratch中就不会,设计它的目的就是为了让孩子们可以摆脱这些繁琐的技术细节,直接将自己的想法进行建模并实现,而这些复杂的技术细节只需要一条语句就可以做到。

尽管简化的代价是无法像正式的编程语言一样普遍适用,但却非常适合孩子们用来设计游戏、MV、动画和交互程序,这就已经足够了。

而Scratch,很多文学气质或是画画好的女孩子也会很感兴趣,因为不需要太多的编程技术,就可以做出自己的动画绘本。

总之,在精力有限的情况下,推荐Scratch。如果是在这方面特真的别有天赋,或者是兴趣极大,也推荐去尝试其他课程。

主讲人

王木头

北京大学软件工程硕士

博雅小学堂少儿科普节目

《王木头讲万物简史》主播

博雅小学堂

scratch编程课(入门级)

【开课日期】

2017年7月16日

【年龄要求

小学2年级(包括)以上

【需要设备

电脑(Window或者苹果电脑),话筒和音箱(耳机)

【课程形式

11集录播视频 (每集10分钟左右,支持反复回看)

微信群答疑 (开课前1周建群)

在线社区沟通(上传作业更方便)

【课程目标

可以独立制作动画片

【课程价格

199元

 

(进阶课程8月份上线,课程目标是完成课程后可以进行游戏设计,需另外购买)

 

课程目录

暑假的Scratch编程课课程设计,不再是以知识逻辑来组织内容,而是以探索和创造属于自己的电脑世界的方式。精心制作的11集录播课程,可以带领孩子在兴趣和幻想的驱动下,不自觉地学习和掌握编程——

第1集

小强出场

电脑世界的小强出场,我们控制小强进行移动。并且知道如何转换场景,为实现电脑世界里的小镇做准备。

第2集

美丽的小镇

给小强设计一个小镇,其中包括卧室、街道、码头、城堡……,小强还会带我们到处参观。我们以后的故事都是在这个小镇上发生的。

第3集

走到画面的深处

电脑世界是平面的,如何实现在在里面走向屏幕远方呢?很简单,只需要用一边移动一边缩小就可以实现。编程实现透视效果。

第4集

海底捕鱼

小强带我们转了一天饿了。我们打车来到了码头,小强带上了氧气罩在水中捕鱼。这次主要学习如何修改造型,如何连续移动。

第5集

小镇热闹起来了

为小镇增加了更多的新角色,小强和他们去打招呼。掌握了如何新建角色,以及互相之间的互动。

第6集

妈妈让小强去上音乐课

小强躺在床上幻想着,结果门外传来了妈妈的话,让小强去练习钢琴。向前只能去钢琴房学习弹钢琴了。用编程演奏声音。

第7集

一场飞翔的梦

练习钢琴回来,疲惫的小强睡着了。睡觉做梦还是练钢琴,突然,出现了一个女巫给小强施加了魔法。小强可以飞了,还飞上了星空作画,画出来了漂亮的星座。

第8集

寻找老师

梦中醒来之后,小强喜欢上了飞翔的感觉。于是去学习找老师询问如何可以飞翔。在老师的帮助下,小强掌握了XY坐标。但是要想学会飞翔,还需要寻找更有知识的博学猫。

第9集

左右互搏

在博学猫的帮助下,小强开始练习左右互搏,可以同时有多条代码同时运行。小强开始左手画圆右手画方。

第10集

左右互搏显威力

小强学会了左右互搏之后,博士猫告诉小强很多实用的方法。左右开弓,双手弹钢琴。

第11集

信心十足初试飞翔

小强感觉左右互搏这么强大的能力都掌握了,就想去尝试飞翔。失败之后沮丧的去睡觉,第二天起来打算轻松一下,去开party。最后,仍鼓起干劲,打算坚持到底学会飞翔。

点击原文,立即报名

【TC 上海现场报道】朋友印象粟浩洋:如何不被腾讯杀死,做创业者中的哲学家?

 

粟浩洋是一个连续创业者,毕业以后连续做了四五家公司,其中昂立教育更是于 2014 年成功登陆了 A 股市场。2015 年其选择再次出发,创办了一款社交 APP——朋友印象,主打记录自己的人生故事、朋友互评等,你可以实名或匿名在朋友个人主页发表对其的印象和评价。

 

在如今微信 QQ 几乎统治了全部社交圈的情况下,朋友印象却表现出了惊人的生命力,其上线初期依靠分享到朋友圈的 H5 应用,仅仅花了不到 2 万元就获得了超过 10 万的下载量, 微信对其封杀了 6 次无果,并最终选择参入了对朋友印象的 3300 万人民币 pre-a 轮——该融资也被称为人类史上最大种子轮。

 

Tech Crunch2016 上海峰会上,主办方动点科技便找来了这个颇具传奇色彩的创业者,动点科技创始人卢刚博士与其进行了一个长达 30 分钟的访谈,粟浩洋期间也分享了其凭什么能够获得如此好的成绩,可谓是干货满满:

 

  • 要能够看清自己是如何成功的,又能看明白这个过程中会遇见什么样的障碍和问题,并提前做好准备。单靠激情、热情其实是打动不了投资人的。
  • 融资时要在提前进行好融资,不要到了最后关头才着急地拉融资
  • 在线教育只是简单地将线下教育搬到线上,并不是一个好的商业模式
  • 社交创业并不是没有机会了,但是确实死亡率比较高,比其他的任何行业来说,社交只适合偏执狂的创业者。

 

 

卢刚: 第一个问题是,我们先看您的上一次创业,从昂立创业到上市,作为创始人,我不知道您在这段历程中是一个怎么样的感受。

 

粟浩洋: 我觉得上一次的过程其实蛮艰辛的,虽然后来我们做出了一个独角兽级的公司。其实在 2006 年的时候,可能跟在座的很多创业者一样找风投找了一年半,连续 37 家风险投资全把我给拒绝了。那时候员工流失 40%,高管半薪。

 

一路走过来很多人问我成功原因是什么,对于创业者来说更重要的是做到两个点:

 

第一个点叫做遇见。就是说, 你能够看清你自己是如何成功的,又能看明白这个过程中会遇见什么样的障碍和问题。   那个时候你可以放大所有的成功,压缩或者预防所有的问题。比如说我们当时连续拿了融资,融完上一轮就开始下一轮融资,所以跟风投谈的时候很轻松。因为我们账上的钱还可以够用很长一段时间,所以我们不着急。

 

当然更重要的不是对于资金的遇见和风险的遇见,最重要的是对你的产品,是对这个行业有足够全和深入的了解。 能够看到你的产品能够快速的进入市场。做产品的时候可以遇见到产品的模型和未来,所以遇见能力对创业者来说非常重要。

 

卢刚: 刚开始说融资不好融,什么阶段开始发现海阔天空,融资来找你,而不是你找他们。

 

粟浩洋 :当你的产品由于遇见能力真正的能够打动消费者,市场上不断通过口碑去突破,更多的消费者选择了你。我们在朋友印象里连续塑造爆款,为什么我们能连续塑造?我觉得我们抓住了用户的心理基点。

 

卢刚 :现在教育变化也很大,现在大家都在说在线教育了,你觉得现在的教育市场怎么样?还是有很多机会吗?

 

粟浩洋 :现在的网络教育公司,不管你拿到多少融资,几千万美金还是几亿美金 99%都会死。为什么他们都会死呢?他们做了一个非常简单而又愚蠢的商业模式。

 

有一些企业把线下的课搬到了线上。但是这样的教育效果会打折,因为现场的吸引力与接受度是不一样的。大家为什么不是回家看直播或者视频而是听我们啰哩啰嗦的讲?就是说那个气场是不同的。录的课程的效果反而会降低。YY 说 10 个亿要干死新东方,现在呢?没有声音了。

 

世界是被颠覆性的技术力量所改变的,不是说简单的照搬。   卢刚: 简单介绍一下朋友印象,朋友印象到底跟微信圈好在什么地方?或者最大的特色,或者微信圈不好在什么地方?

 

粟浩洋 :我们跟朋友圈还是有巨大差别的,我们其实是被称之为叫“开放的朋友圈”。还有人叫做“朋友圈的 4.0”,因为我们解决了朋友圈很多的痛点,我们把自己称作灵魂的社交软件。

 

先从熟人来讲,可以通过朋友印象更加深度的了解对方。

 

对于陌生人来说,可以通过朋友印象匹配性格爱好相似的交友对象。不像陌陌,只是看脸,不知道在聊什么,聊完之后不想深度交往。

 

卢刚: 实际上你们的应用被腾讯封了好几次,但最后腾讯已经成为投资人了。您认为腾讯投你的价值在哪儿?

 

粟浩洋: 腾讯的封杀是屏蔽任何增长速度快的东西,但是我们当时被他所投资,也是他看到我们在他几次屏蔽的情况下还能蔓延。病毒一般被人拍死以后很难再起来的,但是我们一个月拍死 6 次然后又重新烧起来,野火烧不尽。

 

腾讯觉得我们真正是抓到了用户,朋友圈用户的心理感染。我自己是一个心理学的爱好者,我大一的时候是交大心理学的主编,当时只有博士才能做主编,我是唯一一个大一的,而且本科生投稿都投不上去。我比较喜欢研究心理学的,营销是一个心理学的事情,我也喜欢禅修,宗教也是完全高于心理学的事情。所以这几件事情都是紧密相连的。

 

卢刚: 你不会担心他们(腾讯)做跟朋友印象差不多的东西吗?

 

粟浩洋 :我们其实是有担心的,只是腾讯最终选择投资了我们。

 

另外,腾讯也不是说每样事情能够成功的。当然最后要买下来的,那就是谈价钱,1 百亿美金,两百亿美金。   卢刚: 您怎么能够说服投资人?能够很快投你,而且还给你很高的估值,有什么窍门吗?   粟浩洋: 这是一针见血的问题,这是个大问题,不是一句话、两句话能够讲清楚的。我曾花了 3 个小时做了个演讲,专门讲这个事情,主题叫做你要做创业者中的哲学家。

 

什么叫做创业者中的哲学家呢?就是你要对你身处的这个行业做深刻的思考,你要像上帝一样把自己放到那个角度,然后把整个行业的所有的竞争对手,就像我们做社交的时候,我们把全球的 170 多个社交软件一个一个做了分析,然后把他们用户的心理,用户为什么喜欢他们,为什么不喜欢他们,为什么会火爆、爆发,为什么爆发以后流失。经过这样大量的分析和深度的思考了以后,我们才形成了比较清晰的对我们产品的认识。

 

这个时候再拿这个产品去征服世界的时候你会发现,消费者也会非常容易的被打动,见到风投的时候,风投也会觉得这个产品是耳目一新的。当风险投资人问你问题的时候,会发现你对任何他提出的问题,都有着非常深刻的思考了。你想这样的一个项目,风险投资人怎么会不喜欢呢?   所以你靠你的激情、热情其实是打动不了投资人的,你一定要靠你的深刻思考去打动他们。   卢刚: 你上个公司已经上市了,经济独立,很多事可以做,包括禅修。现在为什么又开始创业?是什么驱动你做这个事儿?为什么不像其他人那样做个投资人?   粟浩洋: 我在朋友圈里写感觉自己可以去死了,这个死不是非常晦暗的去想,也不是对世界绝望。当你能 100%遇见到你未来的时候会觉得没有感觉了, 那个时候发现我自己买了一个三四百万的车,远远没有十几年前买了 30 万的车开心。对人生点燃不了激情了,所以我觉得人生想要真的是不断的有所信奉感,每天起来觉得很开心、很激情澎湃的话对我来说就是创业。

 

因为我觉得对投资来说是很痛苦的自虐过程,每个项目的成和死掌握不在你的手里,所以我更喜欢做创业者,这个项目的成功和失败能够被我掌控,甚至可以力挽狂澜扭转失败。这种感觉是不一样的,像朋友印象,可以做到数亿美金的规模的。所以我觉得再次出发重新去着迷,我给自己定义的四个字重新着迷。   卢刚: 实际上大家选择创业的方向很多,特别是刚刚创业的人,我们都跟他说不要选社交了,社交已经基本上没有机会了。你认为呢?   粟浩洋 :微博没有死,它的数据还在增长,除了微博之外知乎也出来了,很多社交其实都在增长的。而百度贴吧基本上也在增长的,QQ 空间没有下降也在增长,所以我觉得现在其实社交在过去 5 年和未来 5 年,会经历一个大爆发的时代,我称之为叫做社交升级。就像过去我们认为有了淘宝,最后再有京东就不再有电商了,现在我们发现通过消费升级我们有了各种各样的小红书、唯品会等。

 

社交也是,未来会有几百种的社交软件来满足人的社交需求。 大家可以进入这个行业,但是确实死亡率比较高,比其他的任何行业来说。所以社交只适合偏执狂的创业者。   卢刚: 不知道你下一个目标是什么?   粟浩洋: 我觉得我的短期目标就是让朋友印象做成人类真正的大技术。使用户量再上一个台阶。

 

但是我个人的长远目标是去耶鲁大学教心理学,我希望会出一些成就。

知识恐慌症下的学习方法

 

我自己个人的成长经历比较特殊,在 18 岁前看过的所有书籍,不论是课内、还是课外书,不超过 10 本。

此外,我在高中时,为了还清在地下钱庄欠下的债务还休学了一年。当我复学后,开始意识到要努力变强时,我一直想 “后发先至” 追上我当初虚掷的光阴。坦白说,我也被知识恐慌症困扰了许多年。

而这 25 年来,我对知识恐慌有了新的解法。

学海无涯!一个人即使不吃不喝不休息 24 小时不间断,终其一生也读不完所有资讯!

在这边给大家看几个数字:

1. 纽约时报一天的讯息量 = 17 世纪一个人一辈子竹讯息量总和。

2. 网上的讯息量一天至少 1000 万个中文字,最高一天目前的流量是 200 亿个汉字讯息量。这还不包含外国人的英文字讯息量。

3. 现在每两天产生的数据 = 人类会写字以来至 2003 年的总累积数据量。

4. Youtube 每天上传的影片,要花你 15 年才看得完。

5. 全世界每天有 2500 亿封以上的 email,其中 80% 是垃圾信件。

6. 跟你说完这些资料也没有什么意义!

因为说完后,每一秒的数据又增加了,这些东西,同时也又变成历史事件了。

结论就是:现在的新科技与互联网一直不断进化,数据量只会愈来愈多,即便是一目十行过目不忘的人终其一身也学不完。

所以,知识恐慌症的你我,第一个核心问题就应该改成:“你是谁?你想成为什么样的人?”

如果你想成为世界级的牛人,那你就需要持续大量且全面的阅读与学习,享受在知识恐慌症下的高速成长。

这是你的人生使命,高度愈高,面临的压力自然愈大。这次天命,无人可以取代你的梦想,所以

Enjoy what you like and don’t complain.

如果想要拥有不错的工作收入,然后过好你自己的人生,那就应该着力在如何建构自己不可取代的竞争力,投资自己,找到 3~5 个核心技能,不断深耕即可,滴水穿石,这样你的竞争力就会显现。

不要抱持怀胎一个月就能生出孩子这件事。过度取巧取速,有时欲速则不达。

MJ 的一生对创业充满萝想,我自己也下海搞了几次,有的失败有的成功,过程中都甘之如饴,为了能让创业的概率成功一点,我对任何商业的知识(产销人发财)、领导、沟通、商模、亲子教育、古迹学与历史或艺术天天都会杂读一点,因为没准那天就会用上了。

所以天天读上一小时的书,什么书都看,百无禁忌乐此不疲。现在的我,比较少出现知识恐慌症的问题,因为我知道自己要去的方向。

所以,先搞清楚 “你是谁? 你想成为什么样的人?” 。

有了方向,再决定要如何朝这个向前进与学习,就像汪洋大海只取一瓢饮,学海无涯,你不可能什么都要。

有了 Trade-off 取舍的观念,你的知识恐慌症状可能可以减轻不少。

如果说到这里,你的症状还是未减,那我来分享我的学习方法,请注意,这些仅仅是我的个人经验,提供给各位参考。

一次读 100 本书

首先,我会同时一次读 100 本书。

是这样的,我曾经在 30 多个国家与世界不同的高手谈生意,意外发现,不同国家厉害的人,都有一个共通点:连结能力特别强!

也就是风马牛不相关的东西,同时出现在他们大脑里时,可以变出一个成功的商业机会与模式。

几年后我又多读了点书才了解,原来是因为大脑天生的构造使然,人脑有 860 亿个神经元,神经元大约有四种功能区,包含接收区、触发区、传导区,和输出区,因为我刻意同时阅读 100 本完全不同的领域的知识,不同的知识型态(财务、历史、运动、领导、亲子教育等等等)会牵动不同类型的神经元。

原本这些神经元都是分开作用的,但我可能同一天看了 10 本不同的书籍各 5 页,第二天又同时看了另外 15 本 不同书籍各 8 页,一直持续下去…… 然后可能在第 10 天突然间这 100 本书的内容,就在我脑海中自己对话起来了。

这感觉有点像 100 个不同作者一起交流对话,然后神经元就被触发并连接到其他的神经元一样,所以我的鬼点子几乎天天源源不绝。

这种一次读 100 本不同类型书籍的好处是:让你能够快速在不同领域穿越与跨界,这刚好是这个时代最需要的能力之一。

但有一个小小的坏处,那就是我的家与办公室到处都随手放了很多书本。

精读

第二个方法是,每一本书无论主题,都采用精读。

为什么呢?其实我也学过速读,后来发现这个方法不适用我。因为 10 多年国际销售主管的经历,我面对的都是当地牛逼的高手,而高手和高手之间的差异就在细节!

以前的我喜欢速读,但只能留下大约的印象,当我需要与海外各国高手交流时,才发现这些速读留下的印象,只能让我浅谈一些表面的题目,当需要我加大力度表达我的洞见 insight 时,却说不出什么好论点,然后就 “掉漆” 了,令人感觉特别不靠谱。

几次挫折后,我要求自己采用精读方式。后来自己的职场表现就愈来愈好,因为针对每个不同的议题,我都能提上几个别人没有的洞见,而这些洞见还帮公司赚了好几亿的净利。

加上后来我自己也出书了之后,才发现一个作者要出一本书,至少要花一个月到数个月不等的时间,身为读者的我们,只用 1 小时速读,除了少数的神人之外,多数人都只是学到皮毛中的皮毛,这样实在太可惜了。

相同主题的书

此外,在研究某个特定主题时,我会买下至少十本相同主题的书一起阅读。

因为这样我就能在最短时间,看到十个以上不同专家的意见,就像请了 10 个高手级随身家教指导我一样,让我能快速产生自己的洞见。

写一本书

世界知名的英国宇宙科学家霍金 Stephen Hawking 曾说过:

最好的学习就是自己写一本书。

因为为了支持你的论点,你会到处找资料,研读资料,最后形成自己的洞见,只有在你产生自己的洞见后,才算真正学习到一项技能。

我非常同意这个观点,同时,我也写下了两本书实践了这个方法。

总结

过去 300 年人类历史上的重大科技突破里程分别是:

  • 1776年的蒸气机

  • 1837年的电报

  • 1927年的电话

  • 1971年的email

  • 1993年的internet

  • 2007年的移动互联网

如果用比较长的时间轴来看这些科技的发展,你会发现过去的科技发展的模式一开始是 “机械过程” ,是具有可预测性的;接着变成 “有机过程” 的不具有可预测性,因为在有机过程中会长成什么样子没有人知道;现在则变成 “混沌过程” ,不但长成什么样子没有人知道,而且会长多大也没有人可以完全猜得准。

就是因为现在的世界发展没有专家猜得准,所以最好的方式就是持续精进,保持弹性,多学一点不同的东西,然后 “逐梦踏实” 、一步一脚印,就像堆积木一样,一块块堆出自己的核心能力。

重点是最重要的那四个梁柱(四个核心能力),一定要很紥实,不能全部采用速读速学法,最核心的东西采用速成法,就会好像用海沙建构自己的核心梁柱。

人生还很长,你为自己建造了一个富丽堂煌的海沙屋,这样就危险了。

  🔥超级数字力6月课程即将满额!点击阅读原文了解详情🔥

浅谈Web自适应

 

转自:http://www.cnblogs.com/constantince/p/5708930.html

前言

随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样。这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出。记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计图,结果可想而知。本篇博文分享一些卤煮处理多屏幕自适应的经验,希望有益于诸君。

特别说明:在开始这一切之前,请开发移动界面的工程师们在头部加上下面这条meta:

1
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  简单事情简单做-宽度自适应

所谓宽度自适应严格来说是一种PC端的自适应布局方式在移动端的延伸。在处理PC端的前端界面时候需要用到全屏布局时采用的就是此种布局方式。它的实现方式也比较简单,将外层容器元素按照百分比铺满地方式,里面的子元素固定或者左右浮动。

1
2
3
4
5
6
7
8
9
.div {
 width:100%; height:100px;
}
.child {
 float: left;
}
.child {
 float:right;
}
由于父级元素采用百分比的布局方式,随着屏幕的拉伸,它的宽度会无限的拉伸。而子元素由于采用了浮动,那么它们的位置也会固定在两端。该宽度自适应在新的时代有了新的方法,随着弹性布局的普及,它经常被flex或者box这样的伸缩性布局方式替代,变得越来越“弹性”十足。需要了解弹性布局,请前往Flex布局教程和卤煮box布局教程比较。

大小之辨-完全自适应

“完全自适应式”是卤煮对越此方案的叫法,由于卤煮现在找不到官方名称,所以暂时就这样叫它。这种解决方案相对前一种来说进步不少,不仅仅宽度实现了自适应,而且界面所有的元素大小和高度都会根据不同分辨率和屏幕宽度的设备来调整元素、字体、图片、高度等属性的值。简单来说就是在不同的屏幕下,你看到的字体和元素高宽度的大小是不一样的。在这里,有人就会说利用的是媒体查询属性,根据不同的屏幕宽度,调整样式。卤煮之前也是这样想的,但是你需要考虑到界面上的许多元素需要设置字体,如果用media query为每个元素在不同的设备下都设置不同的属性的话,那么有多少种屏幕我们的css就会增加多少倍。实际上在这里,我们采用的是js和css属性rem来解决这个问题的。

REM属性指的是相对于根元素设置某个元素的字体大小。它同时也可以用作为设置高度等一系列可以用px来标注的单位。

1
2
3
4
5
6
7
8
9
html {
font-size: 10px;
}
div {
font-size: 1rem;
height: 2rem;
width: 3rem;
border: .1rem solid #000;
}
采用以上写法,div继承到了html节点的font-size,为本身定义了一系列样式属性,此时1em计算为10px,即根节点的font-size值。所以,这时div的高度就是20px,宽度是30px,边框是1px,字体大小则是10px;一旦有了这样的方法,我们自然可以根据不同的屏幕宽度设置不同的根节点字体大小。假设我们现在设计的标准是iphone5s,iphone5系列的屏幕分辨率是640。为了统一规范,我们将iphone5 分辨率下的根元素font-size设置为100px;
1
2
3
4
<!--iphone5-->
html {
font-size: 100px;
}

那么以此为基准,可以计算出一个比例值6.4。我们可以得知其他手机分辨率的设备下根元素字体大小:

1
2
3
4
5
6
7
8
/*
数据计算公式 640/100 = device-width / x  可以设置其他设备根元素字体大小
ihone5: 640  : 100
iphone6: 750 : 117
iphone6s: 1240 : 194
*/

var deviceWidth = window.documentElement.clientWidth;
document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';

在head中,我们将以上代码加入,动态地改变根节点的font-size值,得到如下结果:接下来我们可以根据根元素的字体大小用rem设置各种属性的相对值。当然,如果是移动设备,屏幕会有一个上下限制,我们可以控制分辨率在某个范围内,超过了该范围,我们就不再增加根元素的字体大小了:

1
2
var deviceWidth = document.documentElement.clientWidth > 1300 ? 1300 : document.documentElement.clientWidth;
document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';

一般的情况下,你是不需要考虑屏幕动态地拉伸和收缩。当然,假如用户开启了转屏设置,在网页加载之后改变了屏幕的宽度,那么我们就要考虑这个问题了。解决此问题也很简单,监听屏幕的变化就可以做到动态切换元素样式:

1
2
3
4
window.onresize = function(){
     var deviceWidth = document.documentElement.clientWidth > 1300 ? 1300 : document.documentElement.clientWidth;
     document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';
};

为了提高性能,让代码开起来更加完美,可以为它加上节流阀函数:

1
2
3
4
window.onresize = _.debounce(function() {
     var deviceWidth = document.documentElement.clientWidth > 1300 ? 1300 : document.documentElement.clientWidth;
     document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';
}, 50);

顺带解决高保真标注与实际开发值比例问题

如果你们设计稿标准是iphone5,那么拿到设计稿的时候一定会发现,完全不能按照高保真上的标注来写css,而是将各个值取半,这是因为移动设备分辨率不一样。设计师们是在真实的iphone5机器上做的标注,而iphone5系列的分辨率是640,实际上我们在开发只需要按照320的标准来。为了节省时间,不至于每次都需要将标注取半,我们可以将整个网页缩放比例,模拟提高分辨率。这个做法很简单,为不同的设备设置不同的meta即可:

1
2
var scale = 1 / devicePixelRatio;
document.querySelector('meta[name="viewport"]').setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');

这样设置同样可以解决在安卓机器下1px像素看起来过粗的问题,因为在像素为1px的安卓下机器下,边框的1px被压缩成了0.5px了。总之是一劳永逸!淘宝和网易新闻的手机web端就是采用以上这种方式,自适应各种设备屏幕的,大家有兴趣可以去参考参考。下面是完整的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>
 <title>测试</title>
 <meta name="viewport" content="width=device-width,user-scalable=no,maximum-scale=1" />
 <script type="text/javascript">
(function() {
 // deicePixelRatio :设备像素
 var scale = 1 / devicePixelRatio;
 //设置meta 压缩界面 模拟设备的高分辨率
 document.querySelector('meta[name="viewport"]').setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
 //debounce 为节流函数,自己实现。或者引入underscoure即可。
 var reSize = _.debounce(function() {
     var deviceWidth = document.documentElement.clientWidth > 1300 ? 1300 : document.documentElement.clientWidth;
     //按照640像素下字体为100px的标准来,得到一个字体缩放比例值 6.4
     document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';
 }, 50);

 window.onresize = reSize;
})();
 </script>

 <style type="text/css">
   html {
     height: 100%;
     width: 100%;
     overflow: hidden;
     font-size: 16px;
   }

   div {
     height: 0.5rem;
     widows: 0.5rem;
     border: 0.01rem solid #19a39e;
   }

   ........
 </style>

 <body>
   <div>
   </div>
 </body>
</html>

让元素飞起来-媒体查询

运用css新属性media query 特性也可以实现我们上说到过的布局样式。为尺寸设置根元素字体大小:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@media screen and (device-width: 640px) { /*iphone4/iphon5*/
   html {
       font-size: 100px;
     }
   }

@media screen and (device-width: 750px) { /*iphone6*/
   html {
       font-size: 117.188px;
     }
   }
   @media screen and (device-width: 1240px) { /*iphone6s*/
     html {
       font-size: 194.063px;
     }
   }

这种方式也是可行的,缺点是灵活性不高,取每个设备的精确值需要自己去计算,所以只能取范围值。考虑设备屏幕众多,分辨率也参差不齐,把每一种机型的css代码写出来是不太可能的。但是它也有优点,就是无需监听浏览器的窗口变化,它会跟随屏幕动态变化。媒体查询的用法当然不仅仅像在此处这么简单,相对于第二种自适应来说有很多地方是前者所远远不及的。最明显的就是它可以根据不同设备显示不同的布局样式!请注意,这里已经不是改变字体和高度那么简单了,它直接改变的是布局样式!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@media screen and (min-width: 320px) and (max-width: 650px) { /*手机*/
 .class {
   float: left;
 }
}

@media screen and (min-width: 650px) and (max-width: 980px) { /*pad*/
 .class {
   float: right;
 }
}

@media screen and (min-width: 980px)  and (max-width: 1240px) { /*pc*/
 .class {
   float: clear;
 }
}

此种自适应布局一般常用在兼容PC和手机设备,由于屏幕跨度很大,界面的元素以及远远不是改改大小所能满足的。这时候需要重新设计整界面的布局和排版了:

如果屏幕宽度大于1300像素 如果屏幕宽度在600像素到1300像素之间,则6张图片分成两行。 如果屏幕宽度在400像素到600像素之间,则导航栏移到网页头部。 许多css框架经常用到这样的多端解决方案,著名的bootstrap就是采用此种方式进行栅格布局的。

总结

不管哪一种自适应方式,我们的目的是使得开发网页在各种屏幕下变得好看:如果你的项目定位的用户群仅仅是使用某种机型的人,那么可以采用第一种自适应方式。如果你的客户主要是移动端,但是客户的设备类型庞杂,建议采用第二种方式。如果你雄心勃勃地需要建立一套兼容PC、PAD、mobile多端的一体化web应用,那么第三种选择显然是最适合你的。每种方式都有自己的利弊,根据需求权衡利害,合理地实现自适应布局,需要不停的实践和摸索。路漫漫其修远兮,吾将上下而求索。

 

【图媒体:一张图看懂快递和电商的“跨界之争”】

  目前看来,电商自建物流依旧红红火火,京东、阿里巴巴、亚马逊等都在加紧对智慧物流系统的布局。京东陆续推出无人机、京东无人仓以及京东无人车,亚马逊在全球布局智慧物流中心,阿里巴巴加快菜鸟网络布局,打造智能物流骨干节点城市。 而快递跨界就显得不那么好看。各大快递物流转型电商,却没有一家真正成功。申通的“爱买超网”、中铁快运的“快运商城”、圆通的“圆通新农网”、宅急送的“E购宅急送”等在推出没多久就偃旗息鼓。 通过对比不难看出,电商自建物流体系,是基于提高用户体验、巩固市场地位的战略布局;而快递跨界电商,则是在利润下降、市场份额被挤压之下所做的无奈之举。虽然跨界经营中各占优势,但相较于电子商务,快递企业显然面临着更大的困境。 快递行业自身问题频发,比起跨界电商,或许更应该围绕主营业务,提高专业化水平,加强人员管理和流程管理,从冷链物流、反向物流等细分领域着手做大做强。 无论是电商自建物流体系,快递跨界进入电商,都是在抢夺对方桌子上的奶酪,也造成了资源浪费。但两者在当前乃至今后很长时间里,业务合作、利益共享仍是主流。因此,如何合理地进行市场定位和分配,促使双方开展公平公正有序的良性竞争也是接下来要思考的重点。   来源:中国企业报,物流指闻整理发布