转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> 网页制作 >> 正文
CSS创建各栏同高的多栏布局         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:631 更新时间:2009/4/23 13:49:39

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

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

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

垂直伸展

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

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

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

图1

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

骗术

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

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

图2

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

CSS

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

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

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

栏定位

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

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

图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帮忙精炼了这篇文章。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台