如何让Flex容器占满剩余视口并居中内部元素?
解决方案
要实现#about-content占据导航栏与标题之外的剩余视口,同时保持内部元素居中,只需对CSS做以下调整:
核心修改思路
- 让页面根容器(
body)成为垂直方向的Flex容器,确保能分配剩余空间 - 给
#about-content设置flex: 1,让它自动填充标题下方的剩余视口高度 - 重置默认样式避免浏览器自带边距干扰布局
修改后的完整CSS代码
/* 重置默认样式,消除浏览器自带的margin/padding */ * { margin: 0; padding: 0; box-sizing: border-box; } body { min-height: 100vh; /* 让body至少占满视口高度 */ display: flex; flex-direction: column; /* 垂直排列子元素 */ } #about-header { font-size: clamp(2rem, 2vw, 4rem); text-align: center; padding: 25px; color: #47DA44; font-family: 'Rubik', sans-serif; } #about-content { flex: 1; /* 关键:占据body中除header外的剩余空间 */ flex-direction: row-reverse; background-color: rebeccapurple; display: flex; align-items: center; justify-content: center; overflow-y: auto; /* 当内容超过容器高度时,允许垂直滚动 */ } #about-text { font-size: clamp(0.6rem, 2vw, 1.2rem); margin: 0 25px 0 25px; color: white; line-height: 1.6; /* 可选:优化文本可读性 */ } #pfp { height: auto; max-width: 19vw; width: 19vw; margin: 0 25px 0 25px; border-radius: 50%; }
关键说明
*选择器的重置:消除浏览器默认的内外边距,避免布局偏移body的min-height: 100vh+flex-direction: column:构建垂直的弹性布局框架,确保页面能撑满视口#about-content的flex: 1:这是核心属性,告诉Flex容器将剩余的所有空间分配给这个元素overflow-y: auto:当文本内容过多超出容器高度时,会自动显示滚动条,避免内容溢出页面
内容的提问来源于stack exchange,提问作者Azuronate
相关产品推荐
相关产品推荐

