css - REACTJS - 3 个基于网格的大小为 16 的框 :9 , 显示图片失真

标签 css reactjs

3 个基于网格的框,大小为 16:9,覆盖整个页面宽度,应在不压缩/扭曲的情况下按此分区显示图片,同时显示完整图片。如果图片比盒子大,那么它应该覆盖整个宽度或整个高度,具体取决于哪个尺寸更大,并相应地调整另一个尺寸的大小。

我的第一个问题是: 我为网格内的每个 div 分配了 100% 的宽度,但是我应该分配多少高度尺寸?

第二:假设我根据我的要求进行了划分,我该怎么做 显示分区内的图片?。

目前进展: 我已经使用这个网站作为引用:dabblet 并使用 code其中 thumbnail-card 是我的 div,thumbnail 是我的图像。

.thumbnail-card {
  height: 300px;
  width: 100%;
  background-color: black;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.thumbnail-card:before {
  content: "";
  width: 1px;
  height: 100%;
  display: inline-block;
  vertical-align: middle;
  margin-left: -1px;
}

.thumbnail {
  max-height: 100%;
  max-width: 100%;
  display: inline-block;
  vertical-align: middle;
}

但垂直长图像的行为不符合我的需要。任何解决方案? 图片引用:vertical_pic horizontal_pic how it looks

最佳答案

您的第一期:

要获取恒定的 16:9 比率的 div 元素,您不应使用 height,而应使用 padding-bottom。将 16:9 的比例转换为百分比。在您的情况下,宽度为 100%。然后计算 padding-bottom:9/16 * 100 是 16 的 56,25%

像这样:

div {
  width: 100%;
  padding-bottom: 56,25%;
}

另请参阅此堆栈溢出帖子:Maintain the aspect ratio of a div with CSS

您的第二期:

我认为 object-fit: contain; 是您需要的:https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit

在图像元素上使用它,它将包含到其父级。

关于css - REACTJS - 3 个基于网格的大小为 16 的框 :9 , 显示图片失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53518052/

相关文章:

html - 将容器宽度对齐到可见缩略图的宽度?

reactjs - 我可以在一个 monorepo 中有多个 babel.config.js 吗?

javascript - 将整个组件的 onClick 和组件内的按钮分开

CSS webkit 图像蒙版不起作用

css - 带有 SVG 文本动画的工件 (CSS3)

javascript - 在 application.css 中找不到//=require jquery.nouislider

javascript - 在 Forge Viewer 中第二次之后扩展不会加载

css - 如何用CSS首先选择li的一个元素?

javascript - react-query:仅在状态变量更改时重新获取查询

reactjs - react 引导 Accordion 错误 : Element type is invalid: expected a string (for built-in components) or a class/function (for composite components)