我在实现分页,它需要居中。问题是链接需要显示为块,因此它们需要浮动。然后,text-align: center;对他们不起作用。我可以通过给包装器div左填充来实现它,但每一页都有不同的页数,所以这是行不通的。这是我的代码:

.pagination { text-align: center; } .pagination a { display: block; width: 30px; height: 30px; float: left; margin-left: 3px; background: url(/images/structure/pagination-button.png); } .pagination a.last { width: 90px; background: url(/images/structure/pagination-button-last.png); } .pagination a.first { width: 60px; background: url(/images/structure/pagination-button-first.png); } <div class='pagination'> <a class='first' href='#'>First</a> <a href='#'>1</a> <a href='#'>2</a> <a href='#'>3</a> <a class='last' href='#'>Last</a> </div> <!-- end: .pagination -->

我想要的是:


当前回答

删除浮动,并使用inline-block可以解决你的问题:

 .pagination a {
-    display: block;
+    display: inline-block;
     width: 30px;
     height: 30px;
-    float: left;
     margin-left: 3px;
     background: url(/images/structure/pagination-button.png);
 }

(删除以-开头的行,并添加以+开头的行。)

.pagination { text-align: center; } .pagination a { + display: inline-block; width: 30px; height: 30px; margin-left: 3px; background: url(/images/structure/pagination-button.png); } .pagination a.last { width: 90px; background: url(/images/structure/pagination-button-last.png); } .pagination a.first { width: 60px; background: url(/images/structure/pagination-button-first.png); } <div class='pagination'> <a class='first' href='#'>First</a> <a href='#'>1</a> <a href='#'>2</a> <a href='#'>3</a> <a class='last' href='#'>Last</a> </div> <!-- end: .pagination -->

inline-block可以跨浏览器工作,即使在IE6上,只要元素原来是一个内联元素。

引用自quirksmode:

一个内联块被放置在内联(即。与相邻内容在同一行),但它表现为块。

这通常可以有效地取代浮动:

这个值的真正用途是当您想给内联元素一个宽度时。在某些情况下,一些浏览器不允许在真正的内联元素上设置宽度,但如果您切换到display: inline-block,则允许设置宽度。(http://www.quirksmode.org/css/display.html#inlineblock)。

来自W3C规范:

[inline-block]使元素生成一个内联级块容器。内联块的内部被格式化为块框,元素本身被格式化为原子内联级框。

其他回答

text-align: center;
float: none;

IE7不知道内联块。 你必须补充:

display:inline;
zoom: 1;

在px中设置容器的宽度,并添加:

margin: 0 auto;

参考。

我认为最好的方法是用边距代替显示。

例如:

.pagination a {
    margin-left: auto;
    margin-right: auto;
    width: 30px;
    height: 30px;    
    background: url(/images/structure/pagination-button.png);
}

检查结果和代码:

http://cssdeck.com/labs/d9d6ydif

只是添加

left:15%; 

到我的CSS菜单

#menu li {
float: left;
position:relative;
left: 15%;
list-style:none;
}

也有定心技巧吗