浮动设计如何实现这种类似于表格的结果?

时间:2010-02-27 03:51:53

标签: html css css-float

我通常是一名Web技术爱好者,而且我全都是为了无桌面设计的东西,但是现在,这有点让我感到沮丧。 :/

我正在努力实现一些非常容易使用表格的东西,但这似乎过于复杂/不可能使用浮动元素。请看以下内容:

+-----------------+ +-------+
|                 | |       |
|    #contents    | | #info |
|                 | |       |
|                 | +-------+
+-----------------+

#info具有固定宽度,并且必须向右浮动到#contents#contents应该取宽度的剩余部分。

#contents#info都存在的简单设计中,这不是太复杂。它们都是固定宽度的,具有float:left属性,非常适合。

但是,在某些网页上,#info将不会出现。在这种情况下,很明显,#contents无法扩展以适应所有页面。

最明显的解决方案是让#contents没有固定宽度,以便进行缩放,并将#info更改为float:right。通过其他次要更改它所需的更改,它没有完全所需的行为,因为当#contents高于#info时,它会打破类似列的布局:

+-----------------+ +-------+
|                 | |       |
|    #contents    | | #info |
|                 | |       |
|                 | +-------+
|                 +---------+
|                           |
+---------------------------+

更糟糕的是,在#contents内,还有<div>属性设置的其他border-bottom,边框也会以下列方式直接通过#info:< / p>

+-----------------+ +-------+
|                 | |       |
|    #contents    | | #info |
|-----------------|-|-------|
|                 | +-------+
|                 +---------+
|                           |
+---------------------------+

所以,考虑到所有这些,我如何给#info一个固定的宽度,让它漂浮在#contents的右边,但保持列式设计并{{1}当#contents不存在时占据整个屏幕,所有这些都确保没有视觉伪像,并且不需要使用多个样式表?

这是在#info#contents都存在的网页上的理想结果:

#info

这是仅存在+-----------------+ +-------+ | | | | | #contents | | #info | |-----------------| | | | | +-------+ |-----------------| | | +-----------------+ 的网页上的理想结果:

#contents

我希望这不会太混乱。我没有脑力。

2 个答案:

答案 0 :(得分:0)

浮动你的#content div,它会阻止它像你一样泄漏,当#info消失时它会填满整个页面。如果你没有#info,你可以以某种方式更改#content,#content可以有一个位置相对和一些正确的填充,在#info中有一个绝对位置来填充它的位置。

答案 1 :(得分:0)

我通过电子邮件向我的网络老师发了电子邮件,答案非常简单。它不能与Internet Explorer(至少版本6)一起使用,但它对我的情况很有效。

#info设置为float:right,只需使用属性#contents设置overflow:hidden即可。瞧。