【发布时间】:2013-11-01 19:44:35
【问题描述】:
我正在尝试将五个水平菜单元素与 'float:left' 对齐在一个容器内,该容器跨越 80% 的屏幕,最小为 960 像素。为此,我最初将它们的最小宽度设置为 192px (960/5) 并将它们的宽度设置为 20%,但很快意识到这与添加 1px 边框效果不佳,导致其中一个按钮被“扔到海里”。
将宽度分别更改为 19.895333% 和 191px 解决了这个问题,但这显然是一个 hacky 解决方案,它还在菜单右侧留下了 2-3 像素的丑陋空间。
有没有更优雅的方式来对齐这些元素并考虑由边框、填充等添加的额外宽度?我已经尝试过“溢出:隐藏”来简单地隐藏任何可能戳到容器外的东西,但这只是隐藏了整个第 5 个按钮。
一张图来说明结果:
html代码:
<div class="menucontainer">
<div class="menutab" id="menutab_first">News</div>
<div class="menutab">Game Guide</div>
<div class="menutab">Articles</div>
<div class="menutab">Media</div>
<div class="menutab" id="menutab_last">Community</div>
</div>
css代码:
.menucontainer {
height: 26px;
margin-left: auto;
margin-right: auto;
border-width: 1px;
border-style: solid;
border-color: #303030 #101010 #000 #101010;
border-radius: 0px 0px 8px 8px;
}
.menutab {
line-height: 26px;
float: left;
width: 19.895333%;
text-align: center;
min-width: 191px;
border-right: 1px solid #202020;
background-image: url('../img/menubutton2.png');
background-size: 100% 100%;
font-family: 'Cabin', sans-serif;
}
#menutab_first {
border-radius: 0px 0px 0px 8px;
}
#menutab_last {
border-right: 0px;
width: 20%;
min-width: 192px;
border-radius: 0px 0px 8px 0px;
}
提前谢谢你!
【问题讨论】:
标签: css css-float border alignment variable-width