【发布时间】:2020-01-26 22:31:42
【问题描述】:
我目前正在开发一个必须在卡片上显示视频/文本链接列表的管理面板。
我正在处理的环境不使用引导程序,所以我不能简单地使用他们的卡。这意味着我必须重新创建卡片组件。
我已经做到了,所以卡片可以正常显示,就好像它是普通卡片一样,如下所示:
代码如下:
<div className="">
<Link className="styledLink" to={`adminhelpcard/${this.state.id}`}>
<div className="card">
<h5 className="card-header">{this.state.title}</h5>
<div>
<img
className="Sprite"
onLoad={() => this.setState({ imageLoading: false })}
onError={() => this.setState({ tooManyRequests: true })}
src={this.state.thumbnail}
style={
this.state.tooManyRequests
? { display: "none" }
: this.state.imageLoading
? { display: "null" }
: { display: "null" }
}
/>
</div>
<div>
{this.state.tooManyRequests ? (
<h6 className="mx-auto">
<span className="badge badge-danger mt-2"></span>
</h6>
) : null}
<div className="card-body mx-auto">
<h6 className="card-title">
{this.state.title
.toLowerCase()
.split(" ")
.map((letter) => letter.charAt(0).toUpperCase() + letter.substring(1))
.join(" ")}
</h6>
</div>
</div>
</div>
</Link>
</div>
我正在尝试重新创建水平卡片 (https://getbootstrap.com/docs/4.3/components/card/#horizontal)
特别是包含视频的链接。但结果是这样的
重新创建尝试的代码如下:
<div className="horizontalCard">
<div className="innerCard">
<div className="leftImage">
<img
className="Sprite"
onLoad={() => this.setState({ imageLoading: false })}
onError={() => this.setState({ tooManyRequests: true })}
src={this.state.thumbnail}
style={
this.state.tooManyRequests
? { display: "none" }
: this.state.imageLoading
? { display: "null" }
: { display: "null" }
}
/>
</div>
<div className="rightText">
<div className="card-body">
<h5 className="card-title">{this.state.title}</h5>
<p className="card-text">...</p>
<p className="card-text">...</p>
</div>
</div>
</div>
</div>
所以我的主要问题是,我该如何重新创建/调整图像大小以使其保持在 leftImage div 的尺寸范围内。
【问题讨论】:
-
第一步是确保您的图像和文本内容在一行中对齐。您可以使用浮动、flexbox 或网格布局来做到这一点。在那之后,这是(可能)限制您希望图像占用多少水平空间的问题。然后将响应式 CSS 属性应用于图像(通常包括
{ max-width: 100%; height: auto;之类的内容)。 -
@hungerstar 嘿,谢谢你的建议。当我将最大宽度更改为 100% 并将高度更改为自动时,图像会重新缩放到更大,从而使整个 div 的大小扩大
-
图像的容器元素需要一个宽度,因为图像将缩放到允许的最大尺寸。 Example
标签: javascript css reactjs typescript