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

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

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

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

CSS

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

Q&A

解決済

1回答

15615閲覧

要素が重なってしまう(div,Flexbox,inline-block)

arahito

総合スコア18

HTML

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

CSS

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

1グッド

0クリップ

投稿2019/04/22 11:11

前提・実現したいこと

ヘッダー部の左側にタイトルロゴ、右側にユーザー名、ページリンク、検索窓を配置
これらの配置はflexでspacebetweenと使用しています。
↑は意図する表示になっているのですが、右側をdiv要素で囲い、さらにネストして囲って分けているのですが、右側の要素が重なってしまいます。
検索窓とそれ以外をそれぞれdivで囲って(子要素)、それをさらにdivで囲い(親要素)、親要素をFlexにすれば良いのか、Flexにしなくても子要素をそれぞれinline-blockにすれば良いのだろうと思っていたのですが、上手くいきません。
親要素、子要素の関係からわかりやすく説明していただけると助かります。

※検索窓はCSSでデザインされたものをコピペで拾ってきているものです。

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

要素同士が重なる

該当のソースコード

index.html

1<div class="header_wrapper"> 2 <div class="title"> 3 <h1>タイトル.</h1> 4 </div> 5 <div class="header_right"> 6 <div class="search_form"> 7 <form id="form4" action="" method="get"> 8 <input id="sbox4" id="s" name="search" type="text" placeholder="例)" /> 9 <button id="sbtn4" type="submit"><i class="fas fa-search"></i></button> 10 </form> 11 </div> 12 <div class="user_info_wrapper"> 13 <p>こんにちわ<u> {{username}} </u>さん</p> 14 <a href="{{constant('gift\Bootstrap::ENTRY_URL')}}mypage.php">マイページ</a> 15 <a href="{{constant('gift\Bootstrap::ENTRY_URL')}}logout.php">ログアウト</a> 16 </div> 17 </div> 18</div> 19

index.css

1.header_wrapper { 2 display: flex; 3 justify-content: space-between; 4 align-items: center; 5 height: 200px; 6 margin-bottom: 0px; 7} 8 9/* タイトルロゴ */ 10.title { 11 display: block; 12 font-size: 78px; 13 letter-spacing: 4px; 14 font-style: bold; 15 font-family: 'Righteous', cursive; 16 margin-left: 4px; 17} 18 19.header_right { 20 display: flex; 21 width: 30%; 22 /* justify-content: center; 23 align-items: center; */ 24} 25/* 検索窓 */ 26.search_form { 27 display: block; 28} 29#form4{ 30 position:relative; 31 max-width:300px; 32 margin-bottom:20px; 33 } 34 #sbox4{ 35 height:50px; 36 padding:0 10px; 37 position:absolute; 38 left:0; 39 top:0; 40 border-radius:25px; 41 outline:0; 42 background:#eee; 43 } 44 #sbtn4{ 45 height:50px; 46 width:50px; 47 position:absolute; 48 left:250px; 49 top:0; 50 background:#7fbfff; 51 color:#fff; 52 border:none; 53 border-radius:0 25px 25px 0; 54 } 55 #sbtn4 .fa-search{ 56 font-size:20px; 57 position:absolute; 58 top:30%; 59 left:30%; 60 } 61 #sbtn4:hover{ 62 color:#888; 63 } 64 65/* ユーザー名 */ 66.header_wrapper .user_info_wrapper { 67 display: block; 68} 69 70.header_wrapper .user_info_wrapper p { 71 margin-bottom: 6px; 72}

試したこと

補足情報(FW/ツールのバージョンなど)

s.matsushita👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

CSSの#sbox4と#sbtn4のposition: absolute;が重なりの原因です。
単純にposition: absolute;を削除すれば重なりは解除されます。
absoluteはその場で浮いてるような状態なので、浮いてる下に要素が入り込み、重なったようになったのです。

投稿2019/04/22 12:02

gogojp

総合スコア211

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

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

arahito

2019/04/22 12:13

解決しました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問