• 一个前端练手作品


    前言

    最近在求职,作为一名项目经历很少的转行汪,结果相当悲催。没实战经历→公司不要→没实战经历,妥妥的鸡蛋相生无限循环。上万能的知乎求大神帮助,却发现没实战经验的妹子很受欢迎,没实战经验的汉子狗都不理。只能感叹,时代再变,处女情结依旧。知乎上也有很多大神建议先模仿,我觉得很有道理,决定模仿知乎,于是就有了下面这个东西(Demo & 源码):

     

    CSS布局方案:没用知乎的布局方式,全面使用了弹性盒子,之所以选择弹性盒子是因为他使用超级方便,而且跟HTML的结构更加匹配。之前说过,浮动和绝对定位实现自适应布局的关键在于width的auto,通常需要将子元素移出父元素之外(点此看布局方案的总结),这明显是不符合我们对结构的认知,弹性盒则不存在这种问题。

    js:原生js,没使用库和框架。js目前写的很少也很随意,主要是做了一点动态交互效果,其实都是一些小控件的交互。目前精力有限所以目前后端相关的数据接口为0,有打算用node做后台,现在先这样吧。。。

    原本这个项目只是为了练习一下CSS的使用而做的,所以UI方面有点想法,想要做成可复用、可定制、可拆分的样子,但是目前看来做的还很差。另外,前端界很热的一些CSS预处理器我都没有用,因为现在显然是直接用chrome结合Alloy Designer来直接修改css文件会更快。。。

    关于github

    之前注册了个github,但作为一个新人,除了复制别人的代码就是自撸,很想试试 pull request 是怎样的,但却找不到一个可以插手的项目。这种感觉,跟看了很多启蒙教育片却找不到一个实战partner,是一样一样的。我想有这种感觉的不止我一个吧(喂喂,不是看教育片的感觉啊),所以想发出来看看有没有想练手的同学。

    如果你有github账户,但还没试过 pull request 的话,来吧 fork 我然后追加你的内容推给我吧github源码)。对照 m.zhihu.com,一个小模块,一个动态效果,甚至一个错别字的修正都可以。

    说说知乎的设计

    我对蓝天白云爱到无以复加,自然也非常喜欢知乎的蓝色色调。知乎给人的感觉很清爽,界面也非常的精致。为了制造出立体感,里面大量使用了渐变和阴影。

    1)比如说这样的:

     

    搜索框有淡淡的内外阴影,看出来了吗?反正我是没看出来。。。CSS:

    box-shadow: inset 0 1px 3px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.1);

    效果调重一点: 

    哦,立体效果,知乎的参数也太含蓄了吧。看了一下其他地方,几乎所有输入框都被设置成了这种阴影样式。

    2)看看阴影+渐变:

    这是搜索栏的背景,我眼神不好,看出阴影已花光我所有视力,实在看不到渐变。。。。

    background: linear-gradient(to bottom,#086ed5,#055db5);
    border-bottom: 1px solid #044e97;
    box-shadow: 0 1px 2px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.15);

    这个阴影跟上面的刚好相反,渐变的两个颜色相差无几,很难看出来。话说,知乎前端都是处女座的吗? 这就是知乎的简练风格吧,这些效果太浓反而会分散用户对内容的注意力,过犹不及啊。

    顺带温习一下常见的发光和渐变:  

    3)渐变还能这样

    渐变?宝宝看不到啊!

    .zm-noti7-frame-border {
        height: 1px;
        width: 100%;
        position: relative;
        background: linear-gradient(to right,rgba(250,250,250,.1) 0,rgba(240,240,240,.8) 1%,#ddd 4%,#ddd 96%,rgba(240,240,240,.8) 99%,rgba(250,250,250,.1) 100%);
    }

    也就是说,在列表下面居然还加了个div,专门用来显示线条两端的渐变效果。。。

    4)颜色方面

    知乎将内容分成了两类,与问题相关的信息用了纯黑色,其他都用灰色表示。这样的区分还蛮有意思的,这里用到UI设计中一个褪色的原则,突出了重点信息。另外灰色元素看起来蛮有书生意气的淡雅feel,配合上面的渐变和阴影,整体都很协调。

    一些注意点

    1)命名规范

    开始的时候没注意这个问题,虽然知道要规范化,但是却不知道如何去做。CSS越写越多,感觉越来越乱,然后去找编码规范好好看了一下,接着就是痛苦的重写。不同公司组织有不同的编码规范,规范并无优劣之分,万万不可混杂着各种规范,那真不叫规范了,另外也不要太死板局部可以灵活简化。我看的是这个: 前端编码规范

    知乎的命名规则是这样子的: zu-top-nav-link,也就是【命名空间-模块-内容-内容】, 模块化的时候注意保证前两位一致,这样的话我们在写CSS的时候基本不用管HTML了,而且后面看CSS文件时也能一下子区分开不同的模块。另外,我多数采用了 class 直接命中样式,极少部分使用了结构伪类。

    2)顺手的工具

    一款顺手的工具可以减少很多磨刀的时间,说到这里大家肯定看过某些吹牛皮说的“用记事本就行,纯净”,我就呵呵不说话。写CSS的装备推荐:顺手的编辑器 + Chrome + AlloyDesigner。之前在慕课网看到过一个视频,里面一个老师用截图工具测量尺寸的手法之娴熟令我无比震惊。当然,能让你震惊的东西一般来说都会有改进的余地,所以这个时候你应该停下来,先去找块好的磨刀石吧。这里的主力是 Chrome + AlloyDesigner,可以实现可视化的编辑效果,你在 Chrome 上修改的样式可以直接反应到页面上。这里记得要单独写一个 CSS 文件,在source找到它然后 save as 就可以了,之后的修改都会直接保存到文件里面去的,当然也可以设置工作空间。AlloyDesigner 是一个设计稿工具,简单来说就是把设计稿放在重叠在页面上,大家注意下面有重影的地方就是跟设计稿对不上,修改到重叠即可。这里比较奇怪的是设计稿的尺寸经常不对,需要自己设置一下。文档教程:AlloyDesigner文档教程

    3)先动脑再动手

    要先动脑再动手,先分析出骨架,然后再构思布局方案,当你对页面的布局有了一个大体上的解决方案时,再动手写代码。这里我做的还是比较差,总是急急忙忙动手,还是要整体把握好,把要点记下来才行。

    另外一个就是全局意识,应该先搭起一个大体骨架再往内部填充内容(HTML),最后才是 CSS 样式的调整。这样做的好处是没有样式你的HTML还是结构分明的,这个应该算基本的结构表现分离吧。

    以上。。。

     

    (图片出处:小周)

    原创文章,转载请注明出处!本文链接:http://www.cnblogs.com/qieguo/p/5475348.html 

  • 相关阅读:
    【2020-08-30】盼头这事,还是得有一点好
    【一句日历】2020年9月
    【2020-08-29】边走边想吧,少年
    【2020-08-28】欲望与能力的矛盾假象
    【2020-08-27】人生十三信条
    【2020-08-26】日复一日,年复一年
    【2020-08-25】今天七夕,男人有话要说
    【2020-08-24】处处较真,其实就是自己虚荣
    【2020-08-23】人生十三信条
    【2020-08-22】人生十三信条
  • 原文地址:https://www.cnblogs.com/qieguo/p/5475348.html
Copyright © 2020-2023  润新知