首页 理论教育HTML与CSS网页设计:三列式布局方式

HTML与CSS网页设计:三列式布局方式

【摘要】:更常见的是三列式布局,具体而言就是整个页面分为左中右3 栏。按照这个思路,首先设置布局容器divLayout 使用绝对定位。添加CSS 代码如下:代码运行结果如图8.22 所示。图8.22自适应左外边距设置为202 像素是来自于4 个部分:左侧divNav 与divLayout 左边界距离10 像素;左侧divNav 宽度是180 像素;divContent 与divNav 的距离10 像素;divNav两条边框线各1 像素。

更常见的是三列式布局,具体而言就是整个页面分为左中右3 栏。HTML 代码如下:

再添加一些CSS 代码,设置边框,宽度,高度等,代码如下:

我们并没有为名为divContent 的div 设置宽度,因为期望当它与divNav 和divContent 共同占用一行时,它的宽度能自适应

这里有个难点:如果按之前两个案例的做法是用浮动将3 个div 排成一行的话,那么就必须为中间的divContent 设置一个明确的宽度值。必须使用其他的方案。

回顾前一章提及的position 定位属性。它的默认值为static,即每个元素都位于标准文档流中,块级元素从上到下,内联元素从左到右,所有元素依次向文档的顶端流动。

如果position 属性赋值为absolute 时,将实现绝对定位。绝对定位的元素将从文档流中脱离开来,漂浮在文档正文的上方,就像图层一样。

按照这个思路,首先设置布局容器divLayout 使用绝对定位。修改CSS 代码如下:

再修改divNav 和divSide 的样式代码,设置它们也使用绝对定位,并为它们设置坐标。修改CSS 代码如下:

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

(www.chuimin.cn)

图8.21 绝对定位

代码中left,right,top 属性使用的坐标系是以这两个绝对定位的元素共有的上级容器元素divLayout 为参照,top、right、bottom、left 4 个属性值实际是指定位的元素的四个边界与容器元素的四个边界的距离。如果作为容器的元素没有设置绝对定位,那么坐标系会以文档正文区域为参照。这也是额外为divLayout 容器元素也设置绝对定位的原因。

到此已经实现了左右两栏的定位,但divContent 此时的宽度是自适应的,布局容器divLayout 整个的宽度其实都被divContent 占据了。这不符合我们的要求。

直接为divContent 设置宽度值是不行的,因为我们的目标是它能自适应剩余的宽度。

但是可以换一种思路:我们只要把它的左边界和作为它的容器的divLayou 的左边界的距离固定下来,同时两者的右边界的距离也固定下来,那么它的宽度当然就是自适应的。添加CSS 代码如下:

代码运行结果如图8.22 所示。

图8.22 自适应

左外边距设置为202 像素是来自于4 个部分:左侧divNav 与divLayout 左边界距离10 像素;左侧divNav 宽度是180 像素;divContent 与divNav 的距离10 像素;divNav两条边框线各1 像素。Margin-right 可用类似的方法计算得到。完整代码如下:

例8.11: