html - 如何在未设置高度的父 DIV 中适应 IMAGE?

标签 html css image height

我有这种情况:我想使 IMG 高度适合其未设置高度的父 DIV。这是示例代码:

.box_NewsList {
  width: 100%;
  background: #ffa;
  overflow: hidden;
  display: inline-block;
}
.box_NewsList>img {
  height: 100%;
  display: inline-block;
}
.box_NewsPreview {
  padding: 15px;
  width: auto;
}
.box_NewsPreview>.tit_News {
  font-size: 1.5rem;
  line-height: 1.5rem;
  position: relative;
  margin: -15px 0 15px;
  padding: 15px 0 0;
  background: transparent url(../imgs/main_menu_hover.png) no-repeat top left;
}
<div class="box_NewsList">
  <img class="pull-left" src="mypicture.jpg">
  <div class="box_NewsPreview">
    <h1 class="tit_News">MyTitle</h1>
    <div class="txt_Abstract">
      <p>Long text abstract here</p>
    </div>
    <button class="btn btn-default btn-rounded pull-right">READ</button>
  </div>
  <div class="clear"></div>
</div>

如何使用 box_NewsPreview 类使 img 高度适合 div 的高度?

.box_NewsPreview>.txt_Abstract p{color:#7e7e7e;font-family:Roboto, sans-serif;font-size:1rem;font-weight:300;text-align:justify;}

如果我在 box_NewsList 中添加一个高度值,例如 height:300px;,它工作正常。

如果我设置了 height:autoheight:initialheight:inherit 或者我没有在该类中添加任何高度值然后我得到完整尺寸的 IMG,而不是调整其父高度的大小。

最佳答案

我认为实现您想要的东西的最简单方法是使用一点 jQuery。我认为使用纯 CSS 是不可能的

我举了一个例子,我在 .box_NewsList 上设置了 position: relative; ,在 .box_NewsList 上设置了 position: absolute; >img

还有这个循环遍历图像并为文本填充的小脚本:

$('.box_NewsList').each(function() {
    var imageWidth = $(this).find('img').width();
  $(this).find('.box_NewsPreview').css('padding-left', imageWidth + 15);
});

Here is a fiddle

关于html - 如何在未设置高度的父 DIV 中适应 IMAGE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39451573/

相关文章:

javascript - 当在网站的不同 div 上滚动时,使 Bootstrap4 导航栏改变颜色

CSS:如何正确使用 display=flex?

jquery - 从 JSON 编码的数据源中提取图像 URL

html - 如何将图像放在东西后面而不使其成为背景图像?

html - 如何创建具有空边界扇区和围绕该扇区 Angular 的圆 Angular 边框的圆圈

javascript - JQuery Mobile 隐藏 &lt;input&gt; 不会隐藏 &lt;input&gt; 字段周围的 <div>

JQuery '.css' 在 Firefox 上无法正常运行 - 在 Google Chrome 上完美运行

ios - Swift - 在 Markdown 中使用相对路径渲染图像

javascript - element.appendChild() 给出意外结果 : removes existing children

javascript - jQuery 平滑改变 innerHTML