2010-09-27 85 views
19

我想:是否有一個等效於'align =「center」'的CSS?

margin-left: auto; 
margin-right: auto; 

但它不居中在我的表格單元格的元素。我有<td>中的文本和<span>元素的組合。

一旦我在任何<td>元素中設置'align =「center」',它確實居中。

如何在樣式表中實現這一點?

順便說一下,當我做text-align: center適用於文本。但不適用於其他元素,如<span> s。

編輯:

跨度有以下類,如果影響對齊問題:

.dot { 
    display: block; 
    width: 10px; 
    height: 10px; 
    background: #333; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -khtml-border-radius: 5px; 
} 
+2

注意:'margin:0 auto;'在代碼行 – jcolebrand 2010-09-27 01:20:15

+0

中做同樣的事情謝謝@drachenstern。總是想方設法減少不必要的代碼:) – marcamillion 2010-09-27 01:22:48

+0

@drachenstern:不,它不 - 證明:http://jsfiddle.net/pzRPA/11/和http://jsfiddle.net/pzRPA/10/ – Crozin 2010-09-27 01:33:27

回答

22

margin:0 auto;將上

  • 塊級非浮動,靜態/相對定位的元素工作與明確的寬度設定
  • 固有寬度的元素,如圖像/對象/表

text-align:center將工作

  • 內嵌/直列塊

您的具體情況,你可以做的可能..

#container { text-align:center; } 
#container span.block-level-spans { margin: 0 auto; } 

使內部inline-block,而不是block跨度。

編輯:

直列塊:此值使 一個元件生成的塊中,它本身是 流作爲單一行內框,類似於 到一個替換元件。 的內部將一個內嵌塊格式化爲一個 塊,並且該元素本身是 格式化爲內聯替換 元素。

+0

很棒......讓span'inline-block'成爲可能,並且添加span-block-level-span選擇器似乎已經成功了。驚人!你能提供一個關於'塊級跨度'做什麼和它爲什麼起作用的鏈接?謝謝。 – marcamillion 2010-09-27 01:32:16

+1

值得注意的是'margin:0 auto'在IE上不起作用,除非你用'DOCTYPE'強制它進入(所謂的)符合標準的模式,這是你應該做的。 – cletus 2010-09-27 01:33:44

+0

內聯塊基本上是一個允許接收寬度/高度的內聯元素。這就像一個浮動,除非你不必擔心它清理。可以給它一個垂直對齊。有時候,如果它沒有正確對齊頂部,你必須指定'頂部'。 – 2010-09-27 01:36:10

-3

我做了谷歌快速搜索,發現這一點:

跨度內聯元素,因此不能對齊。將其設爲p或 div而不是span,或者使用 display:block明確製作跨度塊級別。

在實測值:Velocity Reviews Forumn Link

+0

更進一步,在這篇文章中還有更多信息,具體來說就是:text-align將範圍內的文本居中。由於文本所包含的文本範圍僅爲 ,因此將該文本居中放置無效。 要將跨度居中,您需要應用文本對齊:center;不管 塊級元素是跨度的父級。 – PatrickV 2010-09-27 01:26:56

+0

審查低質量的帖子:不!引用的討論是從2005年開始的.CSS允許您現在完全改變元素的外觀。 – ElmoVanKielmo 2014-07-28 14:32:53

相關問題