当前位置: 首页 > 面试题库 >

为什么对象适合在flexbox中不起作用?

欧阳成弘
2023-03-14
问题内容

我有几列使用flex给出相等的宽度。每个都包含img标签,我希望这些图像显示object-fit: cover尺寸。

.container {

  display: flex;

  flex-direction: row;

  width: 100%;

}

.test {

  flex: 1;

  margin-right: 1rem;

  overflow: hidden;

  height: 400px;

}

img {

  object-fit: cover;

}


<div class="container">

  <div class="test"><img src="http://placehold.it/1920x1080"></div>

  <div class="test"><img src="http://placehold.it/1920x1080"></div>

  <div class="test"><img src="http://placehold.it/1920x1080"></div>

  <div class="test"><img src="http://placehold.it/1920x1080"></div>

</div>

如本演示中所示,图像没有调整大小。这是为什么?


问题答案:

从规格:

object-fit属性指定如何将替换元素的内容装配到通过其使用的高度和宽度建立的框中。

关键术语是: 根据其使用的高度和宽度安装到盒子中

图像将被替换,而不是其容器。并且由其使用的高度和宽度确定的框与图像本身有关,而不与容器有关。

因此,报废容器并使图像本身成为可弯曲的物品。

.container {

  display: flex;

  flex-direction: row;

  width: 100%;

}



img {

  object-fit: cover;

  flex: 1;

  margin-right: 1rem;

  overflow: hidden;

  height: 400px;

}


<div class="container">

  <img src="http://placehold.it/1920x1080">

  <img src="http://placehold.it/1920x1080">

  <img src="http://placehold.it/1920x1080">

  <img src="http://placehold.it/1920x1080">

</div>

额外细节

5.5。 调整对象大小:object-fit 属性

object-fit属性指定如何将替换元素的内容装配到通过其使用的高度和宽度建立的框中。

这是三个值:

  • cover

确定替换内容的大小,以在填充元素的整个内容框时保持其长宽比。

  • contain

替换后的内容的大小可保持其纵横比,同时适合元素的内容框。

  • fill

替换内容的大小可填充元素的内容框。

cover所述图像保持其宽高比,并覆盖所有可用空间。使用此选项,大部分图像可能会在屏幕外裁剪。

随着contain纵横比也保持,但图像进行缩放以适应箱内。这可能会导致左侧和/或右侧的空白(人像适合),或顶部和/或底部的空白(横向适合)。该object-position属性可用于在其框内移动图像。

使用fill宽高比时,图像将被调整为适合盒子的大小。



 类似资料:
  • 我试图在不同的IO线程中运行块和块。但是输出是这样的: 如您所见,调用似乎对流没有影响,引用调用方法的线程。 另外,请考虑下面的代码: 这些代码的问题是什么?谢了。

  • 我有一个非常简单的JSF 2/Facelets页面,如下所示: 支持bean提供了一个 消息。因此,在

  • 问题内容: 根据flexbox规范: ..4.3。Flex Item Z-Ordering,…和其他值(即使是,也不会 创建堆叠上下文)。 因此,我认为/ 应该与flexbox一样正常工作,但是当我将它应用于此HTML / CSS时它不起作用(我的目标是放在创建两层之上): 我在flex属性上使用了适当的前缀。我不明白为什么它不起作用。 问题答案: 就像你在你的问题中写道,元素 并不 需要被定位为

  • 问题内容: 在IE10中,此代码无法正常工作: 应该发生的是,该宽度应为31px,并占用内的其余可用空间。由于某种原因,发生的事情只是默认为263px。 在Chrome和Firefox中可以正常运行。 问题答案: IE尚不完全支持Flex布局模式。IE10实现了规范的“补间”版本,该版本不是完全最新的,但仍然可以使用。

  • 问题内容: 我在这里有点困惑。如果我将变量传递给json_decode,它将不起作用: 第一个回显正确显示了我传递的JSON字符串,例如 第二个回显显示NULL。因此,我从第一个回显中获取了字符串,并编写了以下代码: 你怎么说,它向我展示了正确解码的数组。字符串绝对相同,我什至保留转义字符。也许是问题所在? 问题答案: 看起来您的服务器已启用。无论是将其禁用或运行通过使用它之前。

  • 问题内容: 为什么这项工作有效- 但这不是- 第二种情况下的输出为。你能解释一下输出吗? 问题答案: 该方法没有返回值。它会在适当的位置更改列表,并且由于您没有将分配给任何变量,因此只是“迷失在空间” 我没有重载所有有问题的方法,但是概念应该很清楚。