- 締切済み
レスポンシブデザインの複数の背景画像について
Q.背景画像3点を表示する方法 1)#header 2)#footer 3)背景画像 ※例1 例1:HEAD、HTML ┃-moz-background-size: 100% auto; ┃background-size: 100% auto; 2点まではこちらで上手く標示されます。 例2:通常画像として ┃img { ┃ max-width: 100%; ┃ height: auto; ┃ width: auto\9; /* ie8 */ ┃} 画像の上に文字などを記述したいときに困る。 hight、widtwを指定するとサイズが変わったときに デザインが崩れてしまうので、 どの様に記述したらいいでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
あくまで、HTML5とCSS3です。 HTML4.01で作成する場合は、それぞれの要素をclassに変更しスタイルシートも書き換えること <section>→<div class="section"> CSS2.1の範囲内で行うなら、countent:url()で画像を指定して、position:absolute;z-index:0;とかで順番を決める。 さらに旧ブラウザに対応させるなら、<img>要素で画像を配置して、display:block;にして、position:absoluteでテキストをその上に置く。 対応ブラウザの範囲を決めて書くこと。たとえブラウザのはージョンが想定したものより低くても、閲覧に支障がないデザインにすること。必要なら代替スタイルシートを用意する。 タブは、_に、:は:(全角)に置換してあります。 <!doctype html> <head> _<meta charset="utf-8"> _<title>サンプル</title> _<meta name="description" content=""> _<meta name="author" content="IRUKA"> _<!--[if IE]> __<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> __<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> _<![endif]-->_<link rel="stylesheet" href="css/style.css"> <style media="screen"> <!-- html,body{margin:0;padding:0;} body{width:100%;height:100%;position:relative;} header{min-height:160px;width:100%;position:fixed;top:0;left:0;background:url(./images/sample.jpg) no-repeat 50% 50% aqua;;background-size:100% 100%;} footer{min-height:160px;width:100%;position:fixed;bottom:0;left:0;background:url(./images/profile.gif) no-repeat 50% 50% lime;background-size:100% 100%;} section{background-color:silver;padding-top:160px;color:green;margin:0;} section *:first-child{margin-top:0;} section *:last-child{margin-bottom:0;} section:nth-child(3){padding:0 0 160px 0;color:red;} --> </style> </head> <body> _<header> __<h1 id="title">Your title</h1> __<nav> ___<ul> ____<li><a href="#">Some</a></li> ____<li><a href="#">navigation</a></li> ____<li><a href="#">links</a></li> ___</ul> __</nav> _</header> _<section> __<h2>A smaller heading</h2> __<p> ___1テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___2テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___3テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___4テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___5テストテストテスト・・・・・・・・・・・・・・・・ __</p> _</section> _<section> __<h2>A smaller heading</h2> __<p> ___2-1テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___2-2テストテストテスト・・・・・・・・・・・・・・・・ __</p> __<p> ___2-3テストテストテスト・・・・・・・・・・・・・・・・ __</p> _</section> _<footer> __<h3>A nice footer</h3> _</footer> </body> </html>
- ORUKA1951
- ベストアンサー率45% (5062/11036)
やっぱり、なにをされたいかがわかりません。 HTMLが下記だとして・・・HTML4.01の場合、それぞれを<div>のclass名とする。 <article><!-- ないかも --> <header> </header> <section> </section> <footer> </footer> </article> で、 ・ページ全体の背景の表示方法 ・headerの背景の表示方法 position,width,heightになにを期待するか(以下同様) ・sectionの背景の表示方法 ・footerの背景の表示方法
補足
回答ありがとうございます。 MediaQueryでウィンドウ全体にフィットしたページを制作したいと思っております。 ・ページ全体の背景の表示方法 articleにタイル状の背景画像 ・headerの背景の表示方法 position,width,heightになにを期待するか(以下同様) 横幅がフィットしたリピートのしない一枚画像を載せます ・footerの背景の表示方法 ヘッダー同様 高さ、幅を指定するととウィンドウサイズが変わった時に横幅に長い画像なので余白が出来てしまいます。 指定しない場合はdiv内の文字などが少ない場合、途切れてしまいます。 普通の画像で配置したならば画像の上には文字などが書き込めないので、 何か方法はないかと考えておりますが、 なかなかいい案はないので困っています。 何度もお答えいただきまして誠にありがとうございます。 回答お待ちしております。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
>hight、widtwを指定するとサイズが変わったときにデザインが崩れてしまうので、 ウェブデザインとは言いません。DPE( http://ja.wikipedia.org/wiki/DPE )という別の世界のデザインです。 【引用】____________ここから HTML文書が、ブラウザやプラットフォームの違いを超えてうまく働くべきであるということは、多くが認めるところである。 相互運用性の達成は、コンテンツプロバイダのコストを低下させる。なぜならただ1種類の文書しか作る必要がなくなるからだ。 ・・・・・【中略】・・・ HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より ウェブデザインのもっとも根幹の重要なポイントは、ただ一点『どんな環境からもWebの情報を利用できるようにすべきだ』の一点に尽きます。 三点画像と言う意味が質問文からは、背景画像がなぜimg要素なのかとか、どのようなものか判断できませんが、IE8以前は、background-sizeに対応してません。その時点で「どんな環境からも・・」に反しますが、新しいブラウザ限定で考えるなら、bodyに背景、div.articleに背景、div.sectionに背景、div.footerに背景でしょう。その場合もbackgrund-size非対応のブラウザでも利用に問題ないようにデザインします。 ウェブ上のデータは、HTMLの出生である科学文書でないにしても「文書のプレゼンテーションよりも中身にこそ関心が持たれる。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )」のです。DPE的なデザインしかできないようでは、「角をためて牛を殺す」ことになります。 厳しいアドバイスになりましたが、間違った脇道にそれようとされているようなので、回答させていただきました。もう一度ウェブデザインとは何かをご再考ください。 きっと明るい未来が開けます。
補足
回答ありがとうございます。 今回は、レスポンシブとはウィンドウ幅に合わせてデザインするものと考え、iPhoneなどのデザインに対応するものとし、古いバージョンのブラウザについては言及しないとします。 質問文にサイズを指定しない場合は、 div要素でくくった場合ウィンドウ幅が変わってしまった場合、 div要素からはみ出す部分が白く抜けてしまうことを示唆してありますので、 回答いただいた内容では質問の解決には至りませんでした。 IE8以前の対応であるならば、jQueryなどのjsを使用したものをが最適であると考えられますが、 希望はできる限りcss3、html5にてウィンドウサイズに合わせて変動する画像を3点重なる様にデザインを考えています。 具体的には、パララックス効果のある画面を考えておりますので、 背景にタイル状になった画像を1点、ヘッダー部分、フッター部分にそれぞれ画像を設置を考えました。 その場合、例1でのデザインが一番理想通りになりますが、その場合htmlとbosyの二か所にしか設置する方法を存じ上げておりませんので、 例2での画像に最大値、最小値を指定する場合ですと、画像の上にデザインを施したい場合多少無理があります。 そこで、div要素に例1を指定した場合のみですと、上記と同様にうまくデザインが施されなかったので、何が足りないのか、その他に最適な記述はないかという回答を求めておりました。 わざわざ長文の回答をいただいたのですが、問題の質問をご理解されていらっしゃらなかったようで、 質問内容が分かりにくく大変申し訳ございません。 何か、他にご存知の記述方法がございましたらご回答いただきますようお願い申し上げます。
補足
コメントありがとうございます。 こちらですと、 ヘッダーフッターの画像が横幅が縮むのみとなってしまうので、 一枚の画像が残念な感じとなってしまいます。 多少文章のみでは分かりにくいので、 こちらのサイトのような画像に印象があるものが、 そのままの形できゅっとiPhone、iPadにフィットするようなものを考えておりますが、 むずかしいでしょうか。 www.duirwaigh.com