Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8825

heightやwidthが0の要素にpaddingを指定すると要素が現れてしまう

$
0
0

はじめに

たとえばエラーメッセージの表示だったり、何か値を渡されたときには表示して、それ以外のときには非表示にしたい、という場合にpaddingつけようとして困ったよという話。

中身が空のdivにpaddingをつけると

中身があるときは下のように表示してほしいとします。


See the Pen
qBNdVem
by taka1473 (@taka1473)
on CodePen.


このとき、p要素の中身がないとどうなるか。


See the Pen
ExyjoXX
by taka1473 (@taka1473)
on CodePen.


こうなります。
要素の正味の部分(文字とかが表示される部分)というのはheightからpaddingの高さを引いた数字になるが、heightは負の値を取れないのでpaddingのぶん正味の部分が高くなる(?)、ということらしいです。

回避方法

1.div要素を親要素に追加して、そちらにpaddingをつける。

See the Pen ZEOGvvB by taka1473 (@taka1473) on CodePen.

これで要素がない時には非表示にできます。でもこれだとpaddingのところはpinkになりませんね。

2.子要素で無理やり

See the Pen GRqJyQz by taka1473 (@taka1473) on CodePen.

そもそも要素がないのでそこにpadding入れても効かないから大丈夫っていう考え方。


See the Pen
vYKOpzv
by taka1473 (@taka1473)
on CodePen.



こちらは意図した動きになってくれます。

あとがき

もっといい方法がある気がする…。
あったら教えて下さい。(むしろ誰かに教えてほしくて記事書いたところある)


Viewing all articles
Browse latest Browse all 8825

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>