我需要设计一个菜单,其中菜单始终居中,具有可变数量的项目、浏览器分辨率,并且项目将左对齐(菜单在页面中居中,但项目左对齐)。
(如您所见,它根本没有居中)。
这是我的代码:
<html>
<head>
<style type="text/css">
.extPanel{
background-color:#555;
padding: 0px 20% 0px 20%;
display: table;
}
.split{
clear: both;
}
.menuElement{
float:left;
background-color:#aaa;
margin: 0px 20px 20px 0px;
width: 200px;
height: 200px;
text-align: center;
}
</style>
</head>
<body>
<div class="extPanel">
<div class="menuElement">item1</div>
<div class="menuElement">item2</div>
<div class="menuElement">item3</div>
<div class="menuElement">item4</div>
<div class="split"></div>
External Panel. 20% left and right padding.
</div>
</body>
</html>
如您所见,外部 div 有 20% 的填充以使项目居中。项目向左浮动。项目根本不居中,因为存在剩余空间,其中 item4 没有足够的空间,所以它浮动到下一行。
如果菜单只有一个菜单项,则此项向左浮动,因此菜单未居中更明显。如果我尝试使用某种样式将所有项目居中(文本对齐或类似的东西),项目 4 将出现在项目 2 下方居中,我需要项目向左对齐。
我需要:
- 位于页面中心的菜单,包含任意数量的项目
- 项目居中
- 跨浏览器兼容性(至少到 IE8 和移动浏览器)
- 没有 JavaScript