CSS Layout

发布时间: 2016-12-13 08:17:59 作者: 大象笔记

网页设计的两个流派

responsive web design 则为第三个流派。针对不同屏幕尺寸采用不同的布局 (media query)。例如,PC 上使用 fixed-width, 移动设备上使用 liquid.

fixed-width 常见的宽度是 960, 以便于支持 1024*768 分辨率的屏幕。

早期的 table 排版方式,相对于如今的 div 方式最大的劣势就是没法使用一套代码兼容移动设备,即,采用 liquid 方式是不可能的。

div 内部排版

padding-left & padding-top

使用 HTML5 引入的语义化标签

我的理解是,不会对排版带来任何便利性,主要是帮助新的浏览器、应用内置 web view 解析网页内容。例如,如何通过 article 找到网页内的 article.

内容为王

设计开始之前,首先要确保用户想看到的内容能够合理的展示出来,然后再追求效果。有用、好用、有趣,按照这个优先级来设计。

Mobile First

Float-based Layout

.sidebar {
  float: left;
  width: 25%;
}

一个简单的 sidebar 就实现了。

需要注意的是,无论是 float left 还是 float right, float 的部分,在代码中始终需要写在并行的非 float 部分前面。

同样,三栏式布局,也是 float left, float right, main 这样的代码顺序。

无论是二栏式还是三栏式,建议,sidebar 设置宽度,main 部分不设置宽度。

当然,如果是多栏式,可以将所有 column 都设置成 float left, 但是这种情况下, main section 就需要设置宽度了。同时需要注意,宽度的总和不能超过页面的宽度,否则会被挤下去。

优雅地清理 float

在包含 float 元素的 div 底部加入

<br style="clear: both;"/>

当然还有更优雅的方式,不改变 HTML 的结构

.clear:after {
  content: " ";
  display: table;
  clear: both;
}

这样只需要在包含 float 元素之上 add class clear 即可。

可见,在同级 float 外层加个 wrapper 还是很有必要的。

box-sizing

的确,border-box 更好理解一些。好多激进的人,直接这样干了

* {
  box-sizing: border-box;
}
我是一名山东烟台的开发者,联系作者