teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

参考サイトを追加

2018/06/01 04:42

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

answer CHANGED
@@ -53,4 +53,6 @@
53
53
  レスポンシブコーディングをする際にはメディアクエリは必須となりますので、
54
54
  もしご存知ない場合は勉強してみてください。
55
55
 
56
+ 参考:[https://techacademy.jp/magazine/9369](https://techacademy.jp/magazine/9369)
57
+
56
58
  解決にお役立てできますよう。

1

回答を最新情報に合わせて更新いたしました

2018/06/01 04:42

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

answer CHANGED
@@ -1,7 +1,56 @@
1
+ 追記を拝見して回答を修正いたします。
2
+
3
+ 最終的にどのようなレイアウトにされたいのか、
4
+ まだちょっとピンときていないので思った通りになるか解りませんが…
5
+
6
+ ■要素の高さに合わせたければ背景画像はその要素に指定する事
7
+
8
+ が前提となります。
9
+
10
+ ※HTMLの<center>タグは、他の方も仰っていらっしゃいますが
11
+ HTML4以降では確実に非推奨のため使用しない方がよいかと思います。
12
+ 使用した場合、スマホやsafariなどのブラウザでバグが起こることを覚悟されてください。
13
+
14
+ 下記修正してみました。
1
- ```CSS
15
+ ```HTML
16
+ <html>
17
+ <head>
18
+ <style>
19
+ .main {
20
+ text-align:center; /* 要素を中央揃えにします。<center>の代わりです */
21
+ background-attachment: fixed;
22
+ background-image: url(/img/header.png);
2
- background-size:cover;
23
+ background-position: center;
24
+ color: #ebebeb;
25
+ }
26
+    @media (max-width: 767px) { /* スマホの場合 */
27
+     .main {
28
+ background-attachment:inherit; /* fixedの解除。エラー予防 */
29
+ background-size:cover; /* 要素全体に背景画像を合わせる */
30
+  }
31
+    }
32
+ </style>
33
+ </head>
34
+ <body>
35
+ <div class="main-wrap">
36
+ <div class="main">
37
+  テスト(h1があるのでbrはいりません。勝手に改行されます。文字を入れるなら、divやpで囲う方がいいと思います)
38
+  <h1>テスト</h1>
39
+ </div>
40
+      ※もしここにも要素が入って、それを含めた背景画像にしたい場合は、背景の指定は.main-wrapになります。
41
+ </div>
42
+ </body>
43
+ </html>
3
44
  ```
4
- で実装できそうな気がしますが、
5
- 「画像が設定されている親要素」の縦サイズいっぱいに画像を合わせるのではなく、「画像が設定されている親要素の中にある一つの要素に対して実装したい」ということでしょうか?
6
45
 
46
+ .mainに高さ指定をしていないので、この形なら.mainの高さで背景は切れるはずです。
7
- もしそうであればメディアクエリなどを用いて画像を再設定する必があるかもしれません
47
+ もし、.mainの外側の素に指定たいなら.main-wrapに背景指定を
48
+ body全部に指定したいならbodyに指定してください。
49
+ (今仰っている、要素全部に背景が入って縦長になるっていう状態がこれっぽいですね)
50
+
51
+ .mainにかけてるのに背景の位置がおかしい場合、<center>がバグの原因の可能性が高いです。
52
+
53
+ レスポンシブコーディングをする際にはメディアクエリは必須となりますので、
54
+ もしご存知ない場合は勉強してみてください。
55
+
56
+ 解決にお役立てできますよう。