淺談 CSS 關(guān)鍵字 initial功舀、inherit 和 unset

經(jīng)常會碰到,問一個 CSS 屬性之斯,例如 position 有多少取值日杈。

通常的回答是 staticrelative佑刷、absolutefixed 。當(dāng)然酿炸,還有一個極少人了解的 sticky 瘫絮。其實,除此之外填硕, CSS 屬性通常還可以設(shè)置下面幾個值:

  • initial
  • inherit
  • unset
  • revert
{
  position: initial;
  position: inherit;
  position: unset
 
  /* CSS Cascading and Inheritance Level 4 */
  position: revert;
}

了解 CSS 樣式的 initial(默認)和 inherit(繼承)以及 unset 是熟練使用 CSS 的關(guān)鍵麦萤。(當(dāng)然由于 revert 未列入規(guī)范,本文暫且不過多提及扁眯。)

initial

initial 關(guān)鍵字用于設(shè)置 CSS 屬性為它的默認值壮莹,可作用于任何 CSS 樣式。(IE 不支持該關(guān)鍵字)

inherit

每一個 CSS 屬性都有一個特性就是姻檀,這個屬性必然是默認繼承的 (inherited: Yes) 或者是默認不繼承的 (inherited: no)其中之一命满,我們可以在 MDN 上通過這個索引查找,判斷一個屬性的是否繼承特性绣版。

譬如胶台,以 background-color 為例,由下圖所示杂抽,表明它并不會繼承父元素的 background-color:

可繼承屬性

最后羅列一下默認為 inherited: Yes 的屬性:

  • 所有元素可繼承:visibility 和 cursor
  • 內(nèi)聯(lián)元素可繼承:letter-spacing诈唬、word-spacing、white-space缩麸、line-height铸磅、color、font、 font-family阅仔、font-size济竹、font-style、font-variant霎槐、font-weight送浊、text- decoration、text-transform丘跌、direction
  • 塊狀元素可繼承:text-indent和text-align
  • 列表元素可繼承:list-style袭景、list-style-type、list-style-position闭树、list-style-image
  • 表格元素可繼承:border-collapse

還有一些 inherit 的妙用可以看看這里:談?wù)勔恍┯腥さ腃SS題目(四)-- 從倒影說起耸棒,談?wù)?CSS 繼承 inherit,合理的運用 inherit 可以讓我們的 CSS 代碼更加符合 DRY(Don‘’t Repeat Yourself )原則报辱。

unset

名如其意与殃,unset 關(guān)鍵字我們可以簡單理解為不設(shè)置。其實碍现,它是關(guān)鍵字 initialinherit 的組合幅疼。

什么意思呢?也就是當(dāng)我們給一個 CSS 屬性設(shè)置了 unset 的話:

  1. 如果該屬性是默認繼承屬性昼接,該值等同于 inherit
  2. 如果該屬性是非繼承屬性爽篷,該值等同于 initial

舉個例子,根據(jù)上面列舉的 CSS 中默認繼承父級樣式的屬性慢睡,選取一個逐工,再選取一個不可繼承樣式:

  • 選取一個可繼承樣式: color
  • 選取一個不可繼承樣式: border

使用 unset 繼承/取消樣式:

看看下面這個簡單的結(jié)構(gòu):

<div class="father">
    <div class="children">子級元素一</div>
    <div class="children unset">子級元素二</div>
</div>

.father {
    color: red;
    border: 1px solid black;
}
 
.children {
    color: green;
    border: 1px solid blue;
}
 
.unset {
    color: unset;
    border: unset;
}
  1. 由于 color 是可繼承樣式,設(shè)置了 color: unset 的元素漂辐,最終表現(xiàn)為了父級的顏色 red泪喊。
  2. 由于 border 是不可繼承樣式,設(shè)置了 border: unset 的元素髓涯,最終表現(xiàn)為 border: initial 袒啼,也就是默認 border 樣式,無邊框复凳。

CodePen Demo -- unset Demo;

unset 的一些妙用

例如下面這種情況瘤泪,在我們的頁面上有兩個結(jié)構(gòu)類似的 position: fixed 定位元素。

區(qū)別是其中一個是 top:0; left: 0;育八,另一個是 top:0; right: 0;对途。其他樣式相同。

假設(shè)樣式結(jié)構(gòu)如下:

<div class="container">
    <div class="left">fixed-left</div>
    <div class="right">fixed-right</div>
</div>

通常而言髓棋,樣式如下:

.left,
.right {
    position: fixed;
    top: 0;   
    ...
}
.left {
    left: 0;
}
.right {
    right: 0;
}

使用 unset 的方法:

.left,
.right {
    position: fixed;
    top: 0;   
    left: 0;
    ...
}
.right {
    left: unset;
    right: 0;
}

CodePen Demo -- unset Demo;

推薦 參考文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末实檀,一起剝皮案震驚了整個濱河市惶洲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膳犹,老刑警劉巖恬吕,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異须床,居然都是意外死亡铐料,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門豺旬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钠惩,“玉大人,你說我怎么就攤上這事族阅÷耍” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵坦刀,是天一觀的道長愧沟。 經(jīng)常有香客問我,道長鲤遥,這世上最難降的妖魔是什么沐寺? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮渴频,結(jié)果婚禮上芽丹,老公的妹妹穿的比我還像新娘。我一直安慰自己卜朗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布咕村。 她就那樣靜靜地躺著场钉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懈涛。 梳的紋絲不亂的頭發(fā)上逛万,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音批钠,去河邊找鬼宇植。 笑死,一個胖子當(dāng)著我的面吹牛埋心,可吹牛的內(nèi)容都是我干的指郁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拷呆,長吁一口氣:“原來是場噩夢啊……” “哼闲坎!你這毒婦竟也來了疫粥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腰懂,失蹤者是張志新(化名)和其女友劉穎梗逮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绣溜,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慷彤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了怖喻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片底哗。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖罢防,靈堂內(nèi)的尸體忽然破棺而出艘虎,到底是詐尸還是另有隱情,我是刑警寧澤咒吐,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布野建,位于F島的核電站,受9級特大地震影響恬叹,放射性物質(zhì)發(fā)生泄漏候生。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一绽昼、第九天 我趴在偏房一處隱蔽的房頂上張望唯鸭。 院中可真熱鬧,春花似錦硅确、人聲如沸目溉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缭付。三九已至,卻和暖如春循未,著一層夾襖步出監(jiān)牢的瞬間陷猫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工的妖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绣檬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓嫂粟,卻偏偏與公主長得像娇未,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赋元,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容