zoukankan      html  css  js  c++  java
  • 如何设计页面布局?

    说说你对布局的理解?说说你是怎么进行布局的?你如何确定页面宽度?可能很多同学在面试的时候都会遇到问到此类和布局相关的问题。估计大多数同学听到此类大方向的问题都是不知所措,最多只能说说之前写页面的一些经验之谈。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 ,为了便于大家阅读,稍微做了修改。

  • 相关阅读:
    Two Sum II
    Subarray Sum
    Intersection of Two Arrays
    Reorder List
    Convert Sorted List to Binary Search Tree
    Remove Duplicates from Sorted List II
    Partition List
    Linked List Cycle II
    Sort List
    struts2结果跳转和参数获取
  • 原文地址:https://www.cnblogs.com/Zengc-33/p/6132698.html
Copyright © 2011-2022 走看看