我正在爲默認的Spree模板製作一個SCSS覆蓋文件。在產品目錄顯示頁面上,每個產品圖像周圍都有一個邊框。如果我更改product-image
類的基本狀態的邊框屬性,則不會改變。但是,如果我爲product-image:hover
添加更改,則不存在問題。爲什麼重寫Spree默認樣式不一致?
我可以使用!important
來解決問題,但我很想知道爲什麼沒有這個變化,儘管懸停狀態發生了變化。
我正在爲默認的Spree模板製作一個SCSS覆蓋文件。在產品目錄顯示頁面上,每個產品圖像周圍都有一個邊框。如果我更改product-image
類的基本狀態的邊框屬性,則不會改變。但是,如果我爲product-image:hover
添加更改,則不存在問題。爲什麼重寫Spree默認樣式不一致?
我可以使用!important
來解決問題,但我很想知道爲什麼沒有這個變化,儘管懸停狀態發生了變化。
選擇器有不同的特異性價值。它影響越權優先權:
從規格:
如下一個選擇的特異性被計算:
計數在選擇器ID選擇器的數目(= A)計數 數類選擇的,屬性選擇器,和僞類在 選擇器(= b)的計數忽略通用選擇否定僞類內 選擇器的類型選擇的數量和在選擇 僞元素(= C)進行計數等任何其他, ,但否定本身不算作僞類。
串接三個數字的A-B-C(在一些系統具有大 基)給出的特異性。
例子:
* /* a=0 b=0 c=0 -> specificity = 0 */
LI /* a=0 b=0 c=1 -> specificity = 1 */
UL LI /* a=0 b=0 c=2 -> specificity = 2 */
UL OL+LI /* a=0 b=0 c=3 -> specificity = 3 */
H1 + *[REL=up] /* a=0 b=1 c=1 -> specificity = 11 */
UL OL LI.red /* a=0 b=1 c=3 -> specificity = 13 */
LI.red.level /* a=0 b=2 c=1 -> specificity = 21 */
#x34y /* a=1 b=0 c=0 -> specificity = 100 */
#s12:not(FOO) /* a=1 b=0 c=1 -> specificity = 101 */
可以計算選擇特異性與this tool
這似乎已經撞上了頭部,非常感謝你。不知道元素的數量會對優先級產生影響。 – TheMinimalCriminal
@TheMinimalCriminal這是有道理的,因爲你可以爲某個組中的所有元素指定的行爲,並參考最具體的人將其覆蓋。例如:「所有的貓(物種)都有毛皮,斯芬克斯(品種)沒有。」 – JAre
你的風格可能不會生效由於一些具有更高優先級的CSS指定不同的風格。 – gmacdougall