当 <img> 位于段落下方时,将图像浮动到段落的右侧[重复]

Posted

技术标签:

【中文标题】当 <img> 位于段落下方时,将图像浮动到段落的右侧[重复]【英文标题】:float image to the right of paragraph when <img> is below the paragraph 【发布时间】:2022-01-23 23:29:38 【问题描述】:

我正在寻找纯 CSS 的解决方案(如果可能的话)。所以我的 html 没有变化,并且 没有使用 JavaScript。这是我的 HTML:

<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum.
</p>
<img src="http://www.fillmurray.com/284/196">

我的 HTML 是大量标签的一部分,这些标签还包含常规的 &lt;p&gt;,应该看起来像常规段落。

这是首选结果

我唯一能想到的就是使用inline-blockfloat 的组合:

p 
  display: inline-block;
  max-width: calc(100% - 284px);


img 
  display: inline-block;
  float: right;

这个“解决方案”的问题是,当文本的高度大于图像的高度时,文本不会环绕图像。 (参见下面的 sn-p 示例)。

问题:在不更改我的任何 HTML 的情况下(即:将 img 标记移到 p 标记上方),可以这样做吗?

p 
  display: inline-block;
  max-width: calc(100% - 284px);


img 
  display: inline-block;
  float: right;
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum.
</p>
<img src="http://www.fillmurray.com/284/196">

【问题讨论】:

【参考方案1】:

如果图像的尺寸已知,您可以创建一个“假”浮动元素,如下所示。后面有内容别忘了清除浮动

p 
  float:left;
  margin:0;

p:before 
  content:"";
  float:right;
  width:290px; /* width of the image plus a few pixel for margin */
  height:196px; /* height of the image */


img 
  float:left;
  margin-left:-284px; /* width of the image */
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis vitae commodi sunt voluptate ut ratione fugit iusto sequi. Voluptatibus provident, quo at vel vero praesentium ratione eligendi. Ab iure sequi quis est odio nihil a fugit labore, vero omnis cum.
</p>
<img src="http://www.fillmurray.com/284/196">

【讨论】:

粘贴后 2 秒后,您可以将 HTML 嵌套在具有静态高度和宽度的容器中以查看更改,或者只是调整大小! 这是一个不错的解决方案,但在我的情况下,我有一个问题:图像和文本是包含多个 &lt;p&gt; 标记的大量 HTML 的一部分,它们后面并非都有图像.因为 CSS 中没有“前一个”选择器来定位图像之前的任何

,所以我不知道如何使常规段落看起来有规律。我会将这些信息添加到问题中,我之前没有考虑相关性。

@DirkJ.Faber 很好,包括所有细节以获得准确的答案... @DirkJ.Faber 您所做的编辑没有帮助。我们需要知道您的 HTML 结构,否则我们无法给出解决方案,因为解决方案是链接到您的特定代码 问题是,HTML 结构会根据数据发生变化。可以有多个`&lt;p&gt;标签和&lt;h*&gt;标签。

以上是关于当 <img> 位于段落下方时,将图像浮动到段落的右侧[重复]的主要内容,如果未能解决你的问题,请参考以下文章

html常用标签

怎么在html中加入图片

如何在流体宽度容器中居中裁剪图像(<img>)

查找子图像宽度并将其应用于包含父 div jquery

在 Wordpress 帖子中为文本设置 75% 的宽度和为图像设置 100% 的宽度?

当EMGU是矩阵时,EMGU不显示图像