• 如何设计页面布局?


    说说你对布局的理解?说说你是怎么进行布局的?你如何确定页面宽度?可能很多同学在面试的时候都会遇到问到此类和布局相关的问题。估计大多数同学听到此类大方向的问题都是不知所措,最多只能说说之前写页面的一些经验之谈。ok,这篇文章,教你如何装逼给10分。

    细思极恐的事情


    有没有想过这样的问题?比如,这个菜单的宽度为什么是200px?250px或者190px是否可以?图片的尺寸为什么是278px*196px?如何确定网页的宽度?越细致的地方越是如此。这是细思极恐的事情,如果有人问你这样的问题,你又该怎么回答?估计大多数人得回答都是,美工UI怎么设计怎么做了,或者是,字体图片到了这个位置就这么宽了…这种回答是相当不专业的。

    软件界面的设计师除了视觉本身以外,对于设计是否可以实现、大概以何种方式实现、规范可否被理解并且复制执行、设计实现的性价比与时间比等纬度都应有相当高度的认识。就像建筑设计师一样,他们一定很了解建筑材料以及如何建筑,虽然他们不会去亲自砌墙。

    那有没有一种方案,可以比较好得回答或者处理此类问题?当然有,那就是栅格化和盒子比例的设计方法

    shangehua.jpg

    (图1)

    栅格化


    如果问你这么一个问题,让你设计一个PC端的页面,页面宽度多少比较好?可能有人会回答,950px、960px、980px、1000px、1190px、1200px。这可能是之前做页面的一些经验之谈。那么在这个基础之上,再设计一个左右布局的版式,左边是一个树形菜单,右边是主要内容区域。那么可能会有很多结果。但是这些结果基本上也是比较接近的。看一下下面的两种情况:

    一个产品站点,同样是980px的页面宽度,但是菜单宽度分别为:200px和245px

    zuoyou1.png

    (图2)

    另外一个产品站点,同样是1200px的页面宽度,但是菜单的宽度分别为:250px、230px、200px

    zuoyou2.png

    (图3)

    每一个界面单独呈现的时候,并不会有不和谐的感觉,但是作为一个产品下的一员,这种情况就会带来负面的影响。这种情况可能因为四种情况产生:

    1.宽度没有理论基础,凭借自身的经验感觉取得了一个方便记忆的整数;

    2.有自己的设计方法;

    3.设计的时候没有查看已有的类似设计;

    4.认为对方的(已有)的宽度不适合。

    如果大家遵守一个栅格化的设计方法,那么这个问题会比较好的统一

    先科普一点栅格化的基础。

    栅格化并不是一个新的概念,大家关注的点往往是他表面的950、960和1190。左边的三个数据的核心是一个24等分的栅格系统。可以被轻松的2等分、3等分、4等分、6等分、8等分、12等分,还可以做到1:2、1:3、1:5、2:4、1:7、3:5的不对称分割,并且可以精确到像素。由于3:5和3等分的需求,所以[3,8]得到了24这个结果。

    shange.png

    (图4)

    W = A * n – i; A = a + i; i:被分割的区块之间的间隔(为了方便计算,大都为10px)

    整个公示中,i和n一样是核心,再确定i,即可确定整个栅格化系统。当n = 24, i = 10;假如A=40,则W=950;假如A=50,则W=1190;假如A=60,则W=1430。

    jisuan.png

    (图5)

    虽然A的值可以变成“任何”一个值,但有观点认为栅格化仍然是不太适合弹性布局。因为弹性布局的关键在用百分数单位来替代像素的单位,用百分数来表示无法整出100的分割方案。就算是像6等分这样的诉求,每一份为16.66%,在视觉上也感知不到1像素级的差别。并且还可以转变为50%的33.33%保持对称和1像素级差别的感知。已经工作过的同学,应该遇到过像素眼的这么一类人…

    用一种更加容易理解的话语来描述栅格化:栅格化是通过确定等分的单位宽度以及单位宽度之间的间距,把单位宽度进行组合的一种排版方式。

    yahoo.png

    (图6)

    dengfen.png

    (图7)

    (图中红色部分表示横向计算,蓝色标记是纵向)

    在设计自己产品的栅格化系统大致可以采用下面的流程:

    首先分析等份的复杂度,如果版式仅仅是4等份、3等份的话,12列的栅格系统就可以满足需求。如果有较多不等分的可能,那么还是建议采用24列的栅格系统,如上图,这样你可以灵活的设置。

    其次确定页面大概的宽度,暂时采用1200px。

    然后根据版式的预见性,确定模块和模块之前是否有清晰的间隔,这个间隔大概是多少?10px?15px?20px?设计方法都有一个目标是效率的提升,所以个位数个人建议是0或者5的话,方便计算,记忆和检验。当然你也可设置其他的数字,给自己挖坑。

    看一下下面的两个例子,比较形象的说明,页面宽度到底该怎么确定:

    shange1.png

    (图8)

    蓝色区域是10px(为了更好的展示,实际是空白)

    1200px可以被24整除,所以W=1190px。(50 * 24 - 10 = 1190忘记算法的请看图4)

    再看下面一个示例3列等分。

    tu9.png

    这里间隔稍大,设置为20px,如果目标是1200px左右的话,则W=1180;(3*400px-20px)如果是1000左右的话。W可以等于970px;(3*330px-20px)或者是1000px(3*340px-20px;

    tu10.png

    无论你怎么设计,为了栅格化是为了解决一致性问题,以及数据化界面设计。所以只要给自己的网站定制一个大家都可以接受的栅格就好,如上图,整个栅格就是 (30+20)* 24 - 20 = 1180

    比例


    这是一个重要的问题,极大的帮助我们确定字体和行高以及盒子的宽高。

    对于字体和行高的比例,大多数也会存在难以统一,甚至可以用杂乱来表示。我曾经在sohu的时候见过同一个新闻列表,14px的宋体,行高居然有22px,23px,24px,25px,27px。这种细节基本上就是凭感觉。因为在设计这些文字的时候,内心并没有一个“理性”的方法,而是依赖于专业的背景和当时的感觉。和栅格化一样,我们应需要一个方法,一个比例或者几个比例在不同的场景下应用。我推荐1:1.5和1:2的比例。我本身并不是设计专业,但我能保证这两个比例是一个大多数人都会认为是好的比例。因为:

    tu11.png

    这是现成的“设计大师”推荐的比例。如果你是果粉的话,基本也会喜欢1:1.2。因为:

    tu12.png

    所以,当实际字体和行高的时候推荐比例1:1.2;1:1.5;1:2。

    如何确定页面宽度


    我们要如何确定网页中最大的盒子的大概宽度是多少?然后在这个宽度中进行栅格化。现在在这里解释。以我们的用户客户端占比分辨率最大的1920*1080为场景,说说我们可以如何确定网页的宽度。

    还是寻找一个大家觉得“好看”的比例作为方法,如果是16:9的比例。那宽度大概是1080px;这个比例又可以赢得果粉的青睐了,因为:

    (PS:下面的解释涉嫌装逼,如有不适,谨慎观看!)

    tu13.png

    而且16:9被大量的采用到了屏幕的尺寸中,最开始的宽屏显示器。所以这个比例很可能一直在你的生活中陪伴着你。PC显示器,14寸笔记本,手机,电视……

    另外的主流比例是4:3。比如1024*768已经大多数的电视信号源比例。如果你采用这个比例,那么页面宽度就是1440px基准。

    根号2也是一个“好”的比例,所有的标准纸张的宽高都是这个比例,如果你手边有A4纸的话,你现在就可以按照下面的方法去确认一下。按照这个比例的话就是1357px为基准。

    tu14.png

    大概认知度最高的比例就是黄金分割比了。

    tu15.png

    黄金分割奇妙之处,在于其倒数为自身减1,即:1.618的倒数为0.618 = 1.618 – 1

    1.618倍和0.618倍

    我们会发现有很强艺术背景的人很容易就会找到这个点(或者附近的位置),但是其他人就难以找到。当我看到下面的图的时候,简直是不可思议。

    tu16.jpg

    还有一些比例你可以尝试,比如1.43:1,这个是IMAX的比例。比如7:5,这个是5R相片的比例。

    页面的留白也是有比较“理性”的方法来设计的。如下图:

    tu17.png

    此文章内容来自 腾讯ISUX ,为了便于大家阅读,稍微做了修改。

  • 相关阅读:
    epoll精髓 C++ 技术中心 C++博客
    【找茬】split string 力为的技术博客 C++博客
    不谈技术~蛇年,我回来了!
    不说技术~希望所有人都好好的
    DDD~充血模型和失血模型
    基础才是重中之重~何为原子化操作
    DDD~概念中的DDD
    策略模式
    windows句柄和消息技术
    观察者模式2(observer)
  • 原文地址:https://www.cnblogs.com/Zengc-33/p/6132698.html
Copyright © 2020-2023  润新知