Firefoxでinline-block内のbrをblockにすると変な隙間が入る

Firefoxでinline-block内のbrをblockにすると変な隙間が入る

新入社員のyanagimachiです。
変なお菓子を見つけては、周りの人を巻き込んで試食をするのが大好きです!

brを blockにするのはどんなとき?

レスポンシブデザインでPCだと改行あり、スマホだと改行なしなんてときがあります。
いままで、そんなときは以下のようなコードを書いていました。

HTML

<p><a href="#">PCだと改行あり、<br class="isSPnone">スマホだと改行なし</a></p>

CSS

br.isSPnone {
  display: none;
}

@media only screen and (min-width: 641px) {
  br.isSPnone {
    display: block;
  }
}

不具合が起きるのはどんなとき?

たいていは上記の記述で問題ないのですが、「コンテンツの中で中央寄せするけど文字は左寄せがしたい!」なんてときにCSSに以下の記述を追加すると、Firefoxでは改行した上で一行分くらいの隙間が空いてしまいます。

CSS

p {
  text-align: center;
}
p a {
  display: inline-block;
  text-align: left;
}

bugfix

brをinline-blockにすると直るようです。

CSS

@media only screen and (min-width: 641px) {
  br.isSPnone {
    display: inline-block;
  }
}

デモ

Firefoxでinline-block内のbrをblockにすると変な隙間が入る

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