やなぎにっき

学んだことの記録

CSS 親子要素

CSSの親・子要素の関係が分からなくなるので自分なりにまとめた。

 

  HTML

<div id="test">
<div class="parent">親要素
<div class="child">子要素
<div class="grandchild">孫要素</div>
</div>
</div>
</div>

CSS

.parent {
  width: 100px;
  height: 100px;
  padding: 10px;
  background: lightgray;
}

f:id:yana_g:20200703124802p:plain

parentセレクタfont-weight: bold;を追加。 font-weightプロパティは子以下の要素にも反映される。

f:id:yana_g:20200703125015p:plain

続いてparentセレクタborder: solid 2px gray;を追加。 borderは非継承プロパティなので子以下に反映されない。

f:id:yana_g:20200703125445p:plain

子要素childセレクタborder:inherit;を追加すると親のプロパティを引き継ぐ。

.parent {
  width: 100px;
  height: 100px;
  padding: 10px;
  background: lightgray;
  font-weight: bold;
  border: solid 2px gray;
}
.child {
  border:inherit;
}

f:id:yana_g:20200703125814p:plain

孫要素grandchildセレクタborder:inherit;を追加すると親のプロパティを引き継ぐ。(画像・コードは省略)

参考:スタイルの継承-CSSの基本

paddingも子要素に継承されない。borderと同じように子要素にpadding:inherit;をつけると親要素の設定を引き継ぐ。

.parent {
  width: 100px;
  height: 100px;
  padding: 10px;
  background: lightgray;
}
.child {
  background:darkgray;
}
.grandchild{
  background:gray;
}

f:id:yana_g:20200703130454p:plain