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

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

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

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

HTML5

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

HTML

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

CSS

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

Q&A

解決済

2回答

604閲覧

常に片方のmarginを10pxだけ大きくする方法

Silky

総合スコア34

CSS3

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

HTML5

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/10/01 04:15

標題の通り、常に片方のmarginを10pxだけ大きくする方法についてわからなくて困っています。

下記のように1380pxを基準にしたデザインデータがあったとして、
赤色のboxの左右のmarginを、右側だけ左に比べて、10px大きくしたいです。

イメージ説明

それを実現するのに、下記のようなコードを思いつきました。

.box{ width: 860px; height: 430px; background-color: red; margin: 0 calc((100% - 860px) / 2 + 5px) 0 calc((100% - 860px) / 2 - 5px); }

しかし、このコードだと、860pxより画面が狭い場合にうまくいかなくなってしまいます。
幅が変わってもレスポンシブ対応し、常に右側のmarginを左よりも10pxだけ大きくする方法を教えていただけないでしょうか?

よろしくお願いいたします。

コードを下に貼っておきます。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="css/test.css"> </head> <body> <div class="box"></div> </body> </html>
.box{ width: 860px; height: 430px; background-color: red; margin: 0 calc((100% - 860px) / 2 + 5px) 0 calc((100% - 860px) / 2 - 5px); }

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

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

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

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

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

yambejp

2019/10/01 04:18

> 860pxより画面が狭い場合にうまくいかなくなってしまいます。 860pxより画面が狭い場合はどういう表示が正しいのでしょうか? 手書きで良いので図示してみてください
Silky

2019/10/01 04:28

コメントありがとうございます! 質問内容わかりづらくてすみません。 860pxより画面が小さい場合も、上の図と同じで、右側のmarginが左側のmarginに比べて、10px大きくなります。
guest

回答2

0

ベストアンサー

.box をほかのdiv(.box-wrap等)で囲ってあげて、
.box-wrapのpadding-rightで10pxとってあげる、とかはどうでしょうか?
レスポンシブ対応では、width: 100% と max-widthでいけませんかね。

html

1<div class="box-wrap"> 2 <div class="box"></div> 3</div>

css

1.box { 2 width: 100%; 3 max-width: 860px; 4 height: 430px; 5 background-color: red; 6} 7.box-wrap { 8 width: 100% 9 margin: 0 auto; 10 padding-right: 10px; 11}

投稿2019/10/03 06:56

編集2019/10/03 07:01
mizumiinclude

総合スコア41

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

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

Silky

2019/10/03 10:48

ありがとうございます! wrapで包んで、そのwrapにpadding-rightをしてあげるといいんですね!この方法思いつきませんでした。 下記のようにするとレスポンシブ対応も含めてうまくいきました! ありがとうございます! .box-wrap { width: 100%; max-width: 860px; margin: 0 auto; padding-right: 10px; } .box { width: 100%; height: 430px; background-color: red; }
mizumiinclude

2019/10/04 02:38 編集

少々間違ってましたね、すみません。うまく訂正していただけたようでよかったです。 あと、中の.boxを860pxにするなら、.box-wrapはpadding-rightの量をいれなければいけないのでmax-widthは870pxになるかと思います。 ```css .box-wrap { width: 100%; max-width: 870px; // *** margin: 0 auto; padding-right: 10px; } ```
Silky

2019/10/04 09:45

padding-rightの量を考慮していませんでした!ありがとうございます。  おかげ様で解決しました!ありがとうございました^^
guest

0

860px 固定なら狭い時にはみ出るのは当然なので

CSS

1 width: calc((100% - 10px) * 0.8); 2 margin-right: auto; 3 margin-left: auto; 4 transform: translateX(-5px);

投稿2019/10/01 04:27

x_x

総合スコア13749

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

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

Silky

2019/10/01 11:49

ご回答ありがとうございます。 試してみたのですが、右側のマージンだけを左より常に10px大きくしたいのですが、左右のマージンの大きさが一緒になってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問