html - 在最后一行包装弹性项目
问题描述
我有一个img-gallery
现在正确集中的。问题是当图像换行时,它也与中心对齐。换行后,图像应与上一行中的第一个图像垂直排列。
.gallery-links {justify-content: flex-start;}
这使它几乎解决了。但是镜像包裹之后,整体img-gallery
就不是中心化的了。查看fiddle
和摘录:
.gallery-links {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
.gallery-img {
flex-basis: 300px;
margin: 10px;
}
.gallery-img img {
width: 100%;
}
<section class="gallery-links">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img2">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img3">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img4">
</section>
解决方案
Flexbox无法解决这个问题:
所以问题是,如果你使用你不想要的,你的最后一行会居中,如果你使用对齐,那么你将在右侧有一些空间。justify-content: center
flex-start
flexbox
全屏查看下面的片段,这样您就可以连续获得两张图像并查看最后一张图像。
给出
justify-content: center
,最后一个图像不左对齐:.gallery-links { display: flex; flex-flow: row wrap; justify-content: center; align-items: center; border: 1px solid; } .gallery-img { flex-basis: 300px; margin: 10px; } .gallery-img img { width: 100%; }
<section class="gallery-links"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img2"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img3"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img4"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1"> </section>
justify-content: flex-start
考虑到弹性盒作为一个整体向左侧错位:.gallery-links { display: flex; flex-flow: row wrap; justify-content: flex-start; align-items: center; border: 1px solid; } .gallery-img { flex-basis: 300px; margin: 10px; } .gallery-img img { width: 100%; }
<section class="gallery-links"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img2"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img3"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img4"> <img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1"> </section>
这是一个限制,flexbox
因为它只是一个一维布局解决方案。
但是 CSS 网格可以:
对于 2D 解决方案,首选CSS Grid 。请参阅下面的演示,您的问题已解决 -
使用. _ _
grid-template-columns: repeat( auto-fit, 300px)
为了使网格居中,我们使用
justify-content: center
.用于边距。
grid-gap
_
请参阅下面的演示:
.gallery-links {
display: grid;
grid-template-columns: repeat( auto-fit, 300px);
justify-content: center;
grid-gap: 10px;
border: 1px solid;
}
.gallery-img {
width: 100%;
}
<section class="gallery-links">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img2">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img3">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img4">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img1">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img2">
<img class="gallery-img" src="https://www.w3schools.com/howto/img_forest.jpg" alt="img3">
</section>
推荐阅读
- python - 组合成对的依赖numpy
- typescript - Firebase Analytics logEvent 打字稿错误
- elasticsearch - 使用 ElasticSearch 非法批量导入
- maple - 如何实现 u^k = M^k u_0?
- python - 如何为 queue.SimpleQueue 创建类型别名?
- raspberry-pi - Linux 图像上的 Uno 平台应用程序未显示
- sql - 使用来自不同表的信息更新表并增加增量
- r - 如何以图形方式表示分位数函数并在图形/绘图上表示其中位数?
- amazon-web-services - 为什么 CloudFormation 拆除会删除我的安全组入口?
- java - java,try 块在操作来自 try 范围之上的范围的变量时会产生错误