2011-03-29 118 views
3

我有一个浮动元素前面的块元素背景图像的一个小问题。块元素的背景图像后面浮动元素

我将图像浮动到左侧,然后是H1。正如预期的那样,H1(这是一个blocl级元素)在图像后面流动,但它的内容(实际标题)出现在图像的右侧。

不幸的是,我在H1上使用的背景图像必须与左侧对齐,因此出现在实际img后面,因为与内容不同,这不会被浮动行为推动。

例子:

http://jsfiddle.net/WwuqG/

(我设置第二个标题clear: left显示它应该是什么样子)。

一种解决方法是将标题的左边距设置为比浮动图像的宽度略大一点,但这需要我事先知道它的宽度。

另一种方法是在h1中的元素中添加标题的图标,但这在语义上不正确。

是否有更好的仅用于CSS的解决方案不需要额外的元素?

回答

10

添加overflow:hiddenh1

fiddle

+0

天才,谢谢! – 2011-03-29 13:13:38

2

我有些困惑。

如果我做你的建议:

设置标题的左缘的 略高于浮动图像的 宽度

它看起来像这样:http://jsfiddle.net/WwuqG/1/

我的困惑来自于你的问题似乎......很容易解决。

这适用于任何width图像:http://jsfiddle.net/WwuqG/3/

是不是这样,还是我误解?

+0

第一个,与利润率左,是确定的。不幸的是,我不知道图像的宽度,所以我必须在之后用javascript设置边距。 你的第二个答案正常工作,除了'h1'下面有更多的元素必须出现在它下面,但图像的右侧。通过浮动'h1',它们将显示在'h1'的右侧。我无法清除它们,因为它们会出现在图像下方。对不起,如果我的问题是不完整的 – 2011-03-29 13:13:18