CSS创建各栏同高的多栏布局

css|创建

  关于我的个人网站被问到最多的问题是:

  你是怎么让右边这一栏的背景色一直向下扩展的?

  这确实是个很简单的问题,也许你也已经相当熟悉,但很多人还不知道。下面介绍的技术是一个简捷的小技巧,它一定可以帮助你解决这个头痛的问题。

垂直伸展

  CSS有一些多少让人感到沮丧的特性,比如元素在垂直方向上只按照它确实需要的长度来伸展。也就是说,如果把一个200像素高的图片放在一个<div>中,这个<div>只会伸展到200像素高。

  当你用<div>把你的标签分开(译者按,指结构化地创建XHTML代码),然后应用CSS创建一个分栏布局的时候,事情会变得有趣而两难。其中有一栏可能会比另一栏长一些(图1)。由于栏高取决于栏内包含的内容总量,所以创建一个两栏高度相同但颜色不同的分栏式布局就变得有一些困难。

图1

  有一些方法可以使竖栏在垂直方向上看起来都一样长,而不用考虑它们包含的内容。在这里和大家分享我自己的解决方案(和使用绝对定位的布局配合使用),这是一个非常非常……简单的方法。同样的技巧也在其他地方使用着,包括A List Apart(译者按,ALA目前并没有使用这种方法,也许改版过了,下同)。

骗术

  整个方案的秘密其实很简单,用一个纵向平铺的背景图片来造成着色的分栏假像。以SimpleBits(作者的网站,译者按)为例,我创建了一个如图2所求的背景图片。最左边是一个装饰图案,它的右边是一段很宽的白色区域(用于内容栏),接着一个一像素的边框,然后是淡棕色的背景(用于侧边栏),最右边又是装饰图案,它是最左边装饰图案的水平翻转。

图2

  整个图片只有几像素高,但是当它纵向平铺后,将创建一个一直伸展到页面底部的着色分栏结构——无论栏内的内容孰长孰短。

CSS

  这条基本的CSS规则将被添加到body元素。

background: #ccc url(bg_birch_800.gif) repeat-y 50% 0;

  本质上来说,我们把整个页面的背景设为灰色,并且只在垂直方向上平铺背景图片(repeat-y)。“50% 0”设置了背景图片的定位——在本例中,从浏览器的左边50%(使图片居中)并且从顶部0像素处开始平铺。

栏定位

  放好背景图片后,把竖栏定位到顶部,左侧栏和后侧栏都有它们自己的内外补丁,请保证它们呆在了正确的地方——在背景图片创建的假竖栏之内(图3)。

图3

  还有一件重要的事情需要提及,如果任意一个竖栏有边框、内补丁和外补丁,我们需要针对IE/Win的盒模型Bug做一些补救,请参考Tantek Celik的Box Model Hack或Mid Pass Filter。

  作为选择,如果border和padding能够被同时避免而只使用margin,那么Box Model Hack就不必要了。如果栏内的内容只是简单地定位在页面的顶部(并且是透明的),那么也可以简单地避免Box Model Hack。

无论是什么浮动了你的船

  在我自己的网站上,我使用了绝对定位来创建两栏布局,但是如果你使用float属性来创建也会获得同样良好的结果(就像ALA一样)。

  两种情况都使用了同样的思想方法:平铺背景图片,然后把竖栏浮动到适当的位置把假的背景栏(Faux-Column)覆盖。

结语

  这是一个很简单的概念,但可以帮助减轻很多设计师在创建基于CSS的布局时经常碰到的痛苦。

  感谢Jeffrey Zeldman帮忙精炼了这篇文章。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索布局
, 背景图片
, 定位
, 像素
, 简单
, 一个
, 垂直平铺
布局背景
css两栏布局、css三栏布局、css3 多栏布局、css三栏式布局、左右两栏div css布局,以便于您获取更多的相关知识。

时间: 2024-08-23 02:43:02

CSS创建各栏同高的多栏布局的相关文章

网页制作学习:用CSS创建三栏页布局

css|创建|网页 三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度. 绝大多数网页设计者都熟悉传统的网页设计技术,用这些技术可以生成带有表格.创建固定宽度布局或者"液态"(它可以根据用户浏览器窗口宽度自动伸缩)布局的网页. 现在,我们都开始抛弃基于表格的布局技术,许多网络设计者正在从XHTML标记和CSS格式这一新范例中寻找创建三栏布局的方法

用CSS创建一个布局居中的页面

