html - div 中图像旁边的文本,它根据图像的高度改变高度

标签 html css

希望标题不会太困惑。我正在尝试并排放置图像和文本。这两个都在 div 中,我想根据图像的高度更改其高度。我尝试了很多事情,但我无法做我想做的事。有时图像位于 div 下方;有时文字在图像旁边,但它们之间有很大的差距;有时文本位于图像下方,例如底部的 JSFiddle 演示。也许这真的很简单,我只是没有得到。无论如何,这是代码。 (在弄乱了一些之后,我什至不知道它应该在那里或不在那里。)

HTML

  <div class="info">
    <h2>Example</h2>
    <div class="photo">
      <img src="https://placeholdit.imgix.net/~text?&w=500&h=700">
    </div>
    <div class="desc">
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "</p>
    </div>
  </div>

CSS

    .info {
      background-color: #FFFFFF;
      margin-top: 2%;
      padding: 2% 4%;
      box-shadow: 0 3px 5px #808080;
      -moz-border-radius: 5px;
      -webkit-border-radius: 5px;
      border-radius: 5px;
    }

    .info .photo {
      overflow: auto;
    }

    .info img {
      width: 30%;
    }

    .info desc {
      width: 70%;
      float: left;
    }

JSFiddle 演示

https://jsfiddle.net/dw812685/1/

谢谢!

最佳答案

使用您的 float 布局,我将以这种方式构建它。

float 左侧/右侧的容器,并将图像设置为max-width: 100%。还要确保在 float 元素的父级上使用某种 clearfix。

.info {
  background-color: #FFFFFF;
  margin-top: 2%;
  padding: 2% 4%;
  box-shadow: 0 3px 5px #808080;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  overflow: auto;
}

.info .photo {
  float: left;
  width: 30%;
  margin: 0 1% 0 0;
}

.info img {
  max-width: 100%;
}

.info .desc {
  width: 69%;
  float: left;
}
<div class="info">
  <h2>Example</h2>
  <div class="photo">
    <img src="https://placeholdit.imgix.net/~text?&w=500&h=700">
  </div>
  <div class="desc">
    <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
      dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "</p>
  </div>
</div>

您也可以使用 flexbox,设置 .photoflex-basis 并将文本区域设置为 flex-grow(或 flex: 1 0 0 简称)

.info {
  display: flex;
  flex-wrap: wrap;
  background-color: #FFFFFF;
  margin-top: 2%;
  padding: 2% 4%;
  box-shadow: 0 3px 5px #808080;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

h2 {
  flex: 0 0 100%;
}

.info .photo {
  flex: 0 0 30%;
  margin-right: 1em;
}

.info img {
  max-width: 100%;
}

.info .desc {
  flex: 1 0 0;
}
<div class="info">
  <h2>Example</h2>
  <div class="photo">
    <img src="https://placeholdit.imgix.net/~text?&w=500&h=700">
  </div>
  <div class="desc">
    <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
      dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "</p>
  </div>
</div>

关于html - div 中图像旁边的文本,它根据图像的高度改变高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056359/

相关文章:

javascript - 如何获取边界并更改边界以删除或添加标记 Google map 列表

css - 使用 padding-bottom 方法规范化列高度会导致使用名称 anchor 出错

javascript - 悬停时的 Jquery 幻灯片动画

php - 用 PHP 编辑 MYSQL

JAVASCRIPT:切换内切换不起作用问题

javascript - JavaScript 中的未定义错误

html - 为 2 个部分添加相同的背景

css - 使网格列跨越整行

html - 在图像悬停 CSS 上滑动文本

javascript - 如何创建 CSS/JavaScript 圆网格