【问题标题】:Flexbox - Image overflowingFlexbox - 图像溢出
【发布时间】:2017-02-21 15:51:35
【问题描述】:

我正在尝试创建一个包含 2 个项目的 flex 容器 - 一个文本 div 和一个图像 div。

但是,我在将图像保存在容器本身中时遇到了真正的问题。当我将浏览器的大小调整为小宽度时,图像刚刚溢出容器,我似乎无法理解为什么会发生这种情况。物品肯定应该留在容器中吗?

代码在这里:

<div class="featured-blog">
  <div class="featured-blog-main">
<h2>Featured Blog</h2>

  <div class="blog-flex">

 <div class="blog-text">
   <h3>Easter Island</h3>
   <p>Turpis sed tempus integer erat, pellentesque tortor nisl, eros viverra, integer vehicula taciti sapien sed nisl dui, nec litora tincidunt cum non lobortis sollicitudin. Et odio duis cum magna pretium. Enim augue odio. Non nec velit sed lacus in. Enim vitae pellentesque nec phasellus, quis in vitae, leo in eros donec, pede volutpat. Donec nunc mi vel, quis malesuada, sed proin curabitur orci ipsum volutpat, eu eu id blandit ultricies sodales</p></div> 

    <div class="blog-img"> <img src="http://www-tc.pbs.org/wgbh/nova/assets/img/fate-of-easter-island/image-01-large.jpg"></div>

  </div> <!-- blog-flex-->
    </div> <!-- featured-blog-main -->
  </div>   <!--featured-blog -->



.featured-blog {
 margin: 0 60px;
 padding: 100px 0;
 border-top: 2px solid gainsboro; }

.blog-flex {
 display: flex;  }

.blog-text {
margin: 0 30px; }

codepen 在这里:

http://codepen.io/reskk/pen/ALdpbz

我环顾四周并尝试了一些解决方案:使用 flex-basis、flex-grow 等,但似乎都没有奏效。

我有没有办法让这两个 div 做出响应,同时将它们 放在 弹性容器中?

或者,如果我在设置的方式上做错了什么,有人可以告诉我吗?

谢谢,

Reskk

【问题讨论】:

  • 据我所知,这是一个图像问题,而不是 flexbox 问题。尝试为您的图片添加静态宽度。

标签: css image flexbox overflow


【解决方案1】:

flex: 1; 添加到 .blog-text 和 .blog-img

.blog-text {
/*  width: 80%;*/
  margin: 0 30px;
  flex: 1;
}

.blog-img {
  flex: 1;
}

这将使图像留在容器内。

【讨论】:

  • 嗯,刚刚试过 - 图像仍然在较小的浏览器宽度下溢出
  • flex: 1 添加到子 div 和 max-height: 100% 到 img 对我有用。
【解决方案2】:

只需将max-width: 100%;height: auto; 添加到您的&lt;img&gt; 即可使其响应。

h2 {
  text-align: center;
}
h3 {
  margin: 0 0 30px;
  font-size: 1.8em;
}
.featured-blog {
  margin: 0 60px;
  padding: 100px 0;
  border-top: 2px solid gainsboro;
}
.featured-blog-main {
  background: rgba(0, 0, 0, 0.3);
}
.blog-flex {
  display: flex;
}
.featured-blog p {} .blog-text {
  /*  width: 80%;*/
  margin: 0 30px;
  flex: 1;
}
.blog-img img {
  max-width: 100%;
  height: auto;
}
<div class="featured-blog">
  <div class="featured-blog-main">
    <h2>Featured Blog</h2>
    <div class="blog-flex">
      <div class="blog-text">
        <h3>Easter Island</h3>
        <p>Turpis sed tempus integer erat, pellentesque tortor nisl, eros viverra, integer vehicula taciti sapien sed nisl dui, nec litora tincidunt cum non lobortis sollicitudin. Et odio duis cum magna pretium. Enim augue odio. Non nec velit sed lacus in.
          Enim vitae pellentesque nec phasellus, quis in vitae, leo in eros donec, pede volutpat. Donec nunc mi vel, quis malesuada, sed proin curabitur orci ipsum volutpat, eu eu id blandit ultricies sodales</p>
      </div>
      <div class="blog-img">
        <img src="http://www-tc.pbs.org/wgbh/nova/assets/img/fate-of-easter-island/image-01-large.jpg">
      </div>
    </div>
  </div>
</div>

【讨论】:

  • 完美运行。非常感谢!
  • 在我的情况下,我必须使用max-height:100% 以及建议的 CSS。
猜你喜欢
  • 1970-01-01
  • 2015-02-10
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
相关资源
最近更新 更多