2012-02-06 87 views
1

我正在修改一個陳舊的網站,用表格& css。在任何人說什麼之前,切換到純CSS不是一種選擇。如何只設計直接的孩子?

我有這樣的結構:

table.grid 
    tr 
    td 
     table 
     tr 
      td 

並在CSS,有.grid td用填充。

似乎.grid td風格正在應用於內部td(鏈條最遠的一個)。有沒有辦法告訴.grid td風格只有td標籤內的特定表?

(我根本不是一個CSS高手,所以如果我在這裏找錯了樹,請讓我知道)

回答

3

>字符用於指示唯一的直接後裔。

.grid > tr > td { /* style me! */ } 

爲了解決@ bazmegakapa的有關潛在tbody關心,我會改變它是:

.grid > tr > td, .grid > tbody > tr > td { /* no worries */ } 
+0

很完美!我會接受你作爲你的第一個答案! – 2012-02-06 15:16:09

+1

@MattGrande有些瀏覽器會插入一個'tbody'元素,因此它可能不適用於所有元素。 – kapa 2012-02-06 15:19:19

3

嘗試:

table.grid > tr > td 

如果碰到表可能甲肝probs withad,tbody,tfoot

1

您需要> selector。使用table.grid > tr > td僅適用於table正下方的td元素。

1

你可以通過內部trtable.grid

.grid > tr > td 
4

table.grid > tr > td, table.grid > tbody > tr > td應該做你想要的東西只選擇td S比具體 - a > b指定爲選擇器應用,b必須的直系後裔a。你需要第二種形式,因爲許多瀏覽器會生成一個tbody。

這不起作用:.grid tr > td,因爲內表是.grid的後裔。

+3

除了一些瀏覽器會插入一個'tbody'元素來糾正無效的HTML。 – kapa 2012-02-06 15:18:10

-1

試着做這樣的:

table.grid > tr > td 

但我不知道它的工作原理。

相關問題