2011-03-28 1047 views
12

我正在創建HTML片段以允許其他人向其網站添加功能(它是一個投票部件)。我創建了HTML的網頁摘要:如何清除所有CSS樣式

<div> 
    [implementation of my voting widget] 
</div> 

我花了很多時間去這個小部件恰到好處的格式。它在不導入樣式表的示例網頁中效果很好。

但是,當我將小部件添加到Drupal站點的頁面上時,導入的CSS會對我的格式造成嚴重破壞。我希望我的HTML片段忽略所有CSS樣式表。這可能嗎?

無論是否有可能,有沒有更好的解決方案?

+0

如何在不使用CSS的情況下對小部件進行格式化? – 2011-03-28 04:14:56

+0

@Alastair Pitts:他是。他只是不希望頁面中的CSS樣式被其小部件繼承。 – 2011-03-28 04:16:12

+0

@Alastair:with inline CSS – 2011-03-28 04:17:17

回答

8

而不是依賴於沒有被任何導入樣式表覆蓋CSS樣式的,你應該給你的widget一個唯一的ID,並確保所有的款式都該ID的衍生物,確保實現任何樣式您不想被重寫(marginpadding等):

<div id="votify"> 
    [implementation of my voting widget] 
</div> 

#votify {} 
#votify ul {} 
#votify div span {} 
/* etc */ 
+0

是的,這是如何jQuery UI它(雖然他們使用特定的類命名結構) – 2011-03-28 04:26:03

+0

他希望第二方用戶能夠放在他的小工具,與內聯樣式,而不必混淆樣式表。所以他想要以某種方式清除給定'div'中的所有非本地風格的所有內容。 – 2011-06-09 20:02:18

4

你可以嘗試使用重置樣式表:

http://meyerweb.com/eric/tools/css/reset/

當然,你不希望覆蓋的頁面的CSS,但你可以得到關於如何重置您的Widget使用的樣式一個想法,使用你的個人CSS。所以像...

#voting-widget * { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    font-size: 100%; 
    font: inherit; 
    vertical-align: baseline; 
} 

我希望這會有所幫助。

+0

我的小部件不能干擾現有的佈局,所以我不認爲我可以導入樣式表。這樣做會很醜陋。 – 2011-03-28 04:18:59

+0

我並不是建議你導入一個樣式表......我建議你使用這篇文章中介紹的思路來重新設置樣式,以便你可以清楚你的小部件。 – Hristo 2011-03-28 04:20:20

+0

@Jeff你必須做它內聯... – 2011-06-09 20:03:09

1

將您的小部件CSS重置爲默認值,然後添加您的格式代碼。這將清除任何頁面樣式,以便您可以從乾淨的平板上工作。

div#widget, div#widget * { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    font-size: 100%; 
    /* ... whatever other reset code ... */ 

    /* ... then add your own code ... */ 
    color: red; 
} 
1

,不使用樣式表,我認爲你必須明確地設置所有邊界,補白,字體等的風格屬性,因此優先於任何CSS表單。