我必须在每行中列出3个项目,这对于台式机版本来说还算不错,但是在某些设备上却反应不佳。这些项目在iPad上重叠,因此当我单击项目链接时,它不会打开。而且某些项目中的文本较长,所以我觉得这是问题所在
我尝试使用display:Flex和Grid,但是都徒劳无功。
礼品
gift = [{ image_url ,Price of the item, Name of the gift }]
giftResults {
margin: 0 -5px;
}
.giftResults:after {
content: "";
display: table;
clear: both;
}
.error {
color: red;
}
.giftResult {
float: left;
width: 25%;
padding: 0 10px;
}
.gift-container {
width: 940px;
max-width: 100%;
min-width: 768px;
margin: 0 auto;
padding: 0 0;
padding-bottom: 3em;
}
.card {
background-color: #e5474b;
display: inline-block;
/* width: 25%; */
height: 50%;
margin-top: 30px;
width: 33.33333%;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
padding: 16px;
text-align: center;
}
.card a {
display: block;
}
.card h2 {
padding-bottom: 25px;
font-size: 20px;
height: 35px;
}
.card:hover {
height: 55%;
width: 39%;
}
@media screen and (max-width: 600px) {
.giftResult {
width: 100%;
display: block;
margin-bottom: 20px;
}
.card {
background-color: #e5474b;
max-width: 400px;
display: block;
height: 50%;
margin-top: 30px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
padding: 16px;
text-align: center;
width: fit-content;
}
}
<div className="giftResults">
<ul>{ giftDetails }
<li className="giftResult">
<div className="gift-container">
<div className="card">
<img src={props.imageUrl} alt="Item" />
<p>{`$ ${props.price}`}</p>
<a href={props.url} target="_blank" rel="noopener noreferrer">
{props.name}
</a>
</div>
</div>
</li>
</ul>
</div>
答案 0 :(得分:1)
如果您不能使用引导程序,请在下面查看...
/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {...}
/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
/*Define the new css rules
}
/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {...}
/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {...}
/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {...}
答案 1 :(得分:1)
我不确定要发生什么,可能会有多种结果,例如:
如果您希望这些物品相互堆叠,那么这可能会对您有所帮助(它非常基础,因此您必须对其进行更新以符合您的需求):
.singleItemContainer {
display: inline-block;
width: 200px;
height: 200px;
background-color: #e6e6e6;
margin: 4px;
}
<div class="itemsContainer">
<div class="singleItemContainer">
<div class="">
Title
</div>
<div class="">
Text
</div>
<div class="">
Image
</div>
</div>
<div class="singleItemContainer">
<div class="">
Title
</div>
<div class="">
Text
</div>
<div class="">
Image
</div>
</div>
<div class="singleItemContainer">
<div class="">
Title
</div>
<div class="">
Text
</div>
<div class="">
Image
</div>
</div>
</div>
如果您希望缩小项目的尺寸(特别是宽度),则可以将宽度更改为33.33%(两者之间没有边距,如果要在它们之间留出空间,则只需调整元素的宽度取决于您为这些元素提供多少空间/填充。
对于移动尺寸,您可以选择使用媒体查询,您可以在此处组合两种解决方案并添加媒体查询,其逻辑是,例如,从屏幕尺寸320像素到600像素,元素将堆叠在彼此之间,在600像素之后,元素的宽度将为33.33%。
为此,您需要使用媒体查询:
.singleItemContainer{
display: inline-block;
width: 200px;
height: 200px;
background-color: #e6e6e6;
margin: 4px;
}
@media only screen and (min-width: 320px) { //This one is probably not needed since the width: 200px; is the default one, but just threw this in here to help understand the example
.singleItemContainer{
width: 200px;
}
}
@media only screen and (min-width: 600px) {
.singleItemContainer{
width: 31.33%; //31 to allow the margins in between
}
}
可以添加和调整媒体查询以满足您的需求,这里的一切都可以做到。 希望这会有所帮助!
答案 2 :(得分:0)
我什至删除了多余的div
<div className="gift-container">
导致问题的原因,甚至根据上述建议添加了媒体查询