css 文本环绕浮动div,但边框和< hr />s不环绕

4szc88ey  于 2023-01-22  发布在  其他
关注(0)|答案(6)|浏览(160)

我有一个div是float: right,它在一个父div中。在同一个父div中也有p元素,文本正确地环绕float: right div。
但是,如果我将p元素设置为具有边框,或者执行<hr />,则边框不会在文本停止的地方停止,而是延伸到float: right div后面。
下面是对当时情况的一个漂亮的简要描述:

注意黑色水平线的绿色部分在浮动div后面。
我怎样才能让边框或者<hr />或者其他什么东西和文本一样宽,而不至于到div后面去?

fjaof16o

fjaof16o1#

我知道这个问题是前一段时间发布的,但我今天遇到了同样的问题,并找到了另一种解决方案:
http://jsfiddle.net/MvX62/
我用border-bottom代替了<hr />标签,并且不得不添加一个overflow: hidden;。看看小提琴,我认为这比公认的解决方案更有用,因为你也可以在水平线上添加一个边距,并且有相同的间隙,就像文本一样。
此外,您不需要定义z值,也不需要任何技巧或解决方法。

yuvru6vn

yuvru6vn2#

我以前遇到过这个问题,我不确定它是否可以解决。
但是,在您的情况下,您可以用另一个元素 Package 绿色框,用padding交换margin,并将其背景设置为#fff以 * 覆盖 * 有问题的行。

c8ib6hqw

c8ib6hqw3#

看看小提琴...
http://jsfiddle.net/UnsungHero97/8BwGB/3/
我在这里所做的是给浮动元素一个z-index CSS属性,它将把它放在非浮动元素(z-index的值较小)的"上面",而<hr />不会放在浮动元素的上面。
至于让它和文本一样宽,在我的例子中,它和文本一样宽,但我不确定这是否适用于所有浏览器(我用的是Chrome),如果不适用,请告诉我。
希望这能帮上忙。
赫里斯托
pidoss.优秀的mspaint技能:)

zbsbpyhn

zbsbpyhn4#

您必须将段落的宽度设置为容器的宽度减去浮动元素的宽度,或者您可以在浮动的同一侧给予它们一个等于浮动宽度的边距。

edqdpe6u

edqdpe6u5#

Div无法环绕另一个div。环绕是纯文本属性。您可以通过将主div的右边距设置为要环绕的div的宽度来模拟环绕,但文本不会在插入div下流动。

3npbholx

3npbholx6#

overflow属性的某些值可能会导致此行为。特别是overflow: visible,它通常由流行的CSS重置/规范化设置。

相关问题