微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用ReactJS将图像正确地适合HTML和CSS中的div

如何解决如何使用ReactJS将图像正确地适合HTML和CSS中的div

我将完成一个小的血管图像数据库。从下面的屏幕快照中可以看到,问题,我遇到的问题是尽管我将CSS类固定为特定宽度,但卡的大小都是不同的。我正在尝试使用相同宽度和高度的所有卡。我在做什么错了?

card-img

与此问题相关的代码段下面:

vessels.js

export default function Vessel({ vessel }) {
    const { name,slug,images /* size */ } = vessel;

    return (
        <div>
        <article className="room">
            <div className="img-container">
                <img src={images[0] || defaultImg} alt="single" />
                <Link to={`/vessels/${slug}`} className="btn-primary">
                    Features
                </Link>
            </div>
        </article>
        </div>
    );
}

以及相关的 App.css 类:

.room {
    display: block;
    Box-shadow: var(--lightShadow);
    transition: var(--mainTransition);
}    
.img-container {
    position: relative;
}
.img-container img {
    width: 100%;
    display: block;
    transition: var(--mainTransition);
}

到目前为止我所做的:

  1. 我一直在尝试研究并找出导致这种情况发生的原因,但无法理解我做错了什么。我咨询了this source,这似乎很清楚。我申请,得到的结果就是我发布的图片上的那个。

  2. 我还尝试在CSS上添加height属性,但这并没有改变问题

    .img-container img { 宽度:100%; 高度:100%; 显示:块; 转换:var(-mainTransition); }

  3. 在某个时候,我怀疑它是visibility一个烙印,但这也没有改变我遇到的问题。而且我认为这不是可见性属性的问题。

在我看来,有一个(可能?)财产可能被覆盖?也许那不是问题。 感谢您为解决此问题指明了正确的方向。

解决方法

尝试将flexbox和样式化的组件用于所需的设计。

示例:

import React from "react";
import styled from "styled-components";
import "./styles.css";

const BoatContainer = styled.div`
  display: flex;
  flex-flow: row wrap;
`;

const BoatImg = styled.img`
  width: 200px;
  margin: 5px;
`;

export default function App() {
  return (
    <div className="App">
      <h1>Behold: boats.</h1>
      <BoatContainer>
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Motorboat_at_Kankaria_lake.JPG/1920px-Motorboat_at_Kankaria_lake.JPG" />
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Boats_at_Bhimili_beach_in_Visakhapatnam.jpg/1280px-Boats_at_Bhimili_beach_in_Visakhapatnam.jpg" />
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Motorboat_at_Kankaria_lake.JPG/1920px-Motorboat_at_Kankaria_lake.JPG" />
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Boats_at_Bhimili_beach_in_Visakhapatnam.jpg/1280px-Boats_at_Bhimili_beach_in_Visakhapatnam.jpg" />
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Motorboat_at_Kankaria_lake.JPG/1920px-Motorboat_at_Kankaria_lake.JPG" />
        <BoatImg src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Boats_at_Bhimili_beach_in_Visakhapatnam.jpg/1280px-Boats_at_Bhimili_beach_in_Visakhapatnam.jpg" />
      </BoatContainer>
    </div>
  );
}


沙盒演示:https://codesandbox.io/s/stack-63731876-boats-e7onm

以下是flexbox的便捷CSS技巧指南,供您参考:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。