使用百分比`width:100%`考虑元素`float:left`

时间:2011-06-17 13:43:54

标签: html css layout width css-float

我有this并且它有一个HTML img#logo-image,在某些情况下它不会显示display:none

问题是整个div#menu-title应该适合页面的宽度。 我尝试了width:100%,但是当显示img#logo-imag时,它会将该行划分为img#logo-image以下。

width:100%不适用于元素float:left

3 个答案:

答案 0 :(得分:3)

只需取消菜单标题div并删除宽度..它将自动为标题的100%然后..如果图像存在,它将调整ul#menu列表为其腾出空间,这是一种自然行为

如果您希望菜单列表实际上只占用可用的宽度(例如背景颜色或某些内容,那么您可以将overflow: hidden;添加到ul#menu - 尽管我认为不需要在您的示例代码中

这是你的小提琴的简化版 - 悬停在标题上以使图像消失并看到ul#menu调整以适合

Example Fiddle

答案 1 :(得分:2)

左侧有徽标图片和菜单标题。因为它们不是真正在单独的div中,它们都是同一个div的一部分,它们彼此相邻。最重要的是,您将菜单标题设置为760,这不是页面的宽度。至少看起来你做了什么。不要使用100%的宽度,因为调整页面大小会缩小菜单标题。

你真的只需要玩div,但我会说将这两个div分开会使你能够将它们叠加在彼此之上或之下。

在使用Chrome的检查元素功能时,我没有看到显示:无图像的css。我不知道为什么那样做。

答案 2 :(得分:0)

我真的不确定你要做什么,因为制作div#menu-title width:100%不会在同一行留下任何其他空间。

为什么不让它们都内联并让宽度成为他们需要的任何东西?

无论如何,我猜你想要什么。您希望这两个元素表现为表格,表格行内部以及表格单元格中的每个元素,以便图像占用最大宽度,div#menu-title占据所有其余部分。在这种情况下,将它们放在一个表格中,或者使用display:table-cell表示图像和div并随之摆弄它。