html - 为什么当行上没有更多空间时浮动元素被推到容器外面而不是被推到第二行?
问题描述
blockquote {
background-color: lightblue;
width: 410px;
height: 400px;
}
blockquote p {
float: ;
margin: 0;
padding: 0;
display: inline-block;
background-color: red;
}
blockquote img {
margin: 0;
padding: 0;
width: 100px;
height: 100px;
}
<blockquote>
<img src="https://socialbrew.dk/wp-content/uploads/2020/06/171026-better-coffee-boost-se-329p_67dfb6820f7d3898b5486975903c2e51.fit-760w-1.jpg">
<p>I love to drink Coffee</p>
<p>Cofee is the nectar of life</p>
</blockquote>
在这个例子中,这两个p
不是浮动的。他们现在是inline-block
,和他们的普通医生。flow 将在 旁边对齐img
,但不是在容器的顶部,而是在容器的底部。现在,如果我width
将容器的 缩小到400px
,第二个p
将被推到第二行,第二行从左侧开始,位于图像下方。所以第二个p
被安排在第二行的图像下方。
但是,如果我不缩小width
,而是浮动两个p
,它们都将提升到容器的右上角,现在,如果我再次将容器的宽度缩小到400px
,第二个p
出现被推到容器外,而不是被推到第二行,但是,当两个“p”都浮动在顶部时,它们在DOM中的实际订单位置不可能在底部容器,所以一旦容器变小了,第二个p
就被推到第二行,它在图像下方并超过容器,并且由于它是浮动的,它被提升到容器的右侧。
唯一的问题是,我不确定也不知道这是否是浮动的工作方式。当两者p
都浮动在容器的右上角时,它们的实际DOM流顺序是在容器底部,只是给人一种整个容器是空的假象,或者是它们在容器顶部的顺序在哪里他们真的出现了吗?
解决方案
当时您没有设置它width
的p
自动由其中的内容或文本确定,如果您将width
容器缩小为400px
并缩小里面的文本p
将继续对齐内联以下是示例
blockquote {
background-color: lightblue;
width: 400px;
height: 400px;
}
blockquote p {
margin: 0;
padding: 0;
float: ;
display: inline-block;
background-color: red;
}
blockquote img {
margin: 0;
padding: 0;
width: 100px;
height: 100px;
}
<blockquote>
<img src="https://socialbrew.dk/wp-content/uploads/2020/06/171026-better-coffee-boost-se-329p_67dfb6820f7d3898b5486975903c2e51.fit-760w-1.jpg">
<p>I love to drink Coffee</p>
<p>Cofee is the nectar</p>
</blockquote>
p
设置为,但仍然在同一行上,这意味着在您的示例中,两个的大小大于容器宽度的左侧大小。width
400px
p
尝试ctrl + shift + I
在浏览器中使用开发人员工具(如果您使用的是 chrome)来检测这里的样式是宽度的照片,p
即使您没有设置它
,因为您可以看到第二个的宽度p
是162.156px
但您没有设置这意味着它实际上是由文本的长度决定的。
你问的第二个高度p
是因为当你自动浮动内容时,它会走到一边,你把它浮动在顶部,如果你不浮动它,它会留下等于img
from高度的大小但是top
如果您将高度设置img
为0px
将p
转到顶部以下是示例
blockquote {
background-color: lightblue;
width: 410px;
height: 400px;
}
blockquote p {
margin: 0;
padding: 0;
float: ;
display: inline-block;
background-color: red;
}
blockquote img {
margin: 0;
padding: 0;
width: 100px;
height: 0;
}
<blockquote>
<img src="https://socialbrew.dk/wp-content/uploads/2020/06/171026-better-coffee-boost-se-329p_67dfb6820f7d3898b5486975903c2e51.fit-760w-1.jpg">
<p>I love to drink Coffee</p>
<p>Cofee is the nectar of life</p>
</blockquote>
推荐阅读
- laravel - 在本地存储图像 vs cloudinary vs s3
- python - Python 3.6:导入子目录在 Pycharm 中不起作用
- javascript - 从内部箭头函数访问方法变量
- java - HttpUrl queryParameters 转换为 MultiValuedMap
- python - 将字典转换为数据框的一列,同时将字典行名保留在另一列中(python)
- java - 如何在向其中插入数据期间阻止检索 ArrayList 信息
- jenkins - Jenkins:自动删除旧版本
- javascript - 如何使用 Fisher-Yates 对 JavaScript 数组进行洗牌?
- sql - 如何将数据从 excel 导入到 postgres-多对多关系
- swift - 定时器类,不增加计数