如何调整flex布局header中h1和h2元素的间距使其相互靠近
原因说明
你当前header设置的justify-content: space-evenly会将容器内的剩余空间平均分配到每个元素的两侧及容器两端,所以h1和h2之间会自动产生较大间距。同时浏览器默认会给h1、h2元素添加上下外边距,也会额外撑开二者的间距。
可选解决方案
方案1:使用justify-content: center + 自定义边距控制
整体保持两个元素垂直居中的前提下,精准控制二者间距:
header { color: white; background-color: rgba(129, 187, 70, 0.795); height: 20%; display: flex; flex-direction: column; align-items: center; /* 替换原有space-evenly配置 */ justify-content: center; } header h1 { font-size: 3em; font-weight: 200; /* 重置默认边距,仅保留下边距控制和h2的间距,数值可自行调整 */ margin: 0 0 8px 0; } header h2 { font-weight: 200; font-size: 2em; /* 重置默认边距 */ margin: 0; }
方案2:使用flex布局gap属性直接控制间距
如果你不需要修改原有的整体对齐规则,只想调整两个元素之间的间距,可以保留原有justify-content配置,直接添加gap属性即可:
header { color: white; background-color: rgba(129, 187, 70, 0.795); height: 20%; display: flex; flex-direction: column; align-items: center; justify-content: space-evenly; /* 新增gap属性控制子元素间距,数值可自行调整 */ gap: 8px; } /* 重置h1、h2默认margin,避免和gap产生双重间距 */ header h1, header h2 { margin: 0; }
gap是flex、grid布局通用的间距控制属性,无需单独给子元素设置边距,后期维护更方便。
内容的提问来源于stack exchange,提问作者Lucas de Araújo Magalhães
相关产品推荐
相关产品推荐

