我使用react-bootstrap进行resposinve网格布局,使用material-ui进行组件。我想每行显示3个项目,我的第一行按预期工作,但下一行表现异常。为什么会这样?这是我的代码
const Content = ({restaurant}) => {
const restaura = _.map(restaurant, (restaurant) => {
return(
<Col xs={12} sm={12} md={4}>
<div className="card">
<div className="card-image waves-effect waves-block waves-light">
<Link to={"restaurant/" + restaurant.slug}> {restaurant.image ?
<img src={restaurant.image} alt={restaurant.name} className="activator responsive-img"/>
:<img className="activator" src="" />}
</Link>
</div>
<div className="card-content">
<Link to={"restaurant/" + restaurant.slug}><span className="card-title activator grey-text text-darken-4">{restaurant.name}</span></Link>
</div>
</div>
</Col>
);
});
return(
<div className="container-fluid">
<div className="row">
<h3 className="flow-text">Collections</h3>
</div>
<div>
<Grid>
<Row className="restaura show-grid">
{restaura}
</Row>
</Grid>
</div>
</div>
);
}
目前它看起来像附加图像
答案 0 :(得分:1)
这是因为购买的图像不是完全相同的尺寸。图像的高度变化导致它们不能在行内清除。
注意,在检查器中,如果给它们所有相同的尺寸,它将自动对齐。
你需要让col-XX-XX使用像flexbox这样的东西来等于列高,或者让图像解析成相同的大小。
答案 1 :(得分:1)
我建议您使用内置 .clearfix 类的引导程序,以便在所有浏览器中获得更好的支持。在每隔三个块之后放置以下div块:
<div class="clearfix visible-md-block"></div>
这是使用Bootstrap列包装功能创建布局时出现的常见问题。查看本文以更好地理解它 - http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-grid-system.php