インライン要素のパディングとマージンの設定が機能しない

序文

真面目ないとこのeコマースサイトのプロジェクトを見て、自分で気づきました。前後にいくつか問題があったので、まとめたいと思います。


1.問題

パディングであろうとマージンであろうと、左右のみが機能し、上下は機能しません。例は次のとおりです。

コード

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="test.css" type="text/css">
    <style>
      div {
     
     
        background-color: black;
        width: 300px;
        height: 50px;
      }
      .b {
     
     
        padding: 20px;
      }

    </style>
  </head>
  <body>
    <div></div>
    <span>aaaaaaaa</span>
    <span class="b">bbbbbbbb</span>
    <span>ccccccc</span>
    <div></div>
  </body>
</html>

表示結果:

左と右のパディングのみが機能していることがわかりますが、上下のパディングも機能させるにはどうすればよいですか?

2.解決策

回答:インライン要素をブロックレベルの要素(マージンと同じ)に変換するだけで十分です。次のように:
コード:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="test.css" type="text/css">
    <style>
      div {
     
     
        background-color: black;
        width: 300px;
        height: 50px;
      }
      .b {
     
     
        display: inline-block;
        padding: 20px;
      }

    </style>
  </head>
  <body>
    <div></div>
    <span>aaaaaaaa</span>
    <span class="b">bbbbbbbb</span>
    <span>ccccccc</span>
    <div></div>
  </body>
</html>

結果を示す:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44645309/article/details/111938433