2012-01-09 99 views
0

有什麼辦法可以覆蓋瀏覽器的CSS代碼中定義的!important屬性,而不是使用每個元素樣式?看起來,瀏覽器在stylelink標記中定義頁面的CSS之後加載其預編譯的CSS。我想從默認複選框和單選按鈕中刪除邊框和顏色(appearance不重要,因此可以輕鬆禁用),我的CSS以用戶樣式工作,但在真實網頁上不起作用。比瀏覽器更重要!重要

回答

1

任何頁面(作者)樣式表覆蓋瀏覽器的默認樣式表。瀏覽器樣式表中沒有!important。按照級聯規則,這裏的特殊性無關緊要。重要的是,一些表現性特徵首先不能在CSS中控制。演示:

<!doctype html> 
<style> 
* { border: none; } 
</style> 
<input value=foo><br> 
<input type=checkbox checked> 

這將刪除文本輸入框的默認邊框。在大多數瀏覽器中,它不會影響複選框呈現,因爲我們可能會看到的邊框實際上是複選框小部件的一部分。像往常一樣,IE瀏覽器具有不同的行爲,但即使在它上面,您也無法刪除「邊框」,並且如果您在元素上使用了自己的邊框,則會在框外繪製邊框。

可能存在特定於瀏覽器的方式,以標準CSS以外的方式影響其行爲。您可能需要詳細說明「用戶樣式」和哪些瀏覽器的功能。

+0

在瀏覽器樣式表中很重要,例如Firefox具有邊框和複選框和單選按鈕的顏色(外觀可見:無)。製作它們!在你自己的樣式表中重要的是什麼都不做。 – Triang3l 2012-01-09 17:30:24

+0

@ SiPlus,我立場糾正,Firefox違反規範,但似乎沒有什麼可以做的。設置'-moz-appearance:none'會改變外觀,但它仍然是一個複選框,帶有一個框。創建一個本質上不同的方法的複選框的唯一方法似乎是創建一個具有所需外觀的元素(圖像或其他東西),並與其關聯(使用JavaScript)複選框功能。 – 2012-01-09 19:28:50

0

所以你想要「移除」瀏覽器的默認CSS?
我認爲你可以做到這一點與重置CSS,它basicaly重置瀏覽器樣式。 有許多例子在那裏

繼承人之一:CSS reset

0

是。加載後使用Javascript從元素中刪除樣式。
或者,首先設計樣式表。

0

我知道的是:external css,internal css和inline css。其覆蓋的順序是:

外部<內部<內聯。

即,外部CSS被內部覆蓋,內部和外部被內聯覆蓋。

此外,我們可以通過JavaScript更新它。

0
  1. 聲明您的樣式,使用至少與原始選擇器相同的選擇器。
  2. 標記您與壓倒一切的風格!重要
  3. 申報/包括樣式表後的現有樣式

下面是一個例子,其中最後一個!重要的風格比之前的款式宣佈優先。

http://jsfiddle.net/8QHQk/1/