回答編集履歴

4

typo修正

2020/12/15 08:41

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -158,7 +158,7 @@
158
158
 
159
159
 
160
160
 
161
- また、そのち間違いを別にしても、両者には違いがあります。
161
+ また、そのち間違いを別にしても、両者には違いがあります。
162
162
 
163
163
  マージンについて書かれているルールが他に存在しないのであれば、その両者に違いはありません。
164
164
 

3

コメントを受けて再追記

2020/12/15 08:41

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -125,3 +125,73 @@
125
125
 
126
126
 
127
127
  ですので、順番を変えると、表示も変わります。
128
+
129
+
130
+
131
+ # コメントを受けて再追記
132
+
133
+
134
+
135
+ >__正答の方では「margin-top:15px; margin-bottom:15px;」と分けて記述されていることに対し、「margin:15px 0 15px 0;」ではダメなのか__
136
+
137
+
138
+
139
+ まず、ご提示のコードですが、全角スペースが混じっているのが原因だと思います。
140
+
141
+
142
+
143
+ ```css
144
+
145
+ .signup {
146
+
147
+ background-color: #239b76;
148
+
149
+ margin:15px 0 15px 0;
150
+
151
+ /* ^ここが全角スペース */
152
+
153
+ }
154
+
155
+ ```
156
+
157
+
158
+
159
+
160
+
161
+ また、そのうち間違いを別にしても、両者には違いがあります。
162
+
163
+ マージンについて書かれているルールが他に存在しないのであれば、その両者に違いはありません。
164
+
165
+ ですが、以下のような場合は上書きされます。
166
+
167
+
168
+
169
+ ```css
170
+
171
+ .btn {
172
+
173
+ margin-left: auto;
174
+
175
+ }
176
+
177
+
178
+
179
+ .signup {
180
+
181
+ margin:15px 0 15px 0; /* margin-left: 0 */
182
+
183
+
184
+
185
+ /*
186
+
187
+ margin-top:15px;
188
+
189
+ margin-bottom:15px;
190
+
191
+ ^この場合は、margin-left: auto が残る。
192
+
193
+ */
194
+
195
+ }
196
+
197
+ ```

2

コメントを受けて追記

2020/12/15 08:38

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -63,3 +63,65 @@
63
63
 
64
64
 
65
65
  Font Awesome のフォントは、`::before`疑似要素に表示されています。ですので、親要素にマージンをつけるのではなくて、疑似要素にマージンをつけてみてください。
66
+
67
+
68
+
69
+ # コメントを受けて追記
70
+
71
+
72
+
73
+ >__①「top-wrapper」でやると、横に余白ができ上手くいかないことはわかりました。深く考えず、それだとできないから、でいいのでしょうか?__
74
+
75
+
76
+
77
+ 上手くいかない原因を知りたい、という質問だったのですね。理解しました。
78
+
79
+
80
+
81
+ まず前提ですが、CSSにおけるボックスモデルをご参照ください。
82
+
83
+ [CSS 基本ボックスモデル入門 - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model)
84
+
85
+
86
+
87
+ この内の「コンテンツ領域」に背景が描画されることを、理解してください。
88
+
89
+
90
+
91
+ そしてつぎに、このコンテンツ領域の幅は`width`で設定されることを理解してください。
92
+
93
+
94
+
95
+ > width は CSS のプロパティで、要素の幅を設定します。既定では、**このプロパティはコンテンツ領域の幅を設定します**が、 box-sizing を border-box に設定すると、境界領域の幅を設定します。
96
+
97
+ [width - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/width)
98
+
99
+
100
+
101
+ 最後に、`width`プロパティの初期値(何も指定しない場合の値)は`auto`であること、`width: auto`はブロックレイアウトの通常フローでは`width: 100%`と同じであることを理解してください。
102
+
103
+
104
+
105
+ つまり、`.top-wrapper`に`width: 1140px`を指定するということは、背景のサイズが`100%`から`1140px`に縮む、ということです。
106
+
107
+
108
+
109
+ ---
110
+
111
+
112
+
113
+ >__②わずかに動きがあり差があることはわかるのですが、書き換えながらだとどこが変化しているのかなかなかわからず……__
114
+
115
+
116
+
117
+ 繰り返しになりますが、こういうことです。
118
+
119
+
120
+
121
+ > 値が4つ指定された場合、マージンはそれぞれ**上、右、下、左の順** (時計回り) に適用される。
122
+
123
+ [margin - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/margin)
124
+
125
+
126
+
127
+ ですので、順番を変えると、表示も変わります。

1

追記

2020/12/15 07:23

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -25,6 +25,12 @@
25
25
  やってみればわかると思うのですが……
26
26
 
27
27
  それとも、やってみても違いがわかりませんでしたか?
28
+
29
+
30
+
31
+ > 値が4つ指定された場合、マージンはそれぞれ**上、右、下、左の順** (時計回り) に適用される。
32
+
33
+ [margin - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/margin)
28
34
 
29
35
 
30
36