質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

2回答

687閲覧

marginでもpaddingで指定しても結果が同じになる理由が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2019/02/06 11:35

編集2019/02/07 05:58

【HTMLのbody内】

<div class="contents"> <h3 class="section-title">タイトルが入る</h3> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/html.svg"> <p>HTML&CSS</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/php.svg"> <p>PHP</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/ruby.svg"> <p>Ruby</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/swift.svg"> <p>Swift</p> </div> </div>

【CSS】

.contents{ margin-top:100px; padding: 100px 80px; } .section-title { border-bottom: 2px solid #dee7ec; font-size:28px; padding-bottom:15px; margin-bottom:50px; } .contents-item{ float: left; margin-right: 20px; /* padding-right: 20px; */ }

上記のコードにおいて、2点質問があります。
① contents-item セレクターに、

margin-right: 20px;

とやっても、

padding-right: 20px;

とやっても、ブラウザ表示した際、写真の間隔がどちらも同じなのですが何故でしょうか?
私は、 marginは「外側の幅」、paddingは「内側の幅」と理解していますが、
結果が同じという事が理解できません。
そして、HTMLでは、写真のURLをボックスとして載せていますが、
仮に写真URLを何も入れないで、単純にCSSの方で background-color でそれぞれ色付けした際、今度は margin では反映されるのに、padding の方では反映されなかったのですが、それは何故ですか?写真だから両方同じ結果と言う事でしょうか??

② padding 、 margin両方とも、ブラウザ表示した際、ブラウザ(chrome)の画面の幅を縮小すると、写真がズレてしまうのですが、この対策は何でしょうか?
Progateでのプレビューは縮小しても変わらないのですが...。

※追記※ ②の画面縮小した際のスクショを追加。
イメージ説明
↑こんな感じでオレンジ色の画像ファイルが下に行ってしまう。
もちろん画面を最大にしていれば、
イメージ説明
↑このようにちゃんと左詰めで表示されますが。

もしこれが『そう言う仕様』で、何か別なプロパティを指定すれば解決するのかも知れませんが、
何故こう思ったかと言うと、Progateで同じコードでプレビューした時は、画面縮小しても、「画像がズレない」からです。
Progateのスクショ↓
イメージ説明
↑このように、画面を右から左へ縮小した際、オレンジの画像が下にズレないのです。
特別な固定するプロパティは見られません。
ちなみにその時の contents-item のCSS内での指定は、

.contents-item { float: left; margin-right:40px; /*padding-right:40px;*/ /* margin-rightを40pxにしてください */ }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cerfweb

2019/02/06 12:37

②については、写真がずれた状態のスクリーンショットを見せていただけますか。
cerfweb

2019/02/06 12:43

①の「仮に写真URLを何も入れないで、単純にCSSの方で background-color でそれぞれ色付けした・・・」の件ですが、どの要素に指定されましたか。
退会済みユーザー

退会済みユーザー

2019/02/07 15:41

スクショは追記にて致しました。
guest

回答2

0

① contents-item セレクターに、~略~ 写真の間隔がどちらも同じなのですが何故でしょうか?

私は、 marginは「外側の幅」、paddingは「内側の幅」と理解していますが、結果が同じという事が理解できません。

各領域の理解が少し違うと思います。
「写真」の部分は「コンテンツ部分」となり、その外側に、padding部分、(ボーダー部分)、margin部分があるので、padding・marginともに同幅であれば、同じ結果になります。


仮に写真URLを何も入れないで、~略~ 写真だから両方同じ結果と言う事でしょうか??

上記と同じ領域の問題ですが、background-colorは、padding部分にも色を付けます。その違いです。「写真」のある現状のコードに設定して見てください。テキスト部分の背景に色が付くはずです。


② padding、margin両方とも、~略~ Progateでのプレビューは縮小しても変わらないのですが...。

ブラウザを縮小表示でズレるのは、float設定による「カラム落ち」と言われる症状です。設定幅より狭くなるとズレて行きます。検索していろいろなサイトで理解して見てください。

Progateでのプレビューは良く知りませんが、イメージ図で表示されているだけではないのでしょうか?
(追記)または、どこかで表示分のwidth設定がされているのだと思います。


CSS 基本ボックスモデルの紹介

投稿2019/02/10 02:11

編集2019/02/10 02:35
yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず①については、例えばcssの.contents-itemに

css

1border: 1px solid #000;

と追加して比較してみるとお分かりになるかと思います。

②については、2段、3段になるということをおっしゃっているのでしたら、.contents-itemをまとめる親要素を追加してそれにflexを指定し、さらに、中の要素が等幅になるようなスタイルをcssで指定するのがいいと思います。

投稿2019/02/06 12:36

編集2019/02/06 12:52
cerfweb

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問