如何实现列表项垂直居中?附代码及效果参考
解决垂直居中布局问题
嘿,我瞅了你这个布局问题啦!你现在用的justify-content: space-between会把容器里的元素分别顶到顶部和底部,中间的元素夹在中间,这显然不是你想要的整体垂直居中效果。咱们改两行代码就能搞定:
修改后的容器样式
把原来的justify-content: space-between换成center,再给元素之间加上合适的垂直间距(用gap最方便):
.hwrap header .h-position { top: 0; left: 0; bottom: 0; width: 135px; position: fixed; display: flex; flex-direction: column; justify-content: center; /* 换成center实现整体垂直居中 */ gap: 20px; /* 控制元素之间的垂直间距,数值按需调整 */ }
为啥这样改?
position: fixed加上top:0; bottom:0已经让这个容器占满了左侧的垂直空间;flex-direction: column保证元素是垂直排列的;justify-content: center会把所有子元素作为一个整体,在容器的垂直方向上居中对齐;gap是Flex布局里控制子元素间距的现代属性,比一个个加margin省事多了。如果需要兼容旧浏览器,也可以给每个子元素加margin-bottom,最后一个子元素去掉margin-bottom就行。
要是你还有其他样式干扰,比如子元素自带的margin/padding,微调一下数值就能完美匹配你要的效果啦!
内容的提问来源于stack exchange,提问作者jsjsjs




