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

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

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

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

HTML5

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

Q&A

解決済

1回答

792閲覧

メインビジュアルにCSSで背景画像を指定した際に、ナビゲーションが上に重なってしまう

sato_tobari

総合スコア1

CSS3

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

HTML5

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

0グッド

0クリップ

投稿2023/03/27 00:49

実現したいこと

  • ナビゲーションをメインビジュアルの下に配置する

前提

コーディング初心者です。
HTMLとCSSの練習として、架空の店舗のホームページを制作しています。

メインビジュアルを数枚の画像が入れ替わるアニメーションにしています。(CSSで表示する画像を定義、アニメーション設定)

発生している問題・エラーメッセージ

イメージ説明
上の画像が実際にコーディングしているサイトです。
ナビゲーションをメインビジュアルの下に配置したいのですが、メインビジュアルに重なってしまいます。(ついでに、ナビゲーションの文字が中央ぞろえになりません…汗)

該当のソースコード

【HTML】      <div class="slider"> <div class="image"> <img src="img/main_01.jpg"> </div> <div class="image"> <img src="img/main_02.jpg"> </div> <div class="image"> <img src="img/main_03.jpg"> </div> </div> <header class="mainvisual"> <div class="rogoo">  <h1 class="rogo"> <img src="img/rogo.png">   </h1>  <p class="rogo"> <img src="img/scroll.png" width="150px">   </p> </div> <div> <nav> <ul> <li><a href="index.html" class="nav_padding">ホーム</a></li> <li><a href="#news" class="nav_padding">お知らせ</a></li> <li><a href="#concept" class="nav_padding">こだわり</a></li> <li><a href="about" class="nav_padding">きこりのぱんやについて</a></li> <li><a href="#menu" class="nav_padding">メニュー</a></li> <li><a href="#shop info" class="nav_padding">店舗情報</a></li> </ul> </nav> </div> </header>
【CSS】 /* メインビジュアルのスライダー 全体設定*/ .slider{ position: absolute; top: 0; left: 0; overflow: hidden; width: 100%; height: 100vh; z-index: -1; } /* スライダー画像 */ .slider .image{ position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; background-repeat: no-repeat; background-position: center center; background-size: cover; } /*スライドに表示する画像を定義*/ .slider .image:nth-of-type(1){ background-image: url(img/main_01.jpg); } .slider .image:nth-of-type(2){ animation-delay: 5s; background-image: url(img/main_02.jpg); } .slider .image:nth-of-type(3){ animation-delay: 10s; background-image: url(img/main_03.jpg); } /*アニメーション設定*/ .slider .image{ animation-name: anime; animation-delay: 0; animation-iteration-count: infinite; animation-duration: 15s; } /* アニメーション定義 */ @keyframes anime { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; transform: scale(1.18); } } /* ロゴ */ .rogoo { z-index: 1; margin-top: 100px; } .rogo { display: flex; align-items: center; justify-content: center; flex-direction: column; } /* ナビゲーション */ nav{ width: 100%; padding: 20px; background-color: #EED9BD; } .nav_padding:hover { opacity: 0.3;/* ホバー時透過 */ } header ul { display: flex; } header li { list-style: none; } header a { text-decoration: none; color: #000; } .nav_padding { padding-left: 80px; }

試したこと

.imageにdisplay:blockを指定してブロック要素にしたらもしかして、と思いましたが、変わりませんでした。

調べても解決せず、困っています…。
質問の仕方や、コーディングの面でも拙い部分が多々あるかと思いますが、ご回答いただけますと本当に嬉しいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

.slider{ position: absolute;

このcssによってスライダー要素の高さが無視されている状態です。
この記述は不要だと思いますので削除することと、HTML構造を見直してください。
absoluteで絶対位置を指定するのであれば、親要素にrelativeをセットで使用することをオススメします。

HTML

1<div class="mainvisual"> 2 <div class="slider"> 3 ... 4 </div> 5 <div class="rogoo"> 6 ... 7 </div> 8</div> 9 10<header> 11 ... 12</header>

ナビゲーションの中央配置は以下で可能です。

CSS

1header ul { 2 display: flex; 3 justify-content: center; 4}

投稿2023/03/27 03:08

harami_

総合スコア128

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問