プロが教えるわが家の防犯対策術!

初歩的な質問失礼致します。

フレキシブルデザイン、リキッドデザインでは基本的に各要素の幅を%指定すると知ったのですが、<img>タグで記述する画像はどのように幅を指定したらよいのでしょうか??
また、もしウインドウ幅に合わせて拡大するように指定したい場合、その画像の解像度は、
サイト幅に指定したmax-widthに合わせて作っておくといいのでしょうか??

どなたか教えていただけないでしょうか??

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

A 回答 (2件)

画像要素は、置換インライン要素に分類される要素ですから置換される画像サイズに依存します。


 そこでブロック要素にして、幅を直近のstatic以外のコンテナブロックのサイズを参照して%で指定するのがセオリーでしょう。高さはautoで良いです。(多くのブラウザはblockに再指定しなくてもきちんと処理してくれますが、指定しておいたほうが良いでしょう。)

>サイト幅に指定したmax-widthに合わせて作っておくといいのでしょうか??
 直近のstatic以外のコンテナブロックのサイズ
 ⇒9.3.1 位置決め方式の選択: 'position'プロパティ( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )

スマートフォンサイト デザイン - Webデザイン・CSS - 教えて!goo( http://oshiete.goo.ne.jp/qa/8515919.html )
 で例示したHTML5をHTML4.01strictに変更したものです。それと合わせてご覧ください。

 背景は伸縮させない(CSS2.1では伸縮できない、CSS3ならbackground-sizeで可能)で、
 ⇒透明divの下に長い余白ができてしまう - Webデザイン・CSS - 教えて!goo( http://oshiete.goo.ne.jp/qa/8518974.html )
 のサンプル参照

[サンプル]
★タブは_に置換してあるので戻す。
★htt:はhtt:(全角)に変更してあるので戻す
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
 でチェック済み

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
<style type="text/css">
<!--
html,body{margin:0;padding:0;background-color:gray;}
h1,h2,h3,h4,h5,h6,p{margin:0;line-height:1.8em;}
p{text-indent:1em;}
div.section div.figure img{display:block;width:95%;height:auto;margin:5px;auto;}
div.section div.figure p{margin-right:0;text-align:center;text-indent:0;}
-->
</style>
<style type="text/css" media="screen">
<!--
div.header div.nav{background-color:silver;height:2em;}
div.header div.nav ul{list-style:none;margin:5px;padding:0;text-align:center;line-height:2em;}
div.header div.nav ul li{display:block;float:left;width:30%;position:relative;margin:0 1%;}
div.header div.nav ul li a{display:block;width:100%;height:100%;border:outset 3px yellow;background-color:yellow;text-decoration:none;}
div.header,div.section,div.footer{width:95%;min-width:460px;max-width:790px;padding:5px;margin:0 auto;background-color:silver;border:1px solid silver;}
div.section{position:relative;clear:left;}
div.section div.figure,
div.section h2,
div.section p{margin-right:160px;width:auto;min-width:300px;position:relative;}
div.section figure img{border:white 5px solid;}
div.section div.aside{font-size:0.9em;width:155px;position:absolute;right:0;top:0;}
-->
</style>
<style type="text/css" media="print">
<!--
div.header div.nav li a{color:black;text-decoration:none;}
div.header div.nav li a:after{content:" URL→ (href://hoge.com"attr(href)")";}
div.footer{page-break-before:always;}
div.footer h3:before{content:"(改ページ)\A";white-space:pre;}
-->
</style>
</head>
<body>
_<div class="header">
__<h1 id="title">Your title</h1>
__<div class="nav">
___<ul>
____<li><a href="/">Some</a></li>
____<li><a href="/b">navigation</a></li>
____<li><a href="/c">links</a></li>
___</ul>
__</div>
_</div>
_<div class="section">
__<h2>富士山</h2>
__<p>
___富士山(ふじさん)は、山梨県と静岡県に跨る活火山である。標高3,776 m、日本最高峰の独立峰で、その優美な風貌は日本国外でも日本の象徴として広く知られている。
__</p>
__<div class="figure">
___<img src="http://upload.wikimedia.org/wikipedia/commons/d/d5/FujiSunriseKawaguchiko2025WP.jpg" width="960" height="640" alt="">
___<div class="figcaption">
____<p>河口湖からの富士山</p>
___</div>
__</div>
__<div class="aside">
___<h3>富士五湖</h3>
___<ul>
____<li>本栖湖-もとすこ</li>
____<li>精進湖--しょうじこ</li>
____<li>西湖--さいこ</li>
____<li>河口湖--かわぐちこ</li>
____<li>山中湖--やまなかこ</li>
___</ul>
__</div>
_</div>
_<div class="footer">
__<h3>A nice footer</h3>
_</div>
</body>
</html>

この回答への補足

ご回答ありがとうございます。
追加の質問をさせてください。



1.>幅を直近のstatic以外のコンテナブロックのサイズを参照して%で指定するのがセオリーでしょう。
「直近のstatic以外のコンテナブロック」というのは<img>を囲む親要素ということですか?

2. HTMLにて<img>要素にwidth height属性を指定しいても、CSSで%指定すると、大きさはそちらの値になるのでしょうか?

3.各要素のmargin / padding も %指定で統一するものなのでしょうか??


あつかましい質問すいません、よろしくお願い致します。

補足日時:2014/03/23 19:12
    • good
    • 0

1.>幅を直近のstatic以外のコンテナブロックのサイズを参照して%で指定するのがセオリーでしょう。


「直近のstatic以外のコンテナブロック」というのは<img>を囲む親要素ということですか?

 HTMLにおいて、「囲む」というような考え方はしない。 あくまでHTMLは要素(Element)の積み重ねです。「そのIMG要素を含む」です。
 positionの値はstatic(初期値)、relative、absolute、fixedがあります。
 
2. HTMLにて<img>要素にwidth height属性を指定しいても、CSSで%指定すると、大きさはそちらの値になるのでしょうか?
 widthなどの属性での指定は詳細度0として扱われます。

3.各要素のmargin / padding も %指定で統一するものなのでしょうか??
 状況次第です。

 ⇒Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification (ja)( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )
 をまずお読みください。このような質問場所では断片的で、しかも不正確な情報であふれています。仕様書には正確にすべて書かれています。その中で分からない部分を聞くような使い方をするほうが効率的です。また身にもつきます。
 特に
5 セレクタ
6 プロパティ値とカスケーディング、継承の割り当て
 あたりはプロパティの説明よりは先に確実に身につけないとスタイルシート利用できません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!