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

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

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

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

CSS

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

Q&A

解決済

2回答

702閲覧

Airbnbの模写について

ryouk

総合スコア4

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/06/09 14:37

編集2020/06/10 05:50

前提・実現したいこと

Airbnbの模写をしています。https://www.airbnb.jp/host/homes?_set_bev_on_new_domain=1591182041_YTU3NzBhMWNiMjQ4
背景画像の下に「なぜAirbnbでホスト?」から続けて書きたい。
でも背景の上に表示されてしまいます。

該当のソースコード

html

1<!doctype html> 2<html> 3<head> 4 <meta charset="UTF-8"> 5 <title>模写コーティング</title> 6 <link rel="stylesheet" href="./style.css"> 7 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"> 8</head> 9<body> 10 <header> 11 <div class="container"> 12 <div class="wrapper"> 13 <ul class="nav"> 14 <img src="images/140717newairbnblogo.jpg" > 15 <li><a href="#">概要</a></li> 16 <li><a href="#">準備</a></li> 17 <li><a href="#">安全</a></li> 18 <li><a href="#">マネープラン</a></li> 19 </ul> 20 </div> 21 </div> 22 </header> 23 <div class="back-img"> 24 <button class="btn" type="button" onclick="location.href='移動先のファイルのパスを書く'">はじめる</button> 25 <div class="text-background"> 26 <div class="text"> 27 <section> 28 <h1 class="host">Airbnbホストになって、暮らしをレベルアップ</h1> 29 <p class="stay">宿泊施設の内容を記述</p> 30 </section> 31 <input type="text" class="address" value="大阪" size="35"> 32 <select name="name" class="plan"> 33 <option value="enteir_home">まるまる貸切</option> 34 <option value="private_room">個室</option> 35 <option value="share_room">シェアルーム</option> 36 </select> 37 <select name="many-peron" class="person"> 38 <option value="guest1">ゲスト1</option> 39 <option value="guest2">ゲスト2</option> 40 <option value="guest3">ゲスト3</option> 41 42 </select> 43 <button class="btn2" type="button" onclick="location.href='移動先のファイルのパスを書く'">はじめる</button> 44 </div> 45 </div> 46 </div> 47 48div.container { 49 margin-left: -15px; 50} 51/*左上の画像のフォント*/ 52img { 53 height: 40px; 54 width: 80px; 55 margin-top: 20px; 56} 57 58 59/*概要とかのところ*/ 60li a { 61 margin: -3em 0; 62 padding: 5em 1em; 63 display :block; 64 color:rgba(0, 255, 196, 1); 65} 66/*ボタンのところ*/ 67.btn{ 68 border-radius: 5px; 69 background-color: green; 70 padding-top: 10px; 71 padding-bottom: 30px; 72 text-align: center; 73 color: white; 74 position: relative; 75 bottom: 60px; 76 float: right; 77 right: 30px; 78 } 79 80.btn2 { 81 margin-top: 30px; 82 margin-bottom: 30px; 83 margin-left: 50px; 84 background-color: green; 85 padding: 20px; 86 text-align: center; 87 color: white; 88 width: 350px; 89 height: 20px; 90 border-radius: 5px; 91 padding-bottom: 30px; 92 padding-top: 10px; 93} 94 95 96/*背景画像のところ*/ 97.back-img { 98 width: 100%; 99 background-image:url('https://a0.muscache.com/4ea/air/v2/pictures/9d08d356-59b9-4ac4-9f41-5b9c13c2b211.jpg?t=n:ope,e:fjpeg-c75'); 100 background-size: cover; 101 position: absolute; 102 103 104} 105 106.host { 107 font-size: 40px; 108 margin-left: 40px; 109 margin-right: 40px; 110 padding: 10px; 111 font-weight: bold; 112 margin-top: 10px; 113} 114 115.stay { 116 margin-left: 50px; 117 font-weight: bolder; 118 border-style: initial; 119} 120 121.address { 122 margin-left: 50px; 123 margin-bottom: 20px; 124 border-radius: 10pxpx; 125} 126.plan { 127 margin-left: 50px; 128 border: ; 129 width: 40%; 130 height: 50px; 131} 132.person { 133 margin-left: 20px; 134 border: ; 135 width: 30%; 136 height: 50px; 137} 138.text-background { 139 background-color: white; 140 float: right; 141 max-width: 460px; 142 margin:78px 92px 143} 144 145.text-background2 { 146 background-color: white; 147 max-width: 460px; 148 margin:78px 92px 149}
### 試したこと 新たにdivタグを作りclassを指定して書いていこうとしましたが、背景と重なって表示されてしまいます。

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

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

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

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

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

m.ts10806

2020/06/09 20:50

コードのマークダウンできていません。 下記参考に。 https://teratail.com/questions/238564 >2時間ググりましたが 時間をかかれても伝わるものはありません。 「投入したキーワード」「参考にした記事URLなど」「試したこと」をセットで記載してください。
guest

回答2

0

ベストアンサー

position: absoluteで配置された要素の後続要素は、配置された要素がないものとして配置されます。
そこにあるものをないものとして配置しますから、当然に重なります。


解決方法は、position: absoluteをやめることです。

css

1.back-img { 2 width: 100%; 3 background-image: url('https://a0.muscache.com/4ea/air/v2/pictures/9d08d356-59b9-4ac4-9f41-5b9c13c2b211.jpg?t=n:ope,e:fjpeg-c75'); 4 background-size: cover; 5 /* position: absolute; */ 6 display: flow-root; /* 追加 */ 7}

position: absoluteを消すだけだと、内部の要素がフロートしているため、高さを失って潰れますので、適切にブロック整形コンテキストを生成する必要があります。

ブロック整形コンテキストは、以下のうちの少なくとも一つから生成されます。

  • 文書のルート要素 (<html>)
  • ...
  • 絶対位置指定の要素 (position が absolute または fixed である要素)
  • ...
  • display: flow-root
  • ...

ブロック整形コンテキスト - 開発者ガイド | MDN

ここでは、display: flow-rootを使っています。
歴史的にはclearfixoverflow: hiddenなどが使われてきたので、そちらでもいいでしょう。

投稿2020/06/10 07:09

編集2020/06/10 07:21
Lhankor_Mhy

総合スコア36960

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

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

ryouk

2020/06/10 13:33

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

0

.back-imgに背景画像を設定しているので、その通りになると思います。

背景画像に設定したら画像の上に文字が来ることは明白です。

元のコードやデザインを見てないですが、別途imgタグを追加するか、他の要素に背景画像を指定すれば良いのでは?

投稿2020/06/09 23:16

kyoya0819

総合スコア10429

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問