html - 如何使包含重复的网格居中(自动调整,最小最大(15rem,1fr));
问题描述
我正在整理我的作品集网站,但遇到了一个问题。我使用了自动调整功能,因为我希望它具有响应性,并且我每个月都会继续在那里添加新图像。
我发现我无法以我想要的方式居中,因为网格正在用我现在不需要的其他列填充空白空间,所以我的网格正在亲吻我的网站的左侧。请帮助小伙伴们,你们是最棒的!:)
<section class="projects">
<h2 class="h2">Projects</h2>
<div class="projects__part">
<h4 class="h4">Primary projects</h4>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
</div>
<div class="projects__part">
<h4 class="h4">Secondary projects</h4>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
<div class="projects__item">
<img src="https://hlfppt.org/wp-content/uploads/2017/04/placeholder.png" class="projects-item__img">
</div>
</div>
</section>
.projects {
&__part {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
/*DESIRED RESPONSIVE EFFECT:
h4 {
margin-left: 22rem;
}
margin-left: 35rem;
*/
}
&-item {
&__img {
width: 14rem;
height: 14rem;
border-radius: 100%/100%;
}
}
h4 {
grid-column: 1 / -1;
}
}
这是我的代码:https ://codepen.io/maja5252/pen/XPPaBL?editors=1100#0
如果这篇文章的格式不正确,再次抱歉。仍然不知道如何将我的代码拆分为 HTML 和 CSS 部分:)
解决方案
您的代码有几个问题:
-CSS 网格喜欢控制其列的大小,并且您的图像具有固定的高度/宽度。如果你对你的代码进行 DevTools 检查,你会看到你的第 3 列因此溢出了你的网格。我将高度/宽度更改为100%/100%
. 如果您需要方形图像,请在 Photoshop 而不是 CSS 中解决该问题。
- 使整个网格居中非常简单,您需要做的就是添加margin: 0 auto
,因为它是块级元素。但是,块级元素占据了视口 100% 的宽度,因此将 100% 宽度的元素居中不会产生任何可见效果。我将宽度设置为 80% 以演示这看起来如何居中,但您可以使用任何非 100% 的值来实现此效果。
-我也不确定你auto-fit
在你的网格中做什么。只需使用1fr
它就可以很好地工作并且代码很干净。
-我还为您制作了整个网格响应-不确定您是否要这样做,但不妨展示一下。
所有更正的 CSS 问题一起:
.projects {
margin: 0 25px;
@media (min-width: 450px) {
width: 80%;
margin: 0 auto;
}
&__part {
display: grid;
grid-gap: 25px;
grid-template-columns: 1fr;
@media (min-width: 450px) and (max-width: 768px) {
grid-template-columns: 1fr 1fr;
}
@media (min-width: 768px) {
grid-template-columns: 1fr 1fr 1fr;
}
}
&-item {
&__img {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
h4 {
grid-column: 1 / -1;
}
}
推荐阅读
- python - 在 catplot 子图标题中仅显示列值而不是 column_name = 列值
- php - 在php中验证密码,至少有两个大写,两个小写和两个数字,顺序不限
- c# - NopCommerce:如何通过更新自定义插件的项目构建输出路径来生成 DLL 文件
- python - 从不均匀的大熊猫数据框中创建具有多个数据框拆分的字典
- python - 将张量作为参数传递给函数
- perl - 用 Perl 分割大文本文件
- r - R中数据帧的逐行比较
- css - Bootstrap- 2 个堆叠在小屏幕上的 div。彼此相邻,在大屏幕上向左推
- reactjs - 如何将 payumoney 支付网关与 reactjs 集成?
- deep-learning - PyTorch 不会使初始权重随机化