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

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

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

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

Q&A

解決済

2回答

2227閲覧

画像の下に要素が重なってしまいます。

sanayaaan

総合スコア25

CSS

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

0グッド

0クリップ

投稿2020/08/05 12:19

編集2020/08/05 12:43

画像の下にサブのナビゲーションを作成したいのですが、
トップ画像の下にナビゲーションが入り込んでしまいます。

イメージ説明

html

1<div id="top-wrapper"> 2 <div class="top-image"> 3 <div> 4 <img src="./images/staypageimg/topimage.jpg"> 5 </div> 6 </div> 7</div> 8 9<div id="sub-navigation"> 10 <ul> 11 <li><a href="#">宿泊プラン</a></li> 12 <li><a href="#">客室紹介</a></li> 13 <li><a href="#">朝食のご案内</a></li> 14 <li><a href="#">夕食のご案内</a></li> 15 <li><a href="#">ルームサービス</a></li> 16 </ul> 17</div>

CSS

1#top-wrapper{ 2 padding:0; 3 width: 100%; 4 position: relative; 5 height: 633px; 6 } 7 8.top-image img{ 9 display: flex; 10 justify-content: center; 11 align-items: center; 12 width:100%; 13 } 14 15#sub-navigation ul li { 16 display: table-cell; 17 vertical-align: middle; 18 text-align: center; 19 table-layout: fixed; 20 width: 10%; 21 min-width: 50px; 22 list-style-type: none; 23 color: #5f5f5f; 24 transition: color 0.3s; 25 border-right: 1px solid #aeaeae; 26 border-left: 1px solid #aeaeae; 27 background-color: #ececec; 28 margin-bottom:0 ; 29} 30 31#sub-navigation li+ li{ 32 border-left:0; 33 border-right: 1px solid #aeaeae; 34} 35 36#sub-navigation ul li:hover { 37 border-bottom:4px solid #22224d; 38 transition: 0.3s; 39} 40 41#sub-navigation ul li a { 42 display: block; 43 color: #5f5f5f; 44 text-align: center; 45 text-decoration: none; 46 font-size: 13px; 47 padding: 8px 0; 48}

こちらの質問を見つけて試しましたがダメでした。
https://teratail.com/questions/154402

そしてずうずうしいのを承知でもう一つ質問をさせていただくのですが、
ナビゲーションの背景の色を画面いっぱいにするにはどうしたらいいのでしょうか。。
.sub-navigation に background-color を指定して、width:100%にするのかなと思い試してみましたがダメでした。。

初歩的な質問で大変恐縮ですが、よろしくお願いいたします。

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

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

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

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

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

Jon_do

2020/08/05 12:26

貼り付けられたコードに画像が有りません。 画像の幅や高さ、画像を囲んでいるコードなど情報が足りませんので修正をオススメします。
sanayaaan

2020/08/05 12:44

ご指摘ありがとうございます。 追加させていただきました。
guest

回答2

0

ベストアンサー

Daregadaさんの回答に追加で、

css

1/* 2#top-wrapper { 3 padding: 0; 4 width: 100%; 5 position: relative; 6 height: 633px; 7} 8*/ 9 10.top-image img { 11 /* 12 display: flex; 13 justify-content: center; 14 align-items: center; 15*/ 16 width: 100%; 17 height: 633px; 18 object-fit: cover; /* これを追加 */ 19} 20 21/* 追加 */ 22#sub-navigation ul { 23 background-color: #ececec; 24} 25 26(以下略)

ただ、背景画像なら、imgタグではなく、cssの background-image で表示させる方法をお勧めします。

css

1#top-wrapper { 2 padding: 0; 3 width: 100%; 4 position: relative; 5 height: 633px; 6 background-image: url(./images/staypageimg/topimage.jpg); 7 background-size: cover; 8} 9 10/* 追加 */ 11#sub-navigation ul { 12 background-color: #ececec; 13}

imgタグだと画像のゆがみを防ぐために、object-fit が必要ですが、IEは非対応。
background-image だと、background-size: cover; ですが、これはIEでも対応。

追記

コメントより

ちなみにお教えいただいたbackground-imageにて背景画像を指定した場合、背景画像の上にもう一枚小さな画像を重ねて中央表示をさせるにはどのようにしたらいいかご存知でしょうか。

background-* プロパティは , で区切って複数設定できます。
例えば、背景画像を領域全体に表示させて、縦横150pxの画像を中央に表示させる場合は下記のようにななります。

css

1#top-wrapper { 2 padding: 0; 3 width: 100%; 4 position: relative; 5 height: 633px; 6 background-image: url(./images/staypageimg/150x150.png), 7 url(./images/staypageimg/topimage.jpg); 8 background-size: 150px 150px ,cover; 9 background-repeat: no-repeat; 10 background-position: center; 11}

background で各background-* プロパティをまとめて設定することもできます。

css

1#top-wrapper { 2 padding: 0; 3 width: 100%; 4 position: relative; 5 height: 633px; 6 background: center/150px 150px no-repeat url(./images/staypageimg/150x150.png), 7 center/cover no-repeat url(./images/staypageimg/topimage.jpg); 8}

Codepenサンプル

background - CSS: カスケーディングスタイルシート | MDN

投稿2020/08/05 13:45

編集2020/08/05 21:01
hatena19

総合スコア34075

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

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

sanayaaan

2020/08/05 14:40

ご回答ありがとうございました!大変助かりました。 ちなみにお教えいただいたbackground-imageにて背景画像を指定した場合、背景画像の上にもう一枚小さな画像を重ねて中央表示をさせるにはどのようにしたらいいかご存知でしょうか。もしお分かりになりましたらお教え頂けますと幸にございます。次から次へとすみません。
hatena19

2020/08/05 21:02

回答に追記しましたのでご参照ください。
sanayaaan

2020/08/06 11:24

ご丁寧にありがとうございました。感謝いたします。
guest

0

CSS

1/* 2#top-wrapper { 3 padding: 0; 4 width: 100%; 5 position: relative; 6 height: 633px; 7} 8*/ 9 10.top-image img { 11 /* 12 display: flex; 13 justify-content: center; 14 align-items: center; 15*/ 16 width: 100%; 17 height: 633px; 18} 19 20/* 追加 */ 21#sub-navigation ul { 22 background-color: #ececec; 23} 24 25(以下略)

投稿2020/08/05 13:09

Daregada

総合スコア11990

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

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

sanayaaan

2020/08/05 14:41

ご回答ありがとうございました。おかげさまで無事解決することができました。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問