У меня есть макет сетки начальной загрузки в моем веб-приложении, и я хочу выровнять все по одной строке. Например, при загрузке в полноэкранном режиме карточки выглядят следующим образом:
Однако при изменении размера страницы карточки выглядят следующим образом
Мне нужно сделать так, чтобы они выглядели как первое изображение, независимо от того, как изменяется размер страницы, но я не знаю, как это сделать.
Ниже мой код:
<div className = "d-flex col-sm-6">
<div className = "" style = {{backgroundColor: 'white', borderRadius: 5, border: '1px solid #EAE8E8'}}>
<div className = "row">
<div className = "d-flex col-md-8">
<div className = "row" style = {{paddingTop: 20, paddingBottom: 20, paddingLeft: 40}}>
<h4>
<b>{this.props.restaurant.name}</b>
{this.props.restaurant.dietaryRestrictions.map(function(dietaryRestriction, index) {
return(<div key = {index}><span className = "badge-sm badge-secondary" style = {{color: 'white', backgroundColor: '#DA9550', fontSize: 9}}>{dietaryRestriction}</span> </div>);
})}
</h4>
{this.props.restaurant.description}
<br /><br />
<span className = "munchtime pointer"><i className = "fas fa-check"></i> <b>Add to Cart</b></span><br /><br />
<b><s>${this.props.restaurant.price}</s></b> <span className = "discount"><b>${this.props.restaurant.price * this.props.restaurant.restaurant.discount}</b></span>
</div>
</div>
<div className = "d-flex col-md-4">
<img src = {this.props.restaurant.images[0]} style = {{width: '100%', height: 250, objectFit: 'cover'}} />
</div>
</div>
</div>
</div>





В вашем коде вы используете Col-MD-8, который будет работать с минимальной шириной 992 пикселей. вы можете заменить мкр на хз, чтобы он работал для всех разрешений.
<div className = "d-flex col-sm-6">
<div className = "" style = {{backgroundColor: 'white', borderRadius: 5, border: '1px solid #EAE8E8'}}>
<div className = "row">
<div className = "d-flex col-xs-8">
<div className = "row" style = {{paddingTop: 20, paddingBottom: 20, paddingLeft: 40}}>
<h4>
<b>{this.props.restaurant.name}</b>
{this.props.restaurant.dietaryRestrictions.map(function(dietaryRestriction, index) {
return(<div key = {index}><span className = "badge-sm badge-secondary" style = {{color: 'white', backgroundColor: '#DA9550', fontSize: 9}}>{dietaryRestriction}</span> </div>);
})}
</h4>
{this.props.restaurant.description}
<br /><br />
<span className = "munchtime pointer"><i className = "fas fa-check"></i> <b>Add to Cart</b></span><br /><br />
<b><s>${this.props.restaurant.price}</s></b> <span className = "discount"><b>${this.props.restaurant.price * this.props.restaurant.restaurant.discount}</b></span>
</div>
</div>
<div className = "d-flex col-xs-4">
<img src = {this.props.restaurant.images[0]} style = {{width: '100%', height: 250, objectFit: 'cover'}} />
</div>
</div>
</div>
</div>
Вам нужно только настроить className "col" так, чтобы оно всегда было 8 и 4 на любой точке останова.
просто разделите сетку на 5 на 3 для всех видов (xs, sm, md), так как общая ширина контейнера равна 8.
точки останова медиа-запросов: сетка-медиа-запросы
пример ниже с
<link href = "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel = "stylesheet"/>
<div class = "d-flex col-md-8">
<div class = "" style = "background-color: 'white', border-radius: 5, border: '1px solid #EAE8E8'">
<div class = "row">
<div class = "d-flex col-xs-5 col-sm-5 col-md-5">
<div class = "row" style = "padding-top: 20, padding-bottom: 20, padding-left: 40">
<h4>
<b> restaurant name</b>
<div key=1><span class = "badge-sm badge-secondary" style = "color: 'white', background-color: '#DA9550', font-size: 9">dietaryRestriction</span> </div>
</h4>
restaurant description
<br /><br />
<span class = "munchtime pointer"><i class = "fas fa-check"></i> <b>Add to Cart</b></span><br /><br />
<b><s>$2000</s></b> <span class = "discount"><b>20%</b></span>
</div>
</div>
<div class = "d-flex col-xs-3 col-sm-3 col-md-3">
<img src='https://picsum.photos/200/300
' style = "width: '100%', height: 250, objectFit: 'cover'" />
</div>
</div>
</div>
</div>