当前位置: 首页 > 面试题库 >

为什么文本环绕浮动元素而不是像另一个div那样向下滚动?

索锐藻
2023-03-14
问题内容

我试图更深入地了解CSS,我注意到当a div浮动时,其他元素会进入其下方。环绕它的文本不是这种情况。怎么来的 ?


问题答案:

这是设计使然,因为这是float的工作方式。如果您参考文档:

float CSS属性在其容器的左侧或右侧放置一个元素,从而使 text和inline元素可以环绕它 。该元素 页面
的常规流删除 ,尽管仍然保留一部分。

您应该注意float元素的2个功能:

  • 已从正常流程中删除:这意味着其他元素可以与浮动元素重叠或与浮动元素重叠(如position:absolute
  • text和inline元素将环绕:只有text和inline level元素不会是重叠的浮动元素,而是会环绕它。

以下是一些基本示例,您可以更好地了解它们:

.float {

  width: 100px;

  height: 100px;

  background: red;

  float: left;

}



.blue {

  width: 200px;

  height: 200px;

  background: blue;

}


<div class="float"></div>

<div class="blue"></div>

蓝色div与float元素重叠,因为它是一个块级元素。

如果将其设置为内联级别元素(inline-block),则不会

.float {

  width: 100px;

  height: 100px;

  background: red;

  float: left;

}



.blue {

  width: 200px;

  height: 200px;

  background: blue;

  display:inline-block;

}


<div class="float"></div>

<div class="blue"></div>

当我们添加文本时,您会注意到文本将如何环绕float元素,并将如何保留在它的包含块(蓝色div)中。

.float {

  width: 100px;

  height: 100px;

  background: red;

  float: left;

}



.blue {

  width: 200px;

  height: 200px;

  color:#fff;

  background: blue;

}


<div class="float"></div>

<div class="blue">  some text here some text here some text here some text here some text here some text here some text here some text here</div>

如果我们有更多的蓝色div,也会发生相同的情况:

.float {

  width: 100px;

  height: 100px;

  background: red;

  float: left;

  opacity:0.5;

}



.blue {

  width: 200px;

  color:#fff;

  background: blue;

  margin:5px;

}


<div class="float"></div>

<div class="blue">  some text here some text here s</div>



<div class="blue">  some text here some text here some</div>

为了简单起见:float元素将与周围的所有block元素重叠,而inline元素将环绕其周围。



 类似资料:
  • 问题内容: 假设您有一个,给它一个定值,然后在其中添加元素,在我的情况下为另一个。 这个想法是容器的内容将导致容器伸展,并成为内容的背景。但是,当我这样做时,包含的对象会缩小以适合非漂浮的对象,并且漂浮的对象将要么全部伸出,要么一半伸出,一半进入,并且对big的大小没有任何影响。 为什么是这样?有什么我想念的东西,怎么才能让漂浮的物品伸出其中的东西呢? 问题答案: 最简单的方法是放在父div上,而

  • 问题内容: 我正在尝试在网络上进行搜索,但不确定要查找的内容是什么。我试图找出如何创建将被修复的div元素,或者仅在该元素的TOP达到窗口浏览器视图的TOP时才浮动。例如,如果某个元素位于页面的中间,那么当您继续向下滚动时,该元素将一直保留直到它即将消失,然后它才希望保留在我的浏览器顶部(固定)。 问题答案: 我想我正在做与您想做的事情类似的事情。试用以下代码,将所需的内容放入通知div中,并单独

  • 搜索了几个星期的网页,但不能找到满足我所有需求的答案(只有部分),帮助是非常欢迎的。 我想要的和已经完成的: 符合普通HTML5和CSS 在文章中显示图像 图像必须有标题 标题必须位于图像下方 标题必须限制在图像的水平大小 标题可能长于一行,文本应换行到下一行(仍在图像大小范围内) 图像和标题必须作为一组向左或向右浮动(请考虑使用 ) 文章文本必须环绕图像和标题 图像大小不同(第一个图像为200p

  • 问题内容: 任何人都知道为什么overflow:hidden强制具有浮动元素的元素包装元素吗? 我真的很想了解内部工作原理,而不是仅仅使用它并相信“它确实有效”。 当包含元素的方向与浮动的子元素相同的方向时,我可以理解它的工作原理,但是overflow:hidden意味着裁剪溢出的内容(与position:absolute / relative一起使用时)。 任何信息表示赞赏。 问题答案: 浮点数

  • 首先,请耐心等待,因为我英语说得不太好,我不知道我是否能很好地解释解决方案。所以 我有超文本标记语言 clearfix类的实现如下所述 我想要这个。picture div位于左侧和右侧。description div保持在右侧。所以我写了这个CSS 到现在为止,一切都很好。 但有时,没有图片出现。在这种情况下,我想要那个。description div扩展到所有的。容器div宽度。因此,我尝试删除

  • 问题内容: 我的HTML代码只是将页面分为两列,分别为65%,35%。 在中 ,我有可变数据;在中 ,我有固定数据。即使两个具有两个不同的数据集,我也需要它们以相同的高度显示,以便背景色看起来好像填充了包含两者的框。当然,问题出在 ,因为其高度取决于当前显示在其中的数据量。 如何确保两列的高度始终相等? 问题答案: 将其包裹在包含背景色的包含div中,并在“列”之后添加一个清除div。 更新以解决