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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1405閲覧

margin-rightが効かない理由が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/07 09:54

html

1 <section class="section1"> 2 <div class="txt-wrap"> 3 <div class="h2-wrap"> 4 <h2>フィットネス<span>ダイエット目的</span></h2> 5 </div> 6 </div> 7 <div class="img"> 8 <img class="main-img" src="img/img-index-01.jpg"> 9 </div> 10 </section> 11

css

1.section1 { 2 display: flex; 3 align-items: center; 4 max-width: 1280px 5} 6 7.section1 .txt-wrap { 8 flex: 0 1 50%; 9 background: red; 10 padding: 100px 0 150px 0; 11/* margin-right: -100px*/ 12} 13 14.section1 .txt-wrap .h2-wrap { 15 background: #fff; 16 color: red; 17 width: 98%; 18 position: relative; 19 z-index: 2; 20 padding: 40px 20px 21} 22.section1 .img { 23 flex: 0 1 50%; 24 position: relative; 25 z-index: 1; 26 margin-left: -40px; 27 margin-right:-100px 28} 29 30.section1 .img .main-img { 31 width: 105%; 32 box-shadow: 0 0 3px #ddd; 33} 34 35.section1 .img .sub-img { 36 position: absolute; 37 bottom: 20px; 38 left: -10px; 39 z-index: 2; 40 width: 50% 41}

.margin-righが正の値なら効いたのですが、いわゆる制限しすぎの状態なのでしょうか。しかしwidthは100%ではないので見当違いかなとも思います。だとしたらどこを変えればmargin-right-100pxが効くでしょうかがありますか。

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

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

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

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

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

maisumakun

2020/02/07 23:13

具体的に、どのようなレイアウトを実現したいのでしょうか。 ( margin-right:-100pxが効いていたとしても、それが意図に沿ったレイアウトになるとも限りません)
guest

回答3

0

もしかして、想定しているのは↓こういう感じで.imgがそのまま右にずれるようなことですか?

css

1.section1 .img { 2 flex: 0 1 50%; 3 position: relative; 4 z-index: 1; 5 margin-left: auto; /* 変更 */ 6 margin-right:-100px 7}

投稿2020/02/08 05:55

Lhankor_Mhy

総合スコア36104

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

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

退会済みユーザー

退会済みユーザー

2020/02/08 08:11

そうです。この通りにしたかったのですが、 margin-left: auto; にするとうまくいったのはどういう理由でしょうか。
Lhankor_Mhy

2020/02/08 08:36

以前の質問でも気になっていたのですが、 margin-left に何も設定していない場合、0 が設定される、ということについて、うっかり抜けてしまうことが多いのではありませんか?
退会済みユーザー

退会済みユーザー

2020/02/08 10:01

はい、それは抜けています。margin:0になっているままで支障が出る(思った通りに動かないことが多い)ことに気づけていませんでした。 上の参考サイトの中で「FlexアイテムはFlexコンテナ内の余分なスペースを占有するために、自動的にマージンを拡張する」という部分がよくわからなかったのですが、flex出ない場合はなぜmargin:autoにしても効かないのでしょうか。余分なスペースがないということでしょうか。
Lhankor_Mhy

2020/02/09 05:28

できると思いますが…… どのようなコードでできなかったのですか?
退会済みユーザー

退会済みユーザー

2020/02/09 09:07

もう一度自分でコードを作って調べてみます。
guest

0

ベストアンサー

margin-right: -100px は効いていると思いますよ。
margin-right: 0 と設定したときと比べてみると、右横の img が 100px左にずれて txt-wrapに100px分重なってます。

marginが+なら txt-wrap と img の間に余白が空く。
marginが-なら txt-wrap に img が重なる形になります。

だとしたらどこを変えればmargin-right-100pxが効くでしょうかがありますか。

どのような状態になることを期待しているのでしょうか。

投稿2020/02/07 10:35

編集2020/02/07 10:45
hatena19

総合スコア33715

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

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

退会済みユーザー

退会済みユーザー

2020/02/07 22:55

margin-right: -100px は効いていると思いますよ。 margin-right: 0 と設定したときと比べてみると、右横の img が 100px左にずれて txt-wrapに100px分重なってます。 これはtxt-wrap煮付けた場合ではありませんか。imgにつけた時のマージンのことが聞きたいのですが。
hatena19

2020/02/08 01:46 編集

imgの方でしたか。 imgの右隣りに何もないから効いてないように見えるのでしょう。 右隣になにか要素を置いたら、それとimgは100px分重なります。 あるいは、 flex: 0 1 50%; を flex: 1 1 50%; として要素が拡張するようにすると100px分ウィンドウ外へはみ出すように拡大します。
退会済みユーザー

退会済みユーザー

2020/02/08 02:46

右に何も要素がなければ、margin-right自体は効いているけれども位置がずれない理由はどうしてでしょうか。
hatena19

2020/02/08 02:49

flexで左寄せになっているからです。
退会済みユーザー

退会済みユーザー

2020/02/09 09:12

marginーleftを設定するとflexで左寄せになってるにも関わらず、しっかり余白ができるのはなぜでしょうか。正の値と負の値で余白を作るか重なるかの違い以外に何かルールがあるのでしょうか。
hatena19

2020/02/09 09:27

左寄せとは、左端を基準に、要素が可能な限り左側に寄せられて、位置が決まるということです。 margin-leftは左側に余白を設定するので、その分、要素の位置は右にずれます。 margin-rightは右側に余白を設定しますので、その要素自体の位置には影響を与えません。 その要素の右側に要素があれば、その間に余白ができますので、右側の要素はその分右にずれます。
guest

0

左寄せになっているのが、原因かと思うのですが、
.section1の付与された要素に、以下のプロパティを設定して、両端にフローティングするようにすれば良いかもです。

justify-content: space-between;

投稿2020/02/07 10:07

thedogyear

総合スコア7

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

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

退会済みユーザー

退会済みユーザー

2020/02/07 10:25

なぜ左寄せになってるときかなっかったのでしょうか。左寄せにした分だけmargin-rightをつけただけなら効かないとは思いますが。−100pxもつけていたのになぜなのでしょうか。お分かりでしたら教えていただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問