缩小以适应 div 和段落,基于图像?

Posted

技术标签:

【中文标题】缩小以适应 div 和段落,基于图像?【英文标题】:Shrink-to-fit div and paragraph, based on image? 【发布时间】:2012-04-14 15:07:18 【问题描述】:

下面的代码是我网站的简化版本。在我的网站上,图像宽度因页面而异,文本约为 100 字。这意味着该段落将 DIV 拉伸为比图像更宽。仅使用 CSS,是否可以将 DIV 和段落缩小到图像的宽度?

JSFiddle here

Example of what I'm trying to describe here。顶部是我得到的,底部是我想要的。

HTML

<div>
    <img src="image.jpg" />
    <p>Lorem ipsum dolor sit amet.</p>
</div>

CSS

div 
   display: inline-block;
   

【问题讨论】:

我在widest object on the 附近失去了你。你能把你得到的东西和你需要的东西截图吗? 我还没有编程/想好,但是如果每个页面都有不同的图像宽度,为什么不有一个javascript(我对jQuery/AJAX不太熟悉)onload函数,它设置你的 div 宽度到你的图像的宽度? @hjpotter92 这当然是一个选择。我只是想知道它是否可以在没有 Javascript 的情况下完成。 在这里找到了类似的回复:***.com/questions/2920968/… @hjpotter92,不一样 【参考方案1】:

您可以为父 div 添加 CSS 样式。

设置父 div 的宽度为 width: fit-content。

这将使您的父 div 根据嵌套在其中的子元素的大小来缩小或扩大。

    div   
       width: fit-content;
       border: 3px solid red;
       text-align: center
     
 <div>
   <img src="https://picsum.photos/200" />
   <p>Lorem ipsum dolor sit amet.</p>
 </div>

【讨论】:

【参考方案2】:

你可以使用这个:-

    div 
    width:20%;
    display:inline-table;
    


p 
    border: 1px solid blue;
    

它将完全根据图像大小工作.....

查看演示:- http://jsfiddle.net/WM6hK/11/

【讨论】:

【参考方案3】:

现在不可能,使用 CSS

使用jQuery,就这么简单

$("div").width($("div img").width());

Demo

【讨论】:

【参考方案4】:

为了做任何与桌子有关的事情,我将永远为自己感到羞耻:http://jsfiddle.net/WM6hK/3/

div 
display: table;
border: 1px solid red;
width: 1%;


p 
border: 1px solid blue;
​

【讨论】:

非常感谢那些跳出框框思考的开发者。【参考方案5】:

我建议添加一个小 jquery.. 让您的生活更轻松:

imgw = $("img").width();
$("div").css("width", imgw);

它的外观如下:http://jsfiddle.net/WM6hK/2/

这样,您可以将这行简单的代码添加到任何 div 中,只需将 $("div") 替换为 ID $("#idofdiv")。希望这会有所帮助!

【讨论】:

我可能最终会使用这条路线,因为它更干净。但表格选项实际上回答了这个问题。【参考方案6】:

不,仅使用 CSS 是不可能的。您需要为父 div 设置宽度并重新缩放图像。

【讨论】:

以上是关于缩小以适应 div 和段落,基于图像?的主要内容,如果未能解决你的问题,请参考以下文章

两个div中的段落对齐,它们之间有一个图像

使用 CSS 将 div 内的图像向上和/或向下缩放以适应图像的最大边

缩放图像以适应可用空间,同时防止裁剪

HTMLHTML 标签 ② ( 排版标签 | 标题标签 | 段落标签 | 水平线标签 | 换行标签 | div 标签 | span 标签 )

如何设置PDF iTextSharp的段落或字体行高

Base64 图像不会使用任何常用方法缩小