如何消除Grid布局中Google与Developer Jr后的过大间距?
解决"Google"与"Developer Jr"之间过大间距的问题
问题根源
你的.project-xp采用了grid-template-columns: 1fr 1fr布局,导致<h3>和<span>各自占据一整列网格单元,两者之间的间距来自网格的列间隙(即gap: 10px 20px中的20px)。这就是调整padding或align属性无效的核心原因——它们不在同一个网格单元格内。
修复方案
以下两种简单方法可解决该问题:
方法一:将标题元素包裹在同一容器中
把<h3>和<span>放入同一个div容器,让它们共享一个网格单元格,即可自由控制两者间距:
<section id="projects"> <div class="project-xp"> <div class="title-group"> <h3 class="project-title">Google</h3> <span class="project-title">Developer Jr</span> </div> <p class="project-p">paragraph - text test.</p> <ul class="project-skills"> <li>HTMl</li> <li>CSS</li> <li>JavaScript</li> <li>UI Design</li> <li>UX Design</li> </ul> </div> <div class="project-xp"> <div class="title-group"> <h3 class="project-title">google</h3> <span class="project-title">Developer Jr</span> </div> <p class="project-p">paragraph - text test..</p> <ul class="project-skills"> <li>HTMl</li> <li>CSS</li> <li>UI Design</li> <li>UX Design</li> </ul> </div> </section> <style> .project-xp { display: grid; grid-template-columns: 1fr 1fr; max-width: 1200px; background-color: #FDF5E8; padding: 30px; margin: 0 auto; justify-items: left; gap: 10px 20px; margin-bottom: 40px; border-radius: 4px; } /* 新增标题组样式,自定义间距 */ .title-group { display: flex; gap: 10px; /* 可修改此值调整标题间间距 */ align-items: baseline; } .project-title { color: #31110B; font-size: 1.5rem; font-family: "fira sans", system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; font-weight: 500; line-height: 1.1; margin: 0px; } .project-p { color: #31110B; font-size: 1.25rem; font-family: "fira sans", Arial, Helvetica, sans-serif; font-weight: 400; max-width: 35ch; padding: 0px; line-height: 1.6; } .project-skills { display: flex; flex-wrap: wrap; gap: 10px; max-width: 40ch; padding: 0px; } .project-skills li { color: #462A00; font-size: 1rem; line-height: 1.4; font-family: "fira sans", Arial, Helvetica, sans-serif; list-style: none; padding: 5px 15px; background-color: #F0D5AB; margin-bottom: 5px; border-radius: 4px; } </style>
方法二:调整网格模板结构
通过grid-template-areas让标题区域横跨两列,后续元素保持原布局:
.project-xp { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "title title" "desc skills"; max-width: 1200px; background-color: #FDF5E8; padding: 30px; margin: 0 auto; justify-items: left; gap: 10px 20px; margin-bottom: 40px; border-radius: 4px; } .title-group { grid-area: title; display: flex; gap: 10px; align-items: baseline; } .project-p { grid-area: desc; } .project-skills { grid-area: skills; }
说明
两种方法均有效,方法一操作简单,适合快速修复;方法二更适合需要精确控制网格区域的复杂布局场景。调整.title-group中的gap值即可自定义标题间的间距大小。
内容的提问来源于stack exchange,提问作者fran _
相关产品推荐
相关产品推荐

