如何解决如何使用ReactJS将图像正确地适合HTML和CSS中的div
我将完成一个小的血管图像数据库。从下面的屏幕快照中可以看到,问题,我遇到的问题是尽管我将CSS类固定为特定宽度,但卡的大小都是不同的。我正在尝试使用相同宽度和高度的所有卡。我在做什么错了?
与此问题相关的代码段下面:
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);
}
到目前为止我所做的:
-
我一直在尝试研究并找出导致这种情况发生的原因,但无法理解我做错了什么。我咨询了this source,这似乎很清楚。我申请,得到的结果就是我发布的图片上的那个。
-
.img-container img { 宽度:100%; 高度:100%; 显示:块; 转换:var(-mainTransition); }
-
在某个时候,我怀疑它是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 举报,一经查实,本站将立刻删除。