CSS3 繼承的技巧
稍不留意便會忽略掉級聯樣式表的特點。大多數開發者都知道inherit關鍵字,但有幾個新的CSS3繼承特性你可能不知道…
property: inherit;
inherit關鍵字代表“使用指定給父元素的所有值”。如果父元素中沒有明確的值定義,瀏覽器搜尋DOM樹直到找到相應的屬性。最終無法找到的話,它會使用瀏覽器的預設值,例如:
#myparent { margin: 10px; border: 1px solid #000; } /* use the same border as the parent */ #myparent p { border: inherit; }
在實踐中是很少有必要使用inherit的。許多有用的屬性自動繼承,例如字型,字型大小,顏色,等等。
inheritis可以放心地使用。儘管IE6和IE7不支援,但你的設計不會因為這個而被破壞。
property: initial;
哦,一個新的CSS3關鍵詞!initial設定一個屬性為它的初始值——瀏覽器的預設定義值,例如:
body { font-size: 0.5em; } /* reset paragraphs to 1em */ p { font-size: initial; }
它有用麼?可能吧,畢竟你不能確保所有瀏覽器有相同的預設值。
支援合理——Chrome,Firefox,Safari和Opera 15 +。IE下它不生效,而且我正在努力思考什麼情況下這將是一個災難性問題。
property: unset;
這是稍微不尋常的一個。unset使用時,它表現地就像有可繼承值存在時繼承了一樣。如果它找不到可繼承的值——比如,它是像box-shadow等不可繼承的屬性——它表現地好像繼承了瀏覽器的預設值。
話又說回來,我想不出太多使用unset的場景,目前對支援它的很少。
all: [ inherit | initial | unset ];
最後,all是一個屬性而不是一個值。你可以指定inherit、initial或者unset來影響所有的屬性,例如重置所有CSS屬性為瀏覽器預設:
#mywidget { all: initial; }
如果你新增了第三方控制元件且要避免頁面樣式衝突的話,這可能是一個可選的全域性CSS域。
不幸的是,目前為止你不能依靠跨瀏覽器的嚴格的一致性,然而,它依然是一個有用的特性。
相關文章
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- 菱形繼承,虛繼承繼承
- 原型,繼承——原型繼承原型繼承
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承
- 類的繼承_子類繼承父類繼承
- 多繼承 與 多重繼承繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- 類的繼承繼承
- Java的繼承Java繼承
- Pyhon的繼承繼承
- 繼承繼承
- 什麼是繼承?Python繼承的特徵有哪些?繼承Python特徵
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- Python類的繼承Python繼承
- JS中的繼承JS繼承
- java中的繼承Java繼承
- 20200109 - 類的繼承繼承
- PostgreSQL中的繼承SQL繼承
- JavaScript中的繼承JavaScript繼承
- Solidity中的繼承Solid繼承
- 繼承的特點繼承
- JavaScript繼承JavaScript繼承
- javascript:繼承JavaScript繼承
- python繼承Python繼承
- JavaScript 繼承JavaScript繼承
- 10 #### 繼承繼承
- python 繼承Python繼承
- 多繼承繼承
- python 基礎之繼承、重寫、多繼承Python繼承
- 記不住的繼承方式繼承
- 淺談JS的繼承JS繼承
- 【Python】python類的繼承Python繼承
- javascript的原型和繼承JavaScript原型繼承
- JS中的繼承(下)JS繼承
- 類的繼承和派生繼承
- 聊聊JS中的繼承JS繼承
- JavaScript的繼承-轉載JavaScript繼承
- 繼承的實現方式繼承