【发布时间】:2015-10-13 03:21:53
【问题描述】:
我正在尝试创建一个由三部分组成的简单页面导航:
- 前几个页码(如果有)
- 当前页码(必须居中)
- 一些即将出现的页码(如果有)
重要的是当前页码始终在父容器中水平居中。其他两个部分应该平均占用剩余的水平空间。
JSFiddle 说明了我解决此问题的两次尝试。
解决方案 1:使用 text-align: center。这可以达到预期的效果,但前提是两侧的宽度相等。如果不是,当前页码将不在中心。
HTML
<div class="container">
<input type="button" value="47">
<input type="button" value="48">
<input type="button" value="49">
<input type="text" size="5" maxlength="5" value="50">
<input type="button" value="51">
<input type="button" value="52">
<input type="button" value="53">
</div>
CSS
.container, input {
text-align: center;
}
解决方案2:使用手动指定的宽度来均匀分布水平空间。这在所有情况下都有效地将当前页码居中,但它需要您对宽度进行硬编码。
HTML
<div class="container">
<div class="left">
<input type="button" value="47">
<input type="button" value="48">
<input type="button" value="49">
</div>
<div class="right">
<input type="button" value="51">
<input type="button" value="52">
<input type="button" value="53">
</div>
<div class="center">
<input type="text" size="5" maxlength="5" value="50">
</div>
</div>
CSS
.left {
width: 40%;
float: left;
text-align: right;
}
.right {
width: 40%;
float: right;
text-align: left;
}
.center {
width: 20%;
margin-left: 40%;
}
这些解决方案都没有真正做到我想要的。有没有办法让当前页码居中,同时允许其他元素对齐到其自然大小,而不是任意像素或百分比宽度?
【问题讨论】: