序文
真面目ないとこの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>
結果を示す: