Header栏与div无法垂直居中问题求助
问题解决:Header元素垂直居中失效
你的问题根源在header的CSS属性写法错误:
header { background-color: #192a56; padding-top: 16px 0; /* 该写法无效,padding-top仅支持单个长度值 */ color: #fff; }
padding-top只能设置一个数值,你写的16px 0不符合语法规则,浏览器会直接忽略这个错误属性,导致header仅靠底部内边距撑高度,内部元素自然贴在顶部。
修正方案
将padding-top: 16px 0;替换为padding: 16px 0;,这样header上下都会有16px内边距,再配合header>.container中的align-items: center,就能实现元素垂直居中:
header { background-color: #192a56; padding: 16px 0; /* 正确的上下内边距写法 */ color: #fff; }
同时可以删除header>.container里的padding-bottom: 16px,避免重复设置内边距。修正后的完整CSS代码如下:
* { margin: 0; padding: 0; box-sizing: border-box; font-family: "Roboto", sans-serif; } .container { max-width: 1024px; width: 100%; margin: 0 auto; } header { background-color: #192a56; padding: 16px 0; color: #fff; } header>.container { display: flex; justify-content: space-between; align-items: center; } nav { background-color: #575fcf; padding: 16px 0; } nav li { list-style: none; display: inline; margin-right: 16px; font-size: 18px; font-weight: bold; text-transform: uppercase; } nav li a { color: #fff; text-decoration: none; } .menu-hamburguer { width: 32px; } .menu-hamburguer span { height: 2px; width: 100%; background-color: #fff; display: block; margin-bottom: 4px; }
修改后,header内的标题和汉堡菜单即可正常垂直居中显示。
内容的提问来源于stack exchange,提问作者Adelson Siqueira
相关产品推荐
相关产品推荐

