自适应css布局——流动布局新时代[译](2)

作者:dishuipiaoxiang 来源:蓝色理想 时间:2009-08-13 12:28:00 

如何让创建一个流动布局?

创建流动布局的第一步是创建一个首选的固定宽度的模拟,这样一来,设计师能看到其比例,然后使用神圣的比例、平衡和合适的间距技巧。

从上述简单的布局中,我们可以看到如何在css中规划代码。960px是我们的固定宽度,对于任何小于该尺寸的分辨率屏幕,我们将迫使水平滚动条出现。所有内容在一个880px的wrapper里,在左右两侧有40 px的margin,元素间有20px的间距。

在我们思考其可用性之前,一切安好。这种类型的布局可能适合很多用户,但未必适合每一个人。因此,我们将其转换成流动布局,如果欲使这一布局在任何分辨率下保持其比例,我们必须将960px的宽度改为100%,然后计算出与880px、640px、200px等值的百分比。

这需要一些理性思考,在我们模拟的固定宽度设计中,在960px的设计中,整个wrapper是880px,如果需要与其等价的百分比,我们所要做的是相除。

800pixels / 960pixels = 0.91667

采用十进制,将其转换成百分比,得到的是91.6667%。因为当前浏览器处理百分比的差异,它不会很明智的将所有小数位数应用到布局之中,浏览器要么向上取,要么向下舍。因此,我们需要一个整数,既然它更接近于92%,我们就向上取,稍后因为额外间隙的存在,我们需要向下舍,这很容易做到。

#wrapper {
width: 92%;
}

对于content和sidebar区域,我们如法炮制,但需保持正确的比例。因为这个区域在880px的wrapper内,我们需要找到相对于这个区域的百分比。

640 pixels ÷ 880 pixels = 0.727272 › 73%

220 pixels ÷ 880 pixels = 0.25 › 25%

width: 73%;
}
#sidebar {
width: 25% ;
6.}

我们将实际内容区域的宽度降至72%,这样我们的布局就不会破坏。因为它位于导航栏的旁边,我们不希望它太宽。

在处理流动设计的比例时,这是一个非常简单的概念,也是更有效的处理方式。借助于这样的技巧,设计者没有理由说不能保持其比例,美观的布局被破坏。

关于margin

设计者可以用不同的方法处理margin,一种方法是计算margin的百分比(此例中为200px/880px);另外一种是设置固定的margin,在我们的例子中,硬性大小为20px。

两种方法各有优劣,margin使用百分比,设计师承担者在大分辨率屏幕下margin太大的风险但能保持完好的比例。用固定的margin在比例的保持上有轻微的缺陷,但是,无论屏幕分辨率为多大,margin将维持不变。

标签:自适应,布局,css
0
投稿

猜你喜欢

  • CentOs7.x安装Mysql的详细教程

    2024-01-27 11:11:45
  • Python 读取xml数据,cv2裁剪图片实例

    2021-07-18 00:08:08
  • JS的Form表单转JSON格式的操作代码

    2023-07-02 05:24:03
  • 详解使用vue-router进行页面切换时滚动条位置与滚动监听事件

    2024-05-08 09:34:39
  • 使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

    2024-01-23 15:44:43
  • 利用Python matplotlib绘制风能玫瑰图

    2023-10-12 23:07:24
  • Python内置数据类型中的集合详解

    2022-07-13 04:06:38
  • python geopandas读取、创建shapefile文件的方法

    2022-09-23 16:57:19
  • python的mysql数据库建立表与插入数据操作示例

    2024-01-22 22:27:32
  • python绘制超炫酷动态Julia集示例

    2023-10-04 12:58:49
  • java 正则表达式获取两个字符中间的字符串方法

    2022-06-17 20:21:29
  • Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)

    2022-05-09 18:58:43
  • MySQL存储过程中使用动态行转列

    2024-01-16 22:03:16
  • Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

    2023-12-10 15:45:59
  • Python facenet进行人脸识别测试过程解析

    2021-03-27 14:24:04
  • PHP使用redis实现分布式锁的示例详解

    2023-06-01 16:32:19
  • 妙用dw图层与表格进行网页布局

    2009-07-14 21:57:00
  • Python将列表数据写入文件(txt, csv,excel)

    2023-04-09 13:24:49
  • python原类、类的创建过程与方法详解

    2023-01-26 06:59:27
  • pygame实现俄罗斯方块游戏(AI篇1)

    2022-04-13 02:42:14
  • asp之家 网络编程 m.aspxhome.com