首页 理论教育基于HTML与CSS设计的两列式布局

基于HTML与CSS设计的两列式布局

【摘要】:接下来声明名为#divNav 和#divContent 的样式规则,为两个 div 设置样式。图8.17两列式布局可以理解,由于div 是块级元素,每个块级元素独占一行,所以两个div 从上到下依次显示。图8.18使用浮动在实际应用的两栏布局中,一般要求左栏固定宽度,右栏宽度根据浏览器窗口的宽度自适应。结合之前的案例一,可以这样设计:在这两个div 的外围再包裹一个div,由后者负责实现在body 中的水平居中,它里面的两个div 仍然使用目前的做法实现分栏。

两列式布局适合于左侧侧导航区右侧主内容区的页面结构。

下面的代码片段表明网页正文直接包含两个div,第一个div 用作导航栏的容器,显示在页面左侧,第二个div 用作主内容区的容器,显示在页面右侧。

接下来声明名为#divNav 和#divContent 的样式规则,为两个 div 设置样式。

此时代码运行结果如图8.17 所示。

图8.17 两列式布局

可以理解,由于div 是块级元素,每个块级元素独占一行,所以两个div 从上到下依次显示。如上所述,使用浮动可使元素脱离文档流向上方漂浮。修改样式代码。

此时代码运行结果如图8.18 所示。

图8.18 使用浮动

在实际应用的两栏布局中,一般要求左栏固定宽度,右栏宽度根据浏览器窗口的宽度(实际是作为两个div 共同容器的页面正文body 的宽度)自适应。只要将左栏宽度设置为固定的像素值,右栏不设置宽度,也不浮动,即可实现这一要求。修改样式代码如下:

此时代码运行结果如图8.19 所示。

(www.chuimin.cn)

图8.19 左栏固定宽度

尝试改变浏览器窗口的宽度时,左栏宽度保持不变,右栏的宽度随之一起变化。

我们注意到右列的宽度是自由伸展的,所以两列的宽度之和正好为文档正文区域的 宽度。

但有时候,我们为网页准备的内容并不足以占用浏览器窗口的全部宽度。换句话说:希望网页分为左栏和右栏这两列,而且是固定的宽度,但它们作为一个整体在浏览器窗口中水平居中,左右两侧仍有一定宽度的留白。

结合之前的案例一,可以这样设计:在这两个div 的外围再包裹一个div,由后者负责实现在body 中的水平居中,它里面的两个div 仍然使用目前的做法实现分栏。修改HTML 代码如下:

修改CSS 代码如下:

此时代码运行结果如图8.20 所示。

图8.20 分栏居中显示

注意右栏的宽度是自适应的,即为它的容器divLayout 的宽度与左栏的固定宽度值之差。

完整代码如下:

例8.10: