[英]How to have equal padding on both side of a div. CSS
我有这个元素:
<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。
欢迎任何帮助!
改用文本对齐。
.menubar {
text-align:center;
background-image:url(/img/menubar_background.png);
}
如果您知道元素的宽度,您可以使用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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.