對於預設不繼承(inherited 為 no)的屬性,你可以查文件,看要覆蓋掉的屬性初始值(initial value)是什麼,然後設定為這個值。比如你這個例子中,left 屬性初始值為 auto,你就可以設定 left: auto; right: 0。CSS 中還有一個屬性值關鍵字 initial,可以把任意屬性設定為初始值(left: initial,這樣不需要去一個個查初始值是什麼了)。需要注意的是,IE 不支援這個屬性。但如果你要覆蓋的屬性是一個預設繼承的屬性(inherited 為 yes),而其父元素中又至少有一個設定了該屬性(如果全都沒設定,那麼都從根元素繼承,此時根元素會取此屬性的初始值),那你可以使用 inherit 這個關鍵字,讓這個屬性「恢復」成從父元素繼承樣式。CSS 中現在有一個叫做 unset 的關鍵字,它會對上面不同型別的屬性分別起到 initial 和 inherit 的效果。為啥要有這樣一個關鍵字呢?因為這會使得書寫更簡單,我不再需要在重置時去考慮這個屬性是哪種型別然後區分 initial 和 inherit 了。另外因為 CSS 增加了快速設定所有屬性的 all 屬性,這樣可以在不區分具體屬性時快速 reset 樣式,寫法也很簡單:all: unset。unset 的瀏覽器支援度比 all 稍好一些,具體的自己查資料吧。問題又來了,上面的這些寫法,會把瀏覽器預設樣式也抹去,全部恢復成 CSS 規範定義的初始樣式,這往往也不是我們期望的。於是 CSS Cascading and Inheritance Level 4 中又增加了 revert 關鍵字,表示重置當前樣式來源(style origin)的樣式。也就是說我們如果寫在 HTML 中引入的程式碼裡,不會影響瀏覽器預設樣式。不過目前只有 Safari 實現了這個屬性值。
對於預設不繼承(inherited 為 no)的屬性,你可以查文件,看要覆蓋掉的屬性初始值(initial value)是什麼,然後設定為這個值。比如你這個例子中,left 屬性初始值為 auto,你就可以設定 left: auto; right: 0。CSS 中還有一個屬性值關鍵字 initial,可以把任意屬性設定為初始值(left: initial,這樣不需要去一個個查初始值是什麼了)。需要注意的是,IE 不支援這個屬性。但如果你要覆蓋的屬性是一個預設繼承的屬性(inherited 為 yes),而其父元素中又至少有一個設定了該屬性(如果全都沒設定,那麼都從根元素繼承,此時根元素會取此屬性的初始值),那你可以使用 inherit 這個關鍵字,讓這個屬性「恢復」成從父元素繼承樣式。CSS 中現在有一個叫做 unset 的關鍵字,它會對上面不同型別的屬性分別起到 initial 和 inherit 的效果。為啥要有這樣一個關鍵字呢?因為這會使得書寫更簡單,我不再需要在重置時去考慮這個屬性是哪種型別然後區分 initial 和 inherit 了。另外因為 CSS 增加了快速設定所有屬性的 all 屬性,這樣可以在不區分具體屬性時快速 reset 樣式,寫法也很簡單:all: unset。unset 的瀏覽器支援度比 all 稍好一些,具體的自己查資料吧。問題又來了,上面的這些寫法,會把瀏覽器預設樣式也抹去,全部恢復成 CSS 規範定義的初始樣式,這往往也不是我們期望的。於是 CSS Cascading and Inheritance Level 4 中又增加了 revert 關鍵字,表示重置當前樣式來源(style origin)的樣式。也就是說我們如果寫在 HTML 中引入的程式碼裡,不會影響瀏覽器預設樣式。不過目前只有 Safari 實現了這個屬性值。