2013-07-16 48 views
1

這是一個奇怪的問題,但是一個相當特殊的情況。我正試圖將現代風格融入傳統網站。部分的問題是CSS重置這是新款式的一部分,其中包括這片CSS的:是否有可能在CSS中設置表格的寬度爲「auto」,但確認寬度屬性?

table { 
    width: 100%; 
} 

在傳統的網站,他們沒有這種風格,並有風格的網站假設表將縮小以適應。從表面上看,這是一個簡單的除了一個過渡樣式表:

table { 
    width: auto; 
} 

然而,現在每一次,表元素有width屬性。沒有應用任何CSS,這個屬性是受到尊重的,但是一旦應用了CSS「修復」,表格就會縮小到最小。

我可以編寫一些JavaScript來檢測具有width屬性的表並使用它來定義它們的樣式,但我很好奇:有沒有辦法在純CSS中執行它?

回答

2

您可以排除基於使用:not()屬性:

鏈接到演示:http://tinker.io/8e18e/0

/* styles for tables with no "width" attribute */ 
table:not([width]) { 
    width: auto; 
} 
+0

當然!我沒有將它添加到過渡樣式表中,而是調整了重置,以便將沒有寬度屬性的任何表設置爲100%寬。感謝提醒我關於':not()' –

0

不,CSS沒有辦法說「使用此屬性替代的陳舊錶示屬性」或類似。

0

是的。刪除width屬性並使用CSS而不是棄用的屬性定義它們的寬度。添加一些理智的表類,併爲這些類指定你期待的寬度。

+0

我敢肯定那是OP的意圖,但它不會在過渡階段幫助不大。 – cimmanon

0

你可以爲表中的測試變化顯示,到沒有設置寬度和處理填充,保證金或箱子大小。 http://tinker.io/8e18e/1

table { 
    display:block; 
    background:gray; 
} 
td, tr { 
    width:100%; 
    display:table-cell; 
} 
table[width], tr { 
    border: 1px solid; 
    table-layout:fixed; 
    display:table; 
}