inoma-NOTE

自分のためのメモじゃ

擬似要素で指定した画像の大きさを変更する

beforeやafterの擬似要素に画像を表示することはできるが、大きさを変更するところでつまづいたのでメモ。

元々の画像の大きさよりも小さくしたりする場合は、ただ幅や高さを指定するだけでは不十分。

a.btn {
  width: 200px;
  padding: 15px 20px;
  margin: 0 auto 10px auto;
  display: block;
  color: #fff;
  background: #000;
  text-decoration: none;
  &:after {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    margin: -3px 0 0 10px;
    background: url("画像URL") no-repeat;
    background-size: contain;
    vertical-align: middle;
  }
  &:hover {
    background: #999;
  }
}

displayをinline-blockにすることで、元の画像サイズが100x100pxでもwidthで指定した大きさになる。

codepenで作ったものがこれ

See the Pen before after button by inoma (@inoma) on CodePen.