前面的話
在CSS中,有4個關鍵字理論上可以應用於任何的CSS屬性,它們是initial(初始)、inherit(繼承)、unset(未設置)、revert(還原)。而all的取值只能是以上這4個關鍵字。本文將介紹initial、inherit、unset、revert和all
initial
表示元素屬性的初始默認值(該默認值由官方CSS規范定義)
兼容性: IE不支持
[注意]關於各屬性的初始默認值移步至此
//display在官方CSS規范中定義的默認值是inline <style> .test{display: initial;} </style> <div class="box"> <div class="test">測試一</div><span>文字</span> <br> <div >測試二</div><span>文字</span> </div>
inherit
表示元素的直接父元素對應屬性的計算值
兼容性: IE7-不支持
<style> .box{ border: 1px solid black; padding: 10px; width: 100px; } .test{ border: inherit; height: 30px; } </style> <div class="box"> <div class="test">測試一</div> </div> <div class="box"> <div class="in"> <div class="test">測試二</div> </div> </div>
unset
unset相對於initial和inherit而言,相對復雜一點。表示如果該屬性默認可繼承,則值為inherit;否則值為initial。實際上,設置unset相當於不設置
兼容性: IE不支持,safari9-不支持,ios9.2-不支持,android4.4.4-不支持
【常用默認可繼承樣式】
color
cursor
direction
font
letter-spacing
line-height
list-style
text-align
text-indent
text-shadow
text-transform
white-space
word-break
word-spacing
word-wrap
writing-mode
//內容為測試一的元素和內容為測試二的元素的樣式是一樣的 <style> .box{ border: 1px solid black; padding: 10px; width: 100px; color: red; } .test1{ border: unset; color: unset; } </style> <div class="box"> <div class="test">測試一</div> <div>測試二</div> </div>
revert
表示樣式表中定義的元素屬性的默認值。若用戶定義樣式表中顯式設置,則按此設置;否則,按照瀏覽器定義樣式表中的樣式設置;否則,等價於unset
兼容性: 只有safari9.1+和ios9.3+支持
all
表示重設除unicode-bidi和direction之外的所有CSS屬性的屬性值,取值只能是initial、inherit、unset和revert
兼容性: IE不支持,safari9-不支持,ios9.2-不支持,android4.4-不支持
<style> .test{ border: 1px solid black; padding: 20px; color: red; } .in{ /* all: initial; all: inherit; all: unset; all: revert; */ } </style> <div class="test"> <div class="in">測試文字</div> </div>
【1】當all:initial時,.in的所有屬性都取默認值
border:none;padding:0;color:black;
【2】當all:inherit時,.in的所有屬性都取父元素繼承值
border:1px solid black;padding:20px;color:red;
【3】當all:unset時,.in的所有屬性都相當於不設置值,默認可繼承的繼承,不可繼承的保持默認值
border:none;padding:0;color:red;