css|创建|页面 最近有一个读者问到,怎样用CSS创建一个居中的页面布局.该读者所追求的,是要达到这样一种效果,就如同在一个1024象素宽的页面上设计出一个800象素宽的表格.这是一种使用很广泛的页面设计方法,按照传统,它要靠嵌套表格才能达到这一效果,因此,这位读者追寻一种用CSS来达到这一效果的方法并不让人惊讶. 用CSS来创建一个居中的页面设计的基本技术相对来说较简单,不过与同类相比,也简单不了太多.让我们看一下,要将这种由来已久的基于表格的设计转变成用CSS,该怎样做. 传统的做法:居中

DIV+CSS创建三栏网页布局方法介绍

三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度.        绝大多数网页设计者都熟悉传统的网页设计技术,用这些技术可以生成带有表格.创建固定宽度布局或者"液态"(它可以根据用户浏览器窗口宽度自动伸缩)布局的网页.     现在,我们都开始抛弃基于表格的布局技术,许多网络设计者正在从XHTML标记和CSS格式这一新范例中寻找创建三栏布局的方

使用 DIV+CSS 创建固定宽度的布局

css|创建 我最近的几篇专栏文章讨论了使用 XHTML 和 CSS 实现两列或三列页面布局的各个方面.到目前为止,所有例子都使用流式布局(也就是布局会自动扩展和适应浏览器窗口的宽度).现在是时候考虑另外一种主要的页面布局方法了,这种布局方法是固定宽度布局. 很多 Web 构建人员倾向于使用固定宽度的布局进行页面设计,因为它们能生成精确且可预知的结果.这种方法与打印布局非常接近,对于设计人员和访问者来说都是一个很重要的舒适因素:另外,对于包含很多大图片和其它元素的内容,由于它们在流式布局中不能很

CSS实例教程:简单的的滑动导航栏效果

文章简介:CSS实例教程:简单的的滑动导航栏效果. 由于网页字体的限制,以及对导航栏美观的需求,使用background-repeat来做一个简单的文字导航栏已经远远不够了.在很多场合,导航栏的背景是一个图案,字体也不再是单调的宋体,这就需要我们把导航栏的整体效果做图在网页中使用. 今天我们就来做一个简单的的滑动导航栏效果(不知道应该叫它什么^_^),效果如下图:   思路:通过改变链接鼠标悬停状态(hover)的背景图片,来达到把鼠标放上去有高亮显示的效果. 方法:在本例中,我们是通过调整各链

用CSS创建导航菜单的两个例子

css|菜单|创建|导航 原创教程,转载请注明出处:网页教学网 用CSS创建导航菜单的两个例子 现在使用CSS+XHTML制作网页,通常网页需要导航,导航通常有两种:水平和垂直. 1.垂直导航的例子:(单击此处浏览演示效果) (1)CSS文件:(保存为vertical.css) h1, h2{font: normal 200%/100% Garamond, "宋体", serif;margin-bottom: 0px;color: #630;background: transparen

使用 CSS 创建固定宽度的布局

css|创建 我最近的几篇专栏文章讨论了使用 XHTML 和 CSS 实现两列或三列页面布局的各个方面.到目前为止,所有例子都使用流式布局(也就是布局会自动扩展和适应浏览器窗口的宽度).现在是时候考虑另外一种主要的页面布局方法了,这种布局方法是固定宽度布局. 很多 Web 构建人员倾向于使用固定宽度的布局进行页面设计,因为它们能生成精确且可预知的结果.这种方法与打印布局非常接近,对于设计人员和访问者来说都是一个很重要的舒适因素:另外,对于包含很多大图片和其它元素的内容,由于它们在流式布局中不能很

在用CSS创建类及id时应注意的一些规范化命名

css|创建|规范|规范化 Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯.  在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric M

使用CSS创建固定宽度的布局

css|创建 我最近的几篇专栏文章讨论了使用 XHTML 和 CSS 实现两列或三列页面布局的各个方面.到目前为止,所有例子都使用流式布局(也就是布局会自动扩展和适应浏览器窗口的宽度).现在是时候考虑另外一种主要的页面布局方法了,这种布局方法是固定宽度布局. 很多 Web 构建人员倾向于使用固定宽度的布局进行页面设计,因为它们能生成精确且可预知的结果.这种方法与打印布局非常接近,对于设计人员和访问者来说都是一个很重要的舒适因素:另外,对于包含很多大图片和其它元素的内容,由于它们在流式布局中不能很