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

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

新規登録して質問してみよう
ただいま回答率
85.48%
レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

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

CSS

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

Q&A

解決済

3回答

1095閲覧

レスポンシブサイトで、ボックスを%指定にしたいのに高さが適応されなくて困っています。

hanae

総合スコア13

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/06/17 04:57

レスポンシブサイトで、ボックスのサイズ指定が適応されません。
widhtを%指定で行うと幅は適応されるのですが、heightを%指定にすると100%で指定しているのにデザイン画面でpxを確認すると30pxという謎の高さに設定(100%(30px))されてしまいます。
この為、背景画像が適切に反映されなくて困っています。

WEB上で確認すると、全く何も背景画像が表示されていない状態になるので、とりあえず700pxで定指しています。
PC画面だとこれでもいいのですが、レスポンシブ対応でスマホ画面では高さに余白ができてしまいます。

初心者でレスポンシブを十分に理解していない部分がありますが、ご回答いただければ幸いです。
コードは以下です。

<HTML>

<div class="wrap1"> <div class="txt-w2"> テキスト </div> </div>

<CSS>

.wrap1{
width:100% !important;
height:700px !important;
margin:0% auto;
padding:0%;
overflow:hidden;
max-width:1000px;

background-image: url("../images/画像.jpg"); background-repeat: no-repeat; background-position:center center; background-size:contain;

}

よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2019/06/17 05:55

コードはマークダウンのcode機能を理由してご提示ください(できればファイル単位にまとめてください)
guest

回答3

0

heightをパーセント指定する場合、親要素の高さが決まっていないと、height: auto;とみなされます。

ベースということでしたら、height: 100vh;と指定するのが手っ取り早いです。

投稿2019/06/17 05:03

maisumakun

総合スコア145183

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

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

hanae

2019/06/18 06:35

ご回答ありがとうございます。 やってみましたが結果が同じでした・・・ 余分な余白ができてしまい、スマホからは見にくい状態になってしまいます。
maisumakun

2019/06/18 06:41 編集

background-size:containとしていると、背景画像は「全部表示」することを優先して表示されますので、縦横比の合わない場合は隙間ができます。 「多少画面外にはみ出させてもいいから、縦横比を守りつつ全部背景で埋めることを優先する」場合は、background-size:coverが適切です。
guest

0

正方形の領域を確保したいのであれば、以下で良いような。

CSS

1#box { 2 padding-top:100%; 3 width:100%; 4 height:0; 5 background-color:#999;/*確認用に背景色*/ 6}

そういうことね…
画像の高さ÷幅×100を計算して、下のCSSに代入してください。

CSS

1#box { 2 padding-top:/*ここに計算結果*/%; 3 width:100%; 4 height:0; 5 background:url(/*画像パス*/); 6}

投稿2019/06/17 05:35

編集2019/06/18 07:52
LibertyBell3

総合スコア1084

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

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

hanae

2019/06/18 06:36

ご回答ありがとうございます! 正方形ではなく、バックグラウンドイメージの比率のまま表示させてレスポンシブしたいです。
LibertyBell3

2019/06/18 07:53

画像サイズが分からないので、ご自身で計算してくださいな。
guest

0

ベストアンサー

レスポンシブ(デザイン) とは

レスポンシブ・デザインとは、あるWebページを、画面サイズが異なる機器(PC, スマホ等)で観覧しても、ページが柔軟に見やすく表示されるように、CSSを設計する事です。

元々、レスポンシブ(responsive)とは、日本語に直すと「呼応的」くらいの意味に相当します。ですので、「レスポンシブなデザインにする」と言う場合、「観覧機器(の画面サイズ)に呼応するデザインにする」といった意味になります。

さて。レスポンシブにWebページを表示するためには、CSSを使うわけですが、方法は大きく分けると、2つ分けられます(…と思います…( ¯∀¯٥))。

  1. 長さの単位を、機器画面サイズを基準にした長さ,vw,vh等を使う
  2. メディアクエリを使う(@media ルール)

便利さ・お手軽さで言えば、2.のメディアクエリを使うのがベストだと、私見ですが思います。1.のみでレスポンシブ表示を実現する事は、恐らくは可能でしょうが、2.より柔軟性を欠き、さまざまな状況や兼ね合いを計算する必要があり、かなり難しいと思われます。

解決コード

スマホので観覧した場合のCSS(.warp1の高さ・背景画像サイズの修正)を、メディアクエリを使って書く

css

1 2.warp1{ 3 ... 4 height: 700px; /* !imoortant は付けないで。後のCSSの変更にかなり作用するので、 5 !importantを完全に理解するまでは、極力使用は避けてください。 6 後のCSSの変更が適用されなくなったりします。 */ 7 ... 8} 9 10/* 画面サイズが414px以下 の時、以下のCSSが"追加"される * 11/* (Apple iPhone 6+, 6s+, 7+, 8+ を最大値としています) * 12 * ソース: [mydevice.io](https://www.mydevice.io/#compare-devices) * 13 * */ 14@media (max-width: 414px){ 15 .wrap1{ 16 height: 300px; /* お好みの高さにして下さい。 */ 17 /* background-size: 横 縦 ; */ 18 background-size: auto 100%; 19 } 20}

各デバイス(機器)の画面サイズのpx(CSS)

おまけ: CSSのフレームワーク

CSSのレスポンシブデザインといえば、Web界隈ではよく知られているTwitter発のBootstrapというフレームワークがあります。JavaScriptとCSSがあり、両方合わせてブートストラップと呼ばれています。

ブートストラップのCSSに関して、もっと分かりやすく言えば、「Bootstrap.cssという名の、レスポンシブ表示に対応して書かれたCSSがあり、HTMLを書くときにBootstrap.cssで定義されたクラス名(.abc等)を利用する事により、簡単にレスポンシブ表示が実現できるよ」というものです。

フレームワークを一度使ってみるのも、レスポンシブ表示のための良い学習になるかと思います。

投稿2019/06/19 13:54

編集2019/06/20 03:08
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問