对于分页,我想使用这样的元素的水平对齐:
|<first page> | <previous page> | page X of N | <next page> | <last page>|
元素page X of N
应始终位于整行的中间,即使缺少其他元素之一。 E.g。
|<first page> | <previous page> | page N of N |
浮动元素应始终直接连接到中心的元素。
我的方法看起来像这样(搜索结果表的最后一行):
<tr colspan="4"><td class="pager">
<ul style="margin:0;">
<li style="display:inline-block; float:left;"> outer left </li>
<li style="display:inline-block; float:left;"> inner left </li>
<li style="display:inline-block; float:none; text-align:center; position:absolute; left:50%; width:100px; margin-left:-50px;"> always centred </li>
<li style="display:inline-block; float:right;"> outer right </li>
<li style="display:inline-block; float:right;"> inner right </li>
</ul>
</td></tr>
但结果看起来像这样,即浮动元素没有“附加”到居中元素:
|<first page> | <previous page> | page X of N | <next page> | <last page>|
|<-- (left border) (right border) -->|
答案 0 :(得分:4)
基本上,使用包含3列的表格。在左右列中添加一个固定宽度的包装,与中间列对齐。
该演示显示了各种分页栏,page X of N
链接左右两侧的平衡和不平衡链接。为了使发生的事情变得更加明显,背景颜色已被添加到不同的元素中。
关键点:
page X of N
链接放在中间列。page X of N
左侧的所有链接放在左列内容包装器中,同样将右侧显示的所有链接放在右列内容包装器中。<强> HTML 强>
<table class="pagination">
<tr>
<td class="column1">
<div class="content">
<span>left</span>
</div>
</td>
<td class="column2">
<span>centered</span>
</td>
<td class="column3">
<div class="content">
<span>right</span>
</div>
</td>
</tr>
</table>
<强> CSS 强>
.pagination {
width: 100%;
}
.pagination .column1 {
text-align: right;
}
.pagination .column2 {
width: 1px;
}
.pagination .column3 {
text-align: left;
}
.pagination .content {
display: inline-block;
width: 200px;
}
.pagination .column1 .content {
text-align: right;
}
.pagination .column3 .content {
text-align: left;
}
.pagination span {
display: inline-block;
height: 20px;
white-space: nowrap;
}
答案 1 :(得分:0)
元素未附加到居中元素,因为您将它们浮动到左/右边框。根据我的理解,为了达到你想要的效果,你应该失去浮动并使整个ul
居中。
答案 2 :(得分:0)
不要浮动任何东西,只需将外部/父元素设置为text-align: center
<ul style="margin:0; text-align:center;">
<li style="display:inline-block;"> outer left </li>
<li style="display:inline-block;"> inner left </li>
<li style="display:inline-block;"> always centred </li>
<li style="display:inline-block;"> outer right </li>
<li style="display:inline-block;"> inner right </li>
</ul>
答案 3 :(得分:0)
尝试位置:绝对的col1,2,4和5左右%?
答案 4 :(得分:0)
我找到了另一种非常简单的解决方案:
集中所有内容,只需隐藏元素:visibility: hidden
:
<div style="text-align: center;">
<span style="visibility: hidden;"> outer left </span>
<span> inner left </span>
always centred
<span> inner right </span>
<span> outer right </span>
</div>
这导致:
| <inner left> always centred <inner right> <outer right> |
| <- left border | right border -> |
| centre |