幼稚園時代「何組」でしたか?

フレームを使用できるのは、HTML4.01・XHTML1.0のフレームセット型DTDのみで、XHTML1.1では使用できないということは、今後新しいXHTMLでは完全にフレーム関係の要素は使用できなくなるということでしょうか?
回答よろしくお願いします。

A 回答 (2件)

とりあえず,まあざっくりと。


>XHTML1.1では使用できない

実は、んなことないのよね。

XHTML 1.0(副題:A Reformulation of HTML 4 in XML 1.0)は
HTML 4.01を
ある程度互換性を持たせて
XML 1.0に合わせて書き直したものだった。

XHTML 1.1(副題:Module-based XHTML)は
今までの各要素を分類してそれぞれをモジュールとし、
各々のXHTML記述者が必要なモジュールを取り込んだり外したりして使うような設計になっている。

フレーム関連は例として挙げられている
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
の中でIGNORE(無視)に設定されているだけ。

Legacy Moduleを取り入れてあげて
(Transitional相当が有効になる。この地点でiframeは有効。フレーム関連を使うには有効にしないと。)
さらに,XHTML Framesを有効にする。
この追加に伴う,Document Modelの変更と,notationの二度読みを防ぐ処理をすれば
以下のように使用可能だ。

(ただし、IEは別なバグの都合上エラーが出る)

ちなみにこの場合はHTML 4.01やXHTML 1.0 Strictと違い,
frameset要素を使わずStrict同等の書き方をしてもW3C Markup Validatorに怒られない。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[

<!ENTITY % xhtml-legacy.module "INCLUDE">
<!ENTITY % xhtml-frames.module "INCLUDE">
<!ENTITY % xhtml-prefw-redecl.module "INCLUDE" >
<!ENTITY % xhtml-prefw-redecl.mod PUBLIC "-//W3C//ELEMENTS XHTML Legacy Redeclarations 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-legacy-redecl …
<!ENTITY % xhtml-notations.module "IGNORE" > <!-- 二度読みの防止 -->
<!ENTITY % xhtml-model.mod
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" >


]>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ほげほげ</title>
</head>
<frameset>
<frame src="hoge.html" />
<frame src="fuga.html" />
<noframes>
<body>
<p><a href="http://www.satoshii.org/markup/dtd/xhtml11-msxml …別なバグ</a></p>
</body>
</noframes>
</frameset>
</html>

一応XHTML 1.1ではLegacy扱いのframeも,
XHTML 2.0では「一応」XHTMLの規格から消えている。
http://www.w3.org/TR/xhtml2/introduction.html

>Frames and Framesets: In HTML 4 multi-panel "pages" could be described using the frameset and frame elements. The Frames model is no longer defined in XHTML. Instead, if is defined through the separate [XFRAMES] specification.

俺の主観ではあるが,XHTML 2.0では

●br要素(break)の変わりにl要素(line)要素を導入
●body要素直下以外に置いていいのか悩むh1-h6要素や多用されるdiv要素の代わりに
入れ子に出来るsection要素とh要素を導入
●dl要素の子としてdi要素が登場してより柔軟に
●href属性がいろんな要素につけられるように

等といったXHTML 1.1までにあった問題点の解消の他に

フォーム関連を扱うXForms,フレーム関連を扱うXFrames,リンク関係を扱うXLink,数学を扱うMathML,
ベクター系画像を扱うSVG等
それぞれ別規格に分けて洗練させ、その成果をXHTML 2で取り込むようにしよう、としているような印象がある。

XFramesでは既存のXHTML 1.0やHTML 4にあった,「リロード(例:ブックマークからの再アクセス)するとページの状態が元に戻ってしまう」「文章に直接関係の無いtarget属性をつけなきゃいけない」等の問題点をフレーム構造を単独のxfmファイルに書き、それぞれの部分に対して,挿入される内容をURIで指定するようにするといった形で見事に解決している。現状ではブラウザ側での対応は絶望的だと思うが,個人的には期待している規格の一つ。

===========================
話は変わるが、
CSS 3 Hyperlink Presentation Moduleでは
target プロパティ、等も提案されている。
http://www.w3.org/TR/css3-hyperlinks/#target0

アドオンとか無くても,自分でユーザースタイルシートを書き換えて
統一できる!

=====
#DTDにも問題があるといえばある。XML規格では認められている,名前空間接頭辞の中途変更ができないとか

#それにしてもmiya_HNさん,連続して質問を出していた頃と比較すると
段違いに成長したね。
    • good
    • 0
この回答へのお礼

まだ、HTMLの要素しか勉強していなので深くは分からないのですが、完全にフレーム関係の要素が使用できなくなるわけではないんですね。
それに、HTMLもどんどん進化してるんですね。
フレーム関係の要素が消えるわけではなく、新しい規格で新しく生まれ変わるということでしょうか。

ありがとうございました。

お礼日時:2008/03/19 11:14

XHTML1.1はXTHML1.0Strictがベースで、


1.0にあるカテゴリ的なもの(StrictやTransitional)も無くなるので
XHTML1.1でコーディングするならフレームセットは使えません。

でもブラウザがHTML4.01・XHTML1.0のフレームセット型DTDをサポートする限り
「フレームは使える」もしくは「まだフレームは使ってもいい」という感じになるんじゃないでしょうか。

ブラウザが対応しなくなったら完全に「フレームセット終了」だと思います。
    • good
    • 0
この回答へのお礼

ブラウザが対応しなくなるまでですか。今のところは現在のフレーム関係の要素が使えるわけですね。

ありがとうございました。

お礼日時:2008/03/19 11:24

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