解決方法有很多,如果可以對html改動的話,就給你需要細化的頁面元素加多一個class或者ID就行了,當然這種方法應該不是你想要的。那麼接下來是不改變HTML的情況下,直接用css的方法來實現你想要的效果——
方法一 細化選擇符
假如全域性是這樣來定義一個元素的樣式的:.abc {background:#000},同時這個class為abc的元素是隸屬於某個元素的,比如下面這樣的html程式碼結構
<div>
<div></div>
</div>
那麼在細化css裡面,只需要在.abc前面加多一個父元素的選擇符就行了:
.container .abc {background:#fff}
這樣.container .abc的優先順序就大於了.abc,自然細化css裡面的background設定也就不會被全域性CSS覆蓋了~~
方法二 提升樣式的優先順序
這種方法個人不太推薦,相對而言會簡單粗暴一些。同樣是上面的例子,在細化CSS裡面,只要在樣式後面加一個!important,例如這樣:
.abc {background:#fff !improtant;}
這個樣式的優先順序就會預設提升到頂級,全域性樣式就無法影響到它了。
方法三 改變兩個樣式的載入順序
這種方法比較簡單,就是隻要把細化css載入在全域性css之後就行了,這樣後面的樣式就會自動覆蓋前面的樣式。不過如果你的html裡面這兩個樣式表的載入順序是先細化後全域性的話,就要稍微調整一下程式碼才行。
解決方法有很多,如果可以對html改動的話,就給你需要細化的頁面元素加多一個class或者ID就行了,當然這種方法應該不是你想要的。那麼接下來是不改變HTML的情況下,直接用css的方法來實現你想要的效果——
方法一 細化選擇符
假如全域性是這樣來定義一個元素的樣式的:.abc {background:#000},同時這個class為abc的元素是隸屬於某個元素的,比如下面這樣的html程式碼結構
<div>
<div></div>
</div>
那麼在細化css裡面,只需要在.abc前面加多一個父元素的選擇符就行了:
.container .abc {background:#fff}
這樣.container .abc的優先順序就大於了.abc,自然細化css裡面的background設定也就不會被全域性CSS覆蓋了~~
方法二 提升樣式的優先順序
這種方法個人不太推薦,相對而言會簡單粗暴一些。同樣是上面的例子,在細化CSS裡面,只要在樣式後面加一個!important,例如這樣:
.abc {background:#fff !improtant;}
這個樣式的優先順序就會預設提升到頂級,全域性樣式就無法影響到它了。
方法三 改變兩個樣式的載入順序
這種方法比較簡單,就是隻要把細化css載入在全域性css之後就行了,這樣後面的樣式就會自動覆蓋前面的樣式。不過如果你的html裡面這兩個樣式表的載入順序是先細化後全域性的話,就要稍微調整一下程式碼才行。