请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
项目交付后的第三天,苏念晚收到了一条消息。
不是周明轩发的,不是陆星辞发的,是客户直接发在群里的:“网站上线了,效果很好。谢谢你们。”
苏念晚盯着那行字,看了很久。上线了。她画的设计稿,他写的代码,周明轩做的后端,变成了一个真实的、可以访问的、别人正在使用的网站。她忽然觉得,之前那些熬夜、那些改稿、那些算不对的行高,都值了。
手机又震了一下。陆星辞发了一条私信给她:“看到了?”
“嗯。”
“什么感觉?”
她想了想,打字:“像是自己的孩子出生了。”
他沉默了几秒,然后发:“那我们的孩子还挺好看的。”
苏念晚看着那行字,脸一下子红了。什么叫“我们的孩子”?她盯着屏幕,心跳得很快。她想回点什么,但又不知道回什么。最后只打了一个字:“嗯。”
发出去之后,她觉得这个“嗯”太冷淡了,又加了一句:“主要是你写代码写得好。”
“主要是你画得好看。”
她笑了,把手机扣在胸口,靠在椅背上。窗外的阳光从窗帘缝隙里漏进来,在天花板上画了一条金线。她看着那条金线,忽然觉得,这个世界很大,有很多她不知道的东西。但没关系,因为他在她身边。他们一起做了一个网站,一起得到了客户的认可,一起看着那个网站上线。这是他们一起完成的第一件事,但不会是最后一件。
项目交付后不到一周,周明轩在群里发了新的消息。
“客户提了新需求,要做响应式优化。手机端和平板端的显示有问题。”
苏念晚看着那行字,脑子里一片空白。响应式优化?她记得陆星辞给她讲过响应式设计,但她只懂了概念,不知道怎么落地。她画设计稿的时候,只画了电脑端,手机端和平板端只是简单调整了一下间距,没有仔细考虑。
“苏念晚,手机端的设计稿需要重新画。”周明轩在群里说。
她打字:“好。”但她的心里很虚。她不知道手机端的设计稿该怎么画,不知道导航栏在小屏幕上怎么显示,不知道图片在小屏幕上怎么缩放,不知道表单在小屏幕上怎么布局。她什么都不知道。
放学后,她去了树屋。陆星辞已经到了,电脑开着,屏幕上是一堆她看不懂的代码。她走过去,坐在他旁边,叹了口气。
“怎么了?”他问。
“响应式。”她说,“我不会。”
他停下来,看着她。“哪里不会?”
“全部。”
他想了想,然后打开了一个绘图软件。“我画给你看。”
她愣了一下。他画给她看?他不是设计师,他是程序员。他怎么会画设计稿?他拿起数位笔,在绘图软件里画了一个手机屏幕的框。然后在框里画了导航栏——不是电脑端那种横排的导航栏,而是一个汉堡菜单图标,点击之后从左侧滑出菜单项。
“手机屏幕小,放不下那么多导航项。”他一边画一边说,“所以要用汉堡菜单。把导航项藏起来,用户需要的时候再点开。”
他在框里继续画。内容区的排版也变了,电脑端是两列布局,手机端变成了一列。图片的尺寸也变了,电脑端是大图,手机端是小图。字体的大小也变了,电脑端是16px,手机端是14px。
“响应式设计的核心,不是把电脑端的东西缩小放到手机端。”他放下笔,看着她,“是根据屏幕的大小,重新组织内容。让用户在手机上也能方便地使用。”
她看着他画的那些示意图,忽然觉得,他不仅是一个程序员,还是一个懂设计的人。她一直以为,设计是她的工作,代码是他的工作。但他画的那些示意图,比她画的还要清晰。
“你什么时候学会这些的?”她问。
“学代码的时候学的。”他说,“前端开发必须懂响应式。”
她低下头,看着那些示意图。她忽然觉得,自己以前太依赖他了。每次遇到不懂的东西,她就直接问他,让他教她。她从来没有试过自己去查、去学、去搞明白。她觉得自己应该长大了,不能什么都靠他。
“星星哥。”
“嗯?”
“你把那些示意图发给我。我自己画。”
他看着她,沉默了两秒,然后把文件发给了她。“好。”
那天晚上,苏念晚一个人在树屋里画手机端的设计稿。
陆星辞没有来。她说她想一个人试试,他说好,然后去了图书馆。树屋里很安静,只有她一个人,和她的电脑。她打开他画的示意图,看了一遍,然后关掉,开始自己画。
手机屏幕的框,她画了。汉堡菜单,她画了。一列布局,她画了。小图,她画了。14px的字体,她标了。她画完第一版,看着屏幕,觉得哪里不对。她又打开他画的示意图,对比了一下,发现自己的间距不对。她改了一下,又发现颜色不对。她又改了一下,又发现圆角不对。她改了一遍又一遍,改到后来,觉得自己画的和他的示意图一模一样了。
她把设计稿发给他。“画完了。你看看。”
过了几分钟,他回:“导航栏的汉堡菜单,点击之后菜单从哪里滑出来?”
她愣了一下。她只画了汉堡菜单,没画菜单滑出来的效果。她赶紧补了一张图,画了菜单从左侧滑出来的样子。
“好了。再看看。”
又过了几分钟,他回:“菜单项的字体大小,电脑端是16px,手机端应该是14px。你标的是16px。”
她低头看了看,果然,她忘了改。她又改了一遍,把16px改成了14px。
“好了。”
“图片的圆角,电脑端是8px,手机端应该是4px。你标的是8px。”
她又改了。
“按钮的高度,电脑端是48px,手机端应该是40px。你标的是48px。”
她又改了。
“表单的间距,电脑端是24px,手机端应该是16px。你标的是24px。”
她改着改着,忽然笑了。她想起他说的那句话——“你自己发现的,记得住。我告诉你的,记不住。”他明明可以直接告诉她所有问题,但他没有。他一个一个地提,让她自己改。这样下次画手机端设计稿的时候,她自己就会注意。
“好了。还有吗?”
“没有了。”
她如释重负,靠在椅背上,看着天花板。树屋里很安静,只有电脑风扇嗡嗡的声音。她一个人坐在那里,忽然觉得,没有他在旁边,树屋好像变大了。不是真的变大了,是她在感觉里,觉得树屋变空了。
手机震了一下。她拿起来看,是他发的:“画完了就回家。太晚了。”
她打字:“你呢?”
“在图书馆。马上回。”
“好。”
她收拾好东西,关了灯,走出树屋。外面的天很黑,星星很亮。六月的夜晚,蛙鸣声从远处传来,一声一声的,像在唱歌。她走在回家的路上,路灯一盏一盏地从头顶掠过,影子从长变短,从短变长。她踩着自己的影子,一步,一步。以前都是踩着他的影子,现在只有自己。她忽然觉得,一个人的路,很长。
第二天晚上,他们在树屋里碰头。
陆星辞打开电脑,开始写响应式的代码。苏念晚坐在旁边,看着他写。她看不懂那些代码,但她注意到,他写的代码里有一些奇怪的东西——@dia,ax-width,-width。她不知道那些是什么意思,但她没有问。她不想每次遇到不懂的东西就问他,她要自己查。
她打开浏览器,搜了一下“@dia什么意思”。搜索结果出来了——是CSS3的媒体查询,用于响应式设计。她看了几篇文章,大概懂了。@dia就是告诉浏览器,当屏幕宽度小于某个值的时候,用这套样式;当屏幕宽度大于某个值的时候,用那套样式。她看着那些代码,忽然觉得,代码没有她想象的那么难。它只是一套规则,和画画一样。画画是用线条和颜色表达想法,代码是用规则和逻辑表达想法。不一样,但又一样。
“看懂了?”他的声音从旁边传来。
她转过头,看着他。他的眼睛看着她的屏幕,嘴角微微弯着。他知道她在查资料。他看到了她的搜索记录,但没有直接告诉她答案。他在等她自己去发现。
“懂了。”她说。
“那你知道为什么我的代码里有@dia吗?”
“因为你要告诉浏览器,不同屏幕宽度用不同的样式。”
他点了点头。“还有呢?”