CSSのinherit
以前にCSSの親子継承についてこちらで簡単に触れていた。
http://d.hatena.ne.jp/ynsyns/20081119/
ブロックなプロパティは継承しないということだったが、実はinheritを指定すれば継承することができる。
※inheritはIE6,7の坊ちゃんには通用しない。
<style> div{margin:10px;} p{margin:inherit;} /* 親要素のmarginを継承 */ </style> <div> <p>パラグラフ</p> </div>
これの特徴は動的に親要素のブロックプロパティを継承できるということだが、継承させたいときもあれば、固定値にしたいときもあるのでケースバイケースで使い分けが必要。
例えば、親要素の持つブロックプロパティを全て継承させたい場合、classを作っておくという手もある。
しかし実用性は低いか。
<style> .inherit{ /* 親要素の全てのブロックプロパティの継承 */ margin:inherit; padding:inherit; border:inherit; display:inherit; position:inherit; float:inherit; width:inherit; height:inherit; overflow:inherit; clear:inherit; visibility:inherit; z-index:inherit; } </style> <div> <p class="inherit">パラグラフ</p> </div>