HTML:
<div id='container'>
<p>This is some text contained within a small-ish box. I'm using it as an example of how placing your floated elements in different orders in your HTML can affect your layouts. For example, take a look at this great photo placeholder that should be sitting on the right.</p>
<img src='image.gif'>
</div>
CSS:
#container {
width: 280px;
margin: 0 auto;
padding: 10px;
background-color: #aaa;
border: 1px solid #999;
}
p {
width: 100px;
}
img {
float: right;
}
结果:https://jsfiddle.net/y9Lqjm1f/
为什么如果段落的宽度足够小,浮动的右元素不会出现在容器div的顶部?
答案 0 :(得分:1)
因为img
元素位于p
元素下方,而block element
元素位于正常流量之后img
。
float
的单独流程是应用p
样式的结果,仅在p
下方开始。
如果您在img
下方添加了另一个img
,则会遵循正常的布局流程,就好像img
不存在一样,如下所示:https://jsfiddle.net/mkarajohn/y9Lqjm1f/1/
简而言之,为了使float
显示在顶部,必须将其放在标记的第一位,如下所示:https://jsfiddle.net/mkarajohn/y9Lqjm1f/2/
另请参阅this关于block element
和moments' for nil:NilClass): app/controllers/api/v1/moments_controller.rb:8:in
s
一般来说:
答案 1 :(得分:0)
p
和img
标记是块级元素。他们为下一个元素创建新行。因此,float: right;
中的img
属性适用于新行。
您可以对display: inline-block;
和p
代码使用img
。