我有这个元素:
<div class="menubar">
<a href="http://home.com"><img src="../img/home_button.png"/></a>
<a href="http://home.com/a"><img src="../img/a_button.png"/></a>
<a href="http://home.com/b"><img src="../img/b_button.png"/></a>
<a href="http://home.com/c"><img src="../img/c_button.png"/></a>
</div>
我的目标是让菜单栏div的内容居中。
使用display: table;
和margin:auto;
实现了这一目标,但我正在使用的背景图片被裁剪为仅适合div的内容:
.menubar {
display: table;
margin: auto;
background-image:url(/img/menubar_background.png);
}
那么,我有另一个版本,两侧都增加了50%的填充,但问题是结果的总宽度是100%+按钮的宽度。
.menubar {
padding-right:50%;
padding-left:50%;
background-image:url(/img/menubar_background.png);
}
我通过使用max-width:960px
(100%)来实现更接近的目标,但仍存在一个问题:它实际上并没有向两侧应用相同数量的填充。它最终向左填充50%,向右移动到达960px到右边。
欢迎任何帮助!
答案 0 :(得分:5)
改为使用text-align。
.menubar {
text-align:center;
background-image:url(/img/menubar_background.png);
}
答案 1 :(得分:0)
如果你知道元素的宽度,你可以使用 calc
:
.menubar {
--menu-width: 112px;
width: var(--menu-width);
padding-left: calc((100% - var(--menu-width)) / 2);
padding-right: calc((100% - var(--menu-width)) / 2);
color: #4fff09;
background: gray;
}
<div class="menubar">
menu bar content
</div>