質問するログイン新規登録
HTML

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

CSS

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

Q&A

2回答

287閲覧

HTML/CSS 画像の上にナビゲーションを重ねて表示したい。

pujamaru611815

総合スコア2

HTML

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

CSS

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

0グッド

0クリップ

投稿2025/03/02 10:46

0

0

画像の上にナビゲーションメニューを重ねて表示したく、
画像に```
#main {
width: 100%;
margin: 0 auto;
position: relative;
z-index: 10;
}

ナビゲーションメニューに``` .header-nav { position: absolute; top: 60%; left: 30%; z-index: 11; }

を設定したのですが、画面のサイズが変わるとずれてしまい、レスポンシブデザインではなくなってしまいます。
どのようにしたら画像の特定の位置に固定できてどの画面サイズで見ても同じ位置に配置されるのでしょうか?イメージ説明

画面サイズが変わると・・・↓
イメージ説明

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

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

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

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

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

Lhankor_Mhy

2025/03/02 23:57

HTMLをご提示ください。
pujamaru611815

2025/03/03 03:07

<main> <div class="main"> <img src="img/main.png" alt="メイン画像" id="main"> <nav class="header-nav"> <ul> <li><a href="#works">WORKS</a></li> <li><a href="#skil">SKILL</a></li> <li><a href="#about">ABOUT</a></li> <li><a href="#contact">CONTACT</a></li> </ul> </nav> </div> コメントありがとうございます。 これが、該当部分のHTMLです。 よろしくお願いいたします。
pujamaru611815

2025/03/03 03:08

/* main */ .main { max-width: 100%; margin: 0 auto; } #main { width: 100%; margin: 0 auto; position: relative; z-index: 10; } .header-nav ul { display: flex; justify-content: center; margin-right: 120px; } .header-nav { position: absolute; top: 60%; left: 30%; z-index: 11; } .header-nav li { font-size: 20px; color: #547D55; margin: 0 20px; } .header-nav li:hover { opacity: 0.5; } 参考までに、こちらはCSSです。
guest

回答2

0

現状は、ナビゲーションメニューの水平配置を左から40%の位置に絶対配置しているので、画面幅を小さくすると右寄りになり最終的にははみ出します。これを改善したいということですよね。
垂直方向は現状の上から60%の位置でいいですよね。
(推測が違ったらご指摘ください。)

左から40%の位置に絶対配置するのではなく画像の中央配置になるようにすれば改善されるでしょう。

方法はいろいろありますが、現状のコードを活かすなら、
.header-nav ulにflexで中央配置を設定しているのでそれを活かすために、
親要素(.header-nav)の幅を100%にすればメニュー要素は中央配置になります。

css

1/* main */ 2.main { 3 max-width: 100%; 4 margin: 0 auto; 5 position: relative; /* 追加 */ 6} 7#main { 8 width: 100%; 9 margin: 0 auto; 10 z-index: 10; 11} 12.header-nav ul { 13 display: flex; 14 justify-content: center; 15 margin: 0; /* ul要素のデフォルトマージンをリセット */ 16} 17.header-nav { 18 position: absolute; 19 top: 60%; 20 width: 100%; /* 追加 */ 21 z-index: 11; 22} 23.header-nav li { 24 font-size: 20px; 25 color: #547d55; 26 margin: 0 20px; 27}

CodePenサンプル

投稿2025/03/03 05:38

hatena19

総合スコア34367

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

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

pujamaru611815

2025/03/03 05:59

回答ありがとうございます。 近しいものにはなりました! 画面サイズが変わるのと同時にナビゲーションメニューもサイズが小さくなって画像上の定位置に常に配置される・・・という風な設定は、できないのでしょうか? 画面サイズと画像は小さくなっていくのにナビゲーションメニューのサイズは変わらず・・・というのが気になってしまいます・・・。
hatena19

2025/03/03 06:18

ナビゲーションメニューはテキストですのでフォントサイズをvw(画面幅を基準にした単位)を使って設定すれば画面幅に応じてサイズを小さくできます。 ただ、テキストには読みやすいサイズというのがあるのであまり推奨はしません。 【初心者向け】CSSのvwとvhを理解しよう | 新潟のホームページ制作|Web制作会社 グローワークス https://groworks.jp/blog/4620
guest

0

とりあえず、これを追加するとどうですか。

css

1 .main { 2 max-width: 100%; 3 margin: 0 auto; 4 position: relative; /* これ */ 5 }

フォントサイズとかもあると思いますので、これだけでは完全に同じとはいかないと思いますが、多少はマシになるのでは。

投稿2025/03/03 03:18

Lhankor_Mhy

総合スコア37570

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

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

pujamaru611815

2025/03/03 03:21

回答ありがとうございます。試してみましたが 画面サイズが変わるとやはりナビゲーションメニューがずれてしまい、解決できませんでした。 何が問題なのでしょうか・・・
Lhankor_Mhy

2025/03/03 03:30

「ずれる」という現象を明確にした方がいいかもしれません。 当方の回答のサンプルを置いておきます。 https://jsfiddle.net/Lhankor_Mhy/ncyf2p49/ ご質問のスクリーンショットのようにトップバナーの下に表示されるようなことはなくなったと思いますが、後はどの部分を解決したい感じですか?
pujamaru611815

2025/03/03 06:01

ご丁寧にサンプルまで添付していただきありがとうございます。 画面サイズが変わるのと同時にナビゲーションメニューもサイズが小さくなって画像上の定位置に常に配置される・・・という風な設定は、できないのでしょうか? 画面サイズと画像は小さくなっていくのにナビゲーションメニューのサイズは変わらず・・・というのが気になってしまいます・・・。
Lhankor_Mhy

2025/03/03 08:44

hatena19さんのコメントのとおりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問