2011-11-10 53 views
14

以下是我從未想過我會說的內容:我在Firefox和Chrome中遇到了問題,但在IE中工作正常!文本對齊在單元格中的表格中(<table>內部的​​)

這很簡單,但我不明白爲什麼它不工作:

我有一個單元格中的表,我有style="text-align:right"對細胞,但該表是保持留在Firefox和鉻(在IE中,它乖乖地向右...)。如果我把align = right放在cell標籤中,那麼它就可以工作,但我不想這麼做。

代碼基本上是:

<table width="1000" border="1" cellpadding="0" cellspacing="0"> 
<tr> 
<td style="text-align:right"> 

<table border="1"> 
<tr><td>Hello</td><td>Hello 2</td></tr> 
</table> 

</td> 

<td>Hello 2</td></tr> 
</table> 

我不想嵌套表是寬度= 100%之類的東西......

任何人都可以請向我解釋爲什麼它不」工作,以及如何解決它,也許爲什麼它在IE瀏覽器,但不是Firefox或Chrome的作品?

+1

我認爲這在FF和Chrome中是正確的。該表不是文本,所以文本對齊不應該影響它。對齊應該適用於任何內容。 – Randy

+0

謝謝 - 那麼我將如何使用CSS來對齊單元格中的表格?這是新的嗎?幾年後我又回到了網站的製作過程中,我從來沒有遇到過這個問題? – user1039769

+1

文本對齊會影響內聯和內嵌塊元素,而不僅僅是文本。 – maxedison

回答

9

我的猜測是,Chrome和FF實際上是正確的渲染它。 text-align可能不應該影響table元素。但是,將float:right應用於表格將執行您所需的操作。

+0

謝謝大家!正是我想要的。 – user1039769

6

我想補充說,對齊表相對於其容器的CSS方式是使用margin屬性。

如果您想將其與中心對齊,則必須添加margin: 0 auto;;如果您想將其對齊到右側,則必須添加margin-left: auto;

正如@maxedison所說,text-align只能與inlineinline-block元素一起使用,所以另一種解決方法是更改​​你的內部表以取得某些顯示值。

您還需要記住text-align從「容器到內容」工作,這意味着它通常應用於容器以影響其內容(適用於影響其內聯內容的內容,如文本內容) ,並且margin: 0 auto從'內容到容器'工作,這意味着它通常應用於塊元素並影響其與其容器相關的位置(應用於div以使其居中)。

+0

操控*'邊緣'*屬性完美運行,謝謝! – informatik01

1

如果你要修復它(不與完整功能),你可以這樣寫:

table { 
    display: inline-block; 
} 

這使得你的表能與text-align: center;爲中心,如果應用到父元素(一個或多個)。

0

,當你不希望的div浮動做,你可以試試這個: http://jsfiddle.net/NvEZ8/

<div style="text-align:right;"> 
    <table style="display:inline-block"> 
     <tbody> 
     <tr> 
      <td></td> 
      <td>one</td> 
      <td>two</td> 
     </tr> 
     </tbody> 
    </table> 
</div> 

它看起來像文本對齊(用DOCTYPE HTML)隻影響inline-block的在Chrome和不內聯唯一元素。通過內聯代替inline-block,並且它不再適用於我的Chrome

相關問題