アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問があります。

まずウェブサイトを作成する言語として、htmlよりxhtmlの方が推奨されているように思えるのですが、どの言語を使うかの違いで、htmlでも問題はないですよね?また、xhtmlの方がかっこいいという風潮があったりしますか?

それと、htmlのDTDで、html 4.01の後にW3CのURLを記述するものとしないものがありますが、これはどう違うのでしょうか?
私が以前URLを記述するタイプのもので宣言した時、cssでレイアウトが思うようにいかず、スタイルシートはそのままでURL部分を削除しただけで、レイアウトうまくいくようになった経験があります。
どのような影響があるのか教えてほしいです。よろしくお願いいたします。

A 回答 (4件)

>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
    • good
    • 0

>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ではありません。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありません。
分かりやすいご回答ありがとうございました!

お礼日時:2010/12/25 18:09

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 ですらこんなものをいちいち書かざるをえなくなったのは、残念なことだと個人的には思います。
    • good
    • 0

かっこいいとかそんなことでどの仕様を使うかなんて決めません。


古いブラウザにも対応させようとすれば、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専用ページは、互換モードでないと崩れる。
    • good
    • 0

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