質問があります。
まずウェブサイトを作成する言語として、htmlよりxhtmlの方が推奨されているように思えるのですが、どの言語を使うかの違いで、htmlでも問題はないですよね?また、xhtmlの方がかっこいいという風潮があったりしますか?
それと、htmlのDTDで、html 4.01の後にW3CのURLを記述するものとしないものがありますが、これはどう違うのでしょうか?
私が以前URLを記述するタイプのもので宣言した時、cssでレイアウトが思うようにいかず、スタイルシートはそのままでURL部分を削除しただけで、レイアウトうまくいくようになった経験があります。
どのような影響があるのか教えてほしいです。よろしくお願いいたします。
No.1
- 回答日時:
>xhtmlの方がかっこいいという風潮があったりしますか?
ここ5年程度でXHTMLが増加しましたから、
静的サイトの場合、
ソースを見ないユーザーにはわからない方が多いので無関係ですが、
制作関係者がみたらXHTMLでないと、古臭いと思われるかも・・・
"-//W3C//DTD HTML 4.01//EN" がフォーマル公開識別子で、
"http://www.w3.org/TR/html4/strict.dtd" などの部分がシステム識別子です。
全部宣言すると標準準拠モードで解釈されますので、CSSの解釈が変わるわけです。
常に標準モードで制作して、慣れる方が良いとも思いますが、
他者制作物の部分変更などは、過去互換モード (Quirks)でのCSSの挙動を解釈しないといけませんね・・・
また、
XHTMLのXML宣言の有り無しや、DOCTYPEの不適切宣言や1行目の扱いなどでも
モード(DOCTYPEスイッチ)が切り替わります。
その他、IE6などもサポートしたら制作時間が増加しますw
No.2ベストアンサー
- 回答日時:
>htmlでも問題はないですよね?
はい。
>xhtmlの方がかっこいいという風潮があったりしますか?
プログラムで読み取ったりするときはXMLパーサが使えるのでxhtmlの方が便利ですが、html5の方が今風です。
>私が以前URLを記述するタイプのもので宣言した時、cssでレイアウトが思うようにいかず、スタイルシートはそのままでURL部分を削除しただけで、レイアウトうまくいくようになった経験があります。
ブラウザのレンダリングモードで、標準モードとQuirks("奇妙な"と言う意味で昔のブラウザとの互換用)モードがあるのをご存じでしょうか?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
だと、Quirksモード、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
だと標準モードになります。標準モードでうまくレイアウト出来ないというのは、あなたのHTMLやCSSが標準規格に則っていないと言うことです。IE4、IE5時代のHTML/CSSをそのまま使いたいのであれば、Quirksモードを選択することになります。
細かいことですが、DOCTYPE宣言の中の http://www.w3.org/TR/html4/loose.dtd 等はURLではありません。
No.3
- 回答日時:
XHTML は XML の枠組みに従っており、XML 関連のツールを適用できます。
今どきのプログラミング言語系なら XML ライブラリを標準で持っています。理念的なことを言えば、XML は数十年先でもデータを読み出せることを目的とする汎用構文です(たかだか十数年前のワープロファイルですら、読み取りの難しい現状を思い出して下さい)。しかし、こと Web ページで使われている XHTML に関して言えば、マトモなものは極めて少ないです。世の中の XHTML で書かれている(と制作者が思い込んでいる)Web ページの多くは、XML として「壊れて」おり、使いものになりません。
そのため、ブラウザも XHTML として処理するのをあきらめ、ほとんどは従来の HTML として処理しています。だったら、その「従来の HTML として処理する方法」を標準化してしまえ、というのが HTML5 の目的の 1 つです。
---
IE 6.0 で追加された機能の 1 つに、HTML 4.01 に準拠しきちんと DOCTYPE 宣言を書いているページ上では標準的なスタイルシート解釈をし、古い(間違った)HTML の書き方をして DOCTYPE 宣言を書いていない古いページ上では従来の(バグのある)スタイルシート解釈をする、という DOCTYPE スイッチがありました。
HTML 4.01 Transitional は、その名が示す通り古いバージョンからの移行措置(transition)用です。そのためか、Transition 文書型に関しては、DOCTYPE 宣言にシステム識別子(URI)があれば標準モード、なければ互換モードという、中間の振る舞いをします。
したがって、システム識別子(URI)を削除して「うまくいった」なら、標準的ではない「昔のバグ持ち」モードならうまくいったということであり、決して手放しで喜べる状態ではありません。
---
DOCTYPE スイッチは、本来の DOCTYPE 宣言の用途とは何の関係もありません。しかし、Web ページ上で DOCTYPE 宣言が本来の用途で用いられる可能性はほぼ皆無であり、ほとんどが DOCTYPE スイッチのためだけに使われていることから、HTML5 では DOCTYPE スイッチのためだけに DOCTYPE 宣言を残しました。それが下記です。
<!DOCTYPE html>
これは現状の多数派ブラウザの振る舞いをもとにして定義されていますので、今でもこれだけで標準モードになります。XML 処理にさほど興味がなく、Web ページ制作だけに集中したいのであれば、HTML5 でやっていくのをお勧めします。
---
余談ながら、XMLとしては、SGML の遺物である DOCTYPE 宣言を徐々になくしていきたかったと思われます(DTD でないとできないことが僅かながら存在したので、一気に廃止することはできませんでした)。DOCTYPE スイッチなどというもののせいで、HTML5 ですらこんなものをいちいち書かざるをえなくなったのは、残念なことだと個人的には思います。
No.4
- 回答日時:
かっこいいとかそんなことでどの仕様を使うかなんて決めません。
古いブラウザにも対応させようとすれば、HTML3.2でもよい。新しいブラウザであっても古い仕様で書かれたHTMLを表示できることが求められています。
【引用】____________ここから
HTMLユーザエージェント
・・・【中略】・・・
HTML 4仕様に適合するユーザエージェントとは、この仕様の必須事項と下記の3点とを遵守するもののことを指す。
* 略
* 略
* 過去との互換性のため、HTML 4 を解釈するツールについては、HTML 3.2 ([HTML32]参照)並びにHTML 2.0 ([RFC1866]参照)をもサポートすることを推奨する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
新しいHTMLを使うことを求める意見としては
・文書構造が分かりやすい
HTML3.2当時は、本来の要素が文書構造を無視した使われ方をしていた
本来はプレゼンテーションに課すべきものが要素として指定されていたなど
また、XHTMLを使うのは、ブラウザへの負担を軽減することや、他の、あるいは独自のXML要素が使えるからです。
MathMLを使って数式を表現できるとか・・・。
<m:red>ここは赤で</m:red>で表します。
とか。
その必要がないのにわざわざXHTMLで書く必要はないでしょう。
私は個人の(利用者は古いブラウザの人も多い)サイトはHTML4.01 strictで、仕事用のページはXHTMLです。たとえばこんな書き方ができる
<dl>
<shop:product>商品名</<shop:product>
<shop:price>\12,000-</shop:price>
</dl>
とか・・
> htmlのDTDで、html 4.01の後にW3CのURLを記述するものとしないも
> のがありますが、これはどう違うのでしょうか?
これは、ブラウザにどちらのモードを使うか指示するためです。
たとえば下記サイトなどに説明があります。
文書型宣言とブラウザでの表示 ( http://web8341.info/advanced/dtd.htm )
> 私が以前URLを記述するタイプのもので宣言した時、cssでレイアウトが思うようにいかず、
それは、たぶんIEでしょうね。ウェブ標準的で作成されていないページ、すなわちIE専用ページは、互換モードでないと崩れる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- ASP・SaaS FC2 BLOG <AUDIO TAGを入れプレビューはOk テーンプレートを更新すると ✖ 1 2023/08/14 11:40
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- HTML・CSS HTMLとCSS(ブラウザ関連)について質問です。 1 2023/03/07 08:07
- 日本語 「どちら(どっち)」「どれ」の使い方 4 2022/10/09 15:58
- HTML・CSS Affinger6でトップページに記事をタイル状に並べたい 1 2023/05/20 14:55
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
lang 英語と日本語など混ざる時は
-
甲府市にあった穂積という料亭...
-
perlで異なる名前のファイルを...
-
ラミチエ
-
ドライアイスの持続時間
-
フォルダの中の特定のファイル...
-
セイヨウタンポポとカントウタ...
-
四字熟語のシャッフル
-
noindexタグを試作ページの段階...
-
襟足
-
jQueryにてformの中を書き換え...
-
日本人20歳男身長170cm...
-
You Are The Sunshine Of My Li...
-
鉄腕アトム:トビオの母親
-
恋愛用語かなにかで、AとかBの...
-
ゆうぱっく、午前中指定で埼玉→...
-
手作りのエコバック
-
HTMLで「固定ウィンドウ」の出し方
-
ホームページでファイルをダウ...
-
<!DOCTYPE html>あってますか?...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セイヨウタンポポとカントウタ...
-
lang 英語と日本語など混ざる時は
-
noindexタグを試作ページの段階...
-
javaでhtmlファイルを開く方法
-
Excel VBA :URLの中で変数を使...
-
ベーシック認証時、キャンセル...
-
インラインフレームの横スクロ...
-
メール本文に変な文字が
-
iframeの中のページのリンクを...
-
複数のファイルをdiffで比較す...
-
フォルダの中の特定のファイル...
-
相対パスでリンクできない
-
VBAからhttpを呼びソースを取得
-
HTML5の宣言で画像に隙間が出来...
-
jQueryにてformの中を書き換え...
-
鉄腕アトム:トビオの母親
-
You Are The Sunshine Of My Li...
-
中埜酢店 のよみかた
-
Apacheのドキュメントルートを...
-
htmlのinput type="date"をgett...
おすすめ情報