导航

毅博客

分享本身就是件快乐的事,我因别人得到帮助而感到幸福

« 解决浏览器显示差异数据层与样式层分离模式的管理 »

解决背景不能延伸的问题

如果我们的网站排版方式是纵向的,比如两列、三列(当然还可以更多)。这样的排版我们就会用到 float 例:排成三列的格局。代码如下:

<div id="content">
<div id="main">
  <div id="maincol"></div>
  <div id="xcol"></div>
</div>
<div id="subcol">
</div>
</div>
这里我们打算把subcol放在左侧,maincol放在中间,xcol放在右侧。CSS的写法如下:
#content{width:700px; background:url(img/bg.png)repeat-y;}
#subcol {float:left; width:200px;}
#main {width:500px; float:right;}
#maincol {width:300px;float:left;}
#xcol {width:200px; float:right;}

好像这样就没问题了!但是事实上我们可以发现背景却没有伸展的意思,这是因为背景的自适应高度并不继承float的高度,如何解决这个问题呢?如下分析:

背景会继承float底线所在容器中的位置高度,所以背景一定会找到最后一个标签去测定,这样我们在所有的float下方下如下的标签:

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

这个标签中什么也不放。也就是一个没有高度的空容器,这样它就可以把背影拉下来了。

事实上在实际操作中还是会有很多问题会出现,这就需要我们以冷静的头脑去分析与解决了!

  • quote 2.Argoy
  • 翻到2年后的帖子..
    其实插入一对空的DIV 并不好,在DW3自动生成的页面里看到人家使用br来代替这个空容器,语义上是否更好?
  • 2008-12-14 2:38:16 回复该留言
  • quote 3.振之
  • http://www.andymao.com
  • @Argoy 事实上插入一个空的标签只不过是当时的一种紧急的应对之策。因为当时还没有更好的方法来解决这一问题。从语义上来讲空出来一个也并没什么问题。因为这里同样可以存放一些内容,至于放与不放都可以我个人理解就如同是家里买了一些装小东西的分类盒子,这些盒子正好把一个大箱子塞满,但是其中有一个盒子是空的,我们不能因为这个是空的就把这个盒子扔掉。也就是说这个盒子的存在不光是可以解决掉背景问题同样也可以存放内容。不过我文中提到的这个处理方式不是很好,这里完全可以处理为<div class="clear"></div>这样一来就比较合适。当然如果觉得多个空标签没意义,去掉也可以,反正现在也有办法解决这个背景在FF下无活延伸的问题了
  • 2008-12-14 9:45:23 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog .Theme from Google黑板报 By Washun

Copyright 2005-2007 Andymao.com. All Rights Reserved.

Search

控制面板

最新评论及回复

最近发表