imgタグとレスポンシブについて
imgタグなどのようなインライン要素は、
ブロック要素で囲まないといけないと聞いたのですが、下記のような形でナイトいけないのですよね
下記のように直前にブロック要素で囲まれていないといけないのでしょうか?
<div class="copyright">
<img src="img/base/copyright.png" alt="のコピーライト" width="382" height="24" />
</div>
下記のように直前にブロック要素で囲まれていないといけないのでしょうか?
それとも直接ブロック要素で囲まれていなくてもずっと先にブロック要素があってそこから入れ子になっていればいいのでしょうか?
~
<td class="copyright">
<address>
〒***-*** **県**市**町 1-5-10 <span>TEL.0977-84-****</span>
</address>
<ul class="futtnavi">
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
</ul>
<img src="img/base/copyright.png" alt="会のコピーライト" width="382" height="24" />
</td>
~
下記はだめですよね。
<H2>画像</H2>
<IMG src="img/img0.jpg" width="120" height="90" alt="写真" border="0" align="top">
文字が上揃えになります<BR>
<BR>
<IMG src="img/img1.jpg" width="120" height="90" alt="写真" border="2">
枠の太さを2にしています<BR>
<BR>
<IMG src="img/img2.jpg" w
また、もうひとつになってしまうのですが、下記のimg をフルイドイメージにしたい場合は画像のたて、横はば割る直前のブロック要素のtdのwidthと縦幅(クロームのf12で出てくるpx)で出した%を
ul.futtnavi+img {
width: 67.3%;
height: 18%;
}
のように入れれば良いのですよね。
tdのサイズは567px,133px
imgは382、24です。
うまくぴったりのサイズになりません。
スマホでは消えます。
またtdの中の内容が増えた場合毎回計算しなおさないといけないのでしょうか?
~
<td class="copyright">
<address>
〒***-*** **県**市**町 1-5-10 <span>TEL.0977-84-****</span>
</address>
<ul class="futtnavi">
<ul class="futtnavi">
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
</ul>
<img src="img/base/copyright.png" alt="会のコピーライト" width="382" height="24" />
</td>
No.1ベストアンサー
- 回答日時:
>imgタグなどのようなインライン要素は、ブロック要素で囲まないといけないと聞いたのですが、
また聞きではだめですよ。基本から
HTML(Hyper Text Markup Language)は、文書をそれを構成する要素に分解し、ひとつひとつの要素をタグを用いてマークアップするメタ(機械相手の)言語(機械相手の)です。
由来はSGMLです。⇒Standard Generalized Markup Language#背景 - Wikipedia( http://ja.wikipedia.org/wiki/Standard_Generalize … )
★そのために、それぞれの要素は、何を含む事ができるかが決められています。
段落(Paragraph)要素は、
<!ELEMENT P - O (%inline;)* -- paragraph -->
( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
意味は
<!要素 P 開始タグ-必須 終了タグ0省略可 (%inline行内要素)*0個以上 --段落 -->
p要素には、他のブロック要素は含むことができないことを意味します。そして、終了タグが省略可能ですから、つぎにブロック要素が登場すると、自動的にこの段落要素は終了と見なされます。
body要素は、
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
ですから、
<!要素 BODY 開始タグO省略可 終了タグO省略可能
(%block;|SCRIPT)ブロック要素かスクリプト要素+一つ以上 +および(INS|DEL)の何れかも可能 -- 文書の本文 -->
ということ。
※HTML要素は、BODY要素のみ必須ですから、<body></body>で囲まれていなくても、それがbodyだと判断されます。(開始タグ/終了タグとも省略可能なので)
★以上のことから、
※body要素内にはブロック要素しか置けないために、画像のような行内要素(%inline)は、必然的に必ずブロック要素の中にしか存在しないことになります。
『imgタグなどのようなインライン要素は、ブロック要素で囲まないといけない』
は結果としては正しいですが、根本的な意味は間違っています。
body要素直下にimg要素は置けない!!です。
・・・・・以下、サンプルに対して・・・・・・・
><div class="copyright">
<img src="img/base/copyright.png" alt="のコピーライト" width="382" height="24" />
</div>
DIVはむやみに使いません。HTML5ではこの使い方はできなくなります。
<p class="copyright"><img src="img/base/copyright.png" alt="のコピーライト" width="382" height="24">
</p>
とかです。
<td class="copyright">
<address>
★決して、文書を成型するためにtableを使用してはなりません!!
『単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
『 ⇒ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
と、1999年HTML4.01勧告以来、随所で厳しく指摘されています。
>下記のimg をフルイドイメージにしたい場合は
>のように入れれば良いのですよね。
いいえ、リキッドの場合は、img要素をブロック要素にして、static以外の抱合ブロックのサイズを参照させます。
>下記はだめですよね。
<H2>画像</H2><!-- h2はブロック要素ですからOK -->
<IMG src="img/img0.jpg" width="120" height="90" alt="写真" border="0" align="top">
<!-- h2を含む全体がDIVで囲まれていれば文法的には誤りではありませんが、文書構造上は
謝りになります。なぜなら、次にブロック要素が現れた時に、仮想ブロックを作らなければならなくなる。-->
<!-- imgのborder,align属性は非推奨です。-->
文字が上揃えになります<BR><BR>
<!-- brは段落内の視覚的強制改行です。行間を調整するために使用してはなりません。ブラウザによると連続したbrは無視するものもあります -->
<IMG src="img/img1.jpg" width="120" height="90" alt="写真" border="2">
<!-- border要素は非推奨です スタイルシートで -->
以上ですが、一言で言うとHTML4.01移項のHTML文書作成の根幹である「構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」が、まったくできていません。
<body>
<div class="header">
<!-- 文書のヘッダ部であることをclassで -->
</div>
<div class="section">
<!-- 文書の本文であることをclassで -->
</div>
<div class="footer">
<!-- 文書のフッタであることをclassで -->
<address>
〒***-*** **県**市**町 1-5-10 <span class="tel">TEL.0977-84-****</span>
</address>
<ul><!-- フッターのナビゲーションは囲まない -->
<li><a href="/index.html">トップ</a></li>
<li><a href="/sitemap.html">サイトマップ</a></li>
</ul>
<p>株式会社ABC</p>
</div>
</body>
※DIVに使用するidやclassは、あくまで『文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』ですよ。デザインのためじゃない。
これが理解されなかった反省からHTML5では文書構造を示す要素が追加され( http://standards.mitsue.co.jp/resources/w3c/TR/h … )、DIVは他に適切な要素があるとき以外は使えなくなります。
『Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable.( http://www.w3.org/TR/html5/grouping-content.html … )』
比較のため最後にHTML5で書いた例を上げておきます。
1) リキッドでデザインしましょう。
2) 画像自体がそのページのコンテンツでないときは背景にします。
リンクの背景とか、見出しの背景とかにする。
3) HTML4.01勧告時に「HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」
とされました。HTML5が勧告を迎えました。(2014.09.16)5日前
[HTML5]
<body>
<header>
<!-- 文書のヘッダ部 -->
<header>
<section>
<!-- 文書の本文 -->
</section>
<footer>
<!-- 文書のフッタ -->
<address>
〒***-*** **県**市**町 1-5-10 <span class="tel">TEL.0977-84-****</span>
</address>
<ul>
<li><a href="/index.html">トップ</a></li>
<li><a href="/sitemap.html">サイトマップ</a></li>
</ul>
<p>株式会社ABC</p>
</footer>
</body>
>『imgタグなどのようなインライン要素は、ブロック要素で囲まないといけない』
は結果としては正しいですが、根本的な意味は間違っています。
body要素直下にimg要素は置けない!!です。
つまり、下記のimgはbody直下でないのでOKなのですね。
~
<td class="copyright">
<address>
〒***-*** **県**市**町 1-5-10 <span>TEL.0977-84-****</span>
</address>
<ul class="futtnavi">
<ul class="futtnavi">
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
<li><a href="http://index.html"><img src="img/base/sitemap.png" alt="サイトマップ" width="101" height="18" /></a></li>
</ul>
<img src="img/base/copyright.png" alt="会のコピーライト" width="382" height="24" />
</td>
body要素直下出なければインライン要素はブロック要素で囲まなくても良いのですか?
No.2
- 回答日時:
>body要素直下出なければインライン要素はブロック要素で囲まなくても良いのですか?
ですから、ちゃんと読まないと・・
<body>
<strong>ここは大事です。<a href=""><img src="" width="" height="" alt=""></a>
</body>
はダメです。なぜなら<strong><a><img>すべて行内要素ですからね。
★BODY要素内にはブロック要素しか置けない≠画像はブロックで囲まないとならない
この二つ、まったく意味が違いますよ。
画像の前後を<p></p><div></div>で囲めばよいとも違いますね。
★「構造とプレゼンテーションの分離」の良いサンプル
Chrome以外の代替スタイルシートが利用できるブラウザで
⇒ナビゲーションリストを様々にデザインしてみよう。( http://www.ichiya.com/WebService/Howto/sample/HT … )
に行って、表示→スタイルシートへ進み、色々なスタイルを選択してみてください。ウィンドウ幅を変えてみたり、印刷プレビューを確認しても良いです。
スタイルシート無しで画像の読み込まない状態が検索エンジンが理解するページです。SEO的にも完璧
あわせて、このページをAnother HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html )でチェックしてみても良いでしょう。
文書構造(HTML)とプレゼンテーション(スタイルシート)が独立していますから、HTMLの変更も、デザインの変更も楽です。気が向いたときにデザインを自由に変更できる。
たぶん、ウェブページの作成方法、スタートを間違えられて??、沢に迷い込まれてらっしゃる。スタート時点に戻って本道を歩まれるほうが、はるかに早く簡単じゃないかと。やがてHTML5の時代が来ます。HTML5は、文書構造とプレゼンテーションは完全に分かれています。
HTML4.01の勧告時の予告参照!!
【引用】____________ここから
推奨しない
推奨しない要素・属性とは、新しい枠組みができたことによって、陳腐化したものを指す。推奨しない要素は、リファレンスマニュアルの各所で定義し、推奨しないことを明記する。推奨しない要素は、HTMLの将来のバージョンでは廃止になる可能性がある。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
皆が通ってきた道です。頑張ってください。私は15年前、50代にHTML書き始めました。そして、このような壁に何度もぶつかりました。
一度HTML4.01の仕様書を通しで読んで置かれることをお勧めします。
そのほうが、絶対に早いですし簡単です。
>
★BODY要素内にはブロック要素しか置けない≠画像はブロックで囲まないとならない
この二つ、まったく意味が違いますよ。
画像の前後を<p></p><div></div>で囲めばよいとも違いますね。
つまりbody直後にブロック要素が来てればOKということではないのですか?
body
div
h1
h1
img
div
でもOK
body
img
div
h1
h1
div
では駄目なのですよね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンをセル内一杯に表示させ...
-
HTMLの文章中の画像のベースラ...
-
画像リンクの枠線の消し方
-
画像リンクの周りに線が出ます
-
フォームのボタンをsubmitから...
-
htmlで画像を2個ずつ並べていき...
-
css:リンク画像の枠消し: a i...
-
スペーサーの透過GIFの大きさ指...
-
htmlの文字が縦書きになる
-
Macで画像の切り抜きできないの?
-
CSSのクラス名・ID名の指定でワ...
-
画像イメージの上下左右、欲し...
-
html/cssの、navを2段にする...
-
【ヒトの神秘】美男美女から何...
-
複数のボタンを等間隔に、かつ...
-
smallにtext-allignが効かない
-
HTML属性での「""」 「''」違い
-
<div align="center">を使わず...
-
改行ほどは行かないけど、若干...
-
Media Queries 4 で 非推奨とな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リンクを知らせる手のマークが...
-
ボタンをセル内一杯に表示させ...
-
HTMLのIMAGEに。。
-
inputタグでサーバにデータを送...
-
UDP通信を使うチャットプログラ...
-
画像の場合のみ、下線を消す方...
-
画像のサイズが変わらない
-
機種依存文字、m2(平方メート...
-
XML画像データををHTMLで簡単に...
-
画像をクリックして元に戻すには
-
Dreamweaverで画像⇔画像のアン...
-
favicon.ico はもういらない?
-
cssで、チェックボックスの画像...
-
下記が私のHPのタグなのですが
-
同一URLの連続アクセス方法
-
アップロードするとレイアウト...
-
HTMLタグのDL DT DDを使ってli...
-
ルートパスの動作確認
-
htmlで画像を2個ずつ並べていき...
-
画像リンクの周りに線が出ます
おすすめ情報