2012-03-19 127 views
5

我有一些舊的內容包含表格,其寬度用HTML寬度屬性指定,如下所示:<table width="250">。該屬性被CSS選擇器table的規則覆蓋。我可以停止這種覆蓋,以便表格具有在HTML attributute中指定的寬度(這不總是250像素,這只是一個示例)?我可以挑選出不應該用選擇器#column1 table覆蓋寬度的表格。停止CSS覆蓋HTML寬度屬性

+1

爲什麼你不能簡單地刪除重寫屬性的css'width'規則? – fcalderan 2012-03-19 13:18:56

+0

因爲這是在舊的導入內容的_lot_上。我可能會編寫一個查找替換腳本,它爲所有與#column1表匹配的表執行此操作,但是找到更簡單的方法會很好。 – tog22 2012-03-19 13:25:06

+0

我想最好刪除所有內聯的寬度和高度屬性,否則你將不得不添加其他內聯樣式,正如Christopher Kenney所建議的 – fcalderan 2012-03-19 13:30:13

回答

4

試試這個:

#column1 table { 
    width: auto; 
} 

只要你知道,CSS總是會覆蓋舊的HTML內嵌屬性。這在使用wysiwyg編輯器時通常是個問題。

我解決了由wysiwyg編輯器在cms中使用javascript和jquery生成的舊html問題。我遍歷表(S)和閱讀的寬度和高度屬性,然後我轉換爲內聯CSS:

var $table = $('#column1 table'); 
$table.css({ 
    "width" : $table.attr('width'), 
    "height" : $table.attr('height') 
}); 
+1

這不行,我試過了。它計算表格,好像沒有應用CSS或HTML寬度屬性。 – tog22 2012-03-19 13:25:23

+0

只需使用width:250px而不是auto。 – 2012-03-19 13:27:45

+0

@ tog22我添加了曾經使用的javascript(和jquery)解決方案。 – 2012-03-19 13:38:35

5

你不能用HTML覆蓋的CSS,但你可以添加屬性style 例如:

style = " width: 250px;" 

編輯:您可以通過將外部覆蓋它的CSS規則的結束,這將抵消有關任何其他的CSS屬性,你改變什麼重要的!

如:

#column1 table { 
    width: 250px !important; 
} 
+0

謝謝,但看到我對原始問題的澄清評論。 – tog22 2012-03-19 13:26:29

+0

用戶澄清後,這似乎是正確的答案:+1 – fcalderan 2012-03-19 13:34:37

+0

@ togg22:是的,!重要的可以幫助。但是,我不會將它用作style =「...」,而是用在樣式表中。否則,你可以做一個查找替換,無論如何推薦! – Chris 2012-03-19 13:48:56

0

請問您爲什麼使用這種內嵌html屬性?

除非你有很強的理由,否則我建議你將任何樣式相關的東西移到CSS。如果CSS有自己的文件,並且不包含內聯,那就好多了。

總是將內容與演示文稿分開是一種更好的做法。

+0

我知道,請參閱我對原始問題的澄清評論。 – tog22 2012-03-19 13:26:20

0

對我來說,一個可能的但不雅的回答是將CSS選擇器table的規則替換爲:not(#column1) table。但是,這隻適用於一些現代瀏覽器,而不是IE。

0

如上所述,我建議你使用一個樣式表!您只需將其實施到您的styles.css中:

table { 
    width:250px; 
} 

如果還不夠,可以添加!重要的是,這樣的:

table { 
    width:250px !important; 
} 

而在你的HTML的頭部添加的樣式表是這樣的:

<link rel="stylesheet" type="text/css" href="css/stlyes.css"> 

否則,你將需要添加的樣式=:直接「寬250像素」,以每個表。如果你想再次改變寬度,例如260px,你將不得不再次改變它們。

但是,如果您有權訪問您的HTML代碼,則建議您執行「查找替換」,無論如何要有乾淨的代碼。幾乎所有甚至非常簡單的TextEdit程序都應該有一個Find-Replace選項...

0

我知道這個問題在2年前被問到,但它可能對其他有類似問題的人有幫助。您可以使用CSS屬性選擇:

table:not([width]) { 
    width: 250px; 
} 

注意,它不會IE 9下工作,據我所知。

+0

我不認爲這回答我的問題嗎? – tog22 2014-11-21 12:07:55