1

サイト マスターで vs2010 の既定のテンプレートを使用して、ASP.net で Web サイトを作成しています。画像の間に常に空白があるため、その下にスパンがある画像が整列しないという奇妙な結果が得られました。私は何時間もマークアップを見て、最終的に必死になってプレーンな .htm ファイルを作成し、そこに自分の html をコピーしました。驚いたことに、これは実際に機能したので、さらに 1 時間違いを比較した後、テンプレートが site.master を作成することに気付きました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

で.htmファイルを作成しますが、

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Strict (レイアウトでエラーが発生する) と Transitional (レイアウトが期待どおりであることを意味する) の違いを説明できる人はいますか?

VSに警告があります

validation (xhtml 1.0 transitional): element 'h2' cannot be nested within element 'span'

Strict を使用している場合、これがエラーの原因である可能性があると思いますが、それを回避する方法がわかりません。

編集:エラーの原因となっている問題のブロックは次のとおりです

<a href="http://somelink.com">
    <img src="Images/test.png alt="Test" />
    <span class="Styling for hovering">
        <h2>
            Test
        </h2>
        <p>
            This Is A Test
        </p>
    </span>
</a>

画像とその下のテキストによってアクティブ化されるリンクを作成しようとしています。テキストをコンテナに保持したい。コンテナにカーソルを合わせると、コンテナの背景が変わります。また、スパンに固定サイズを設定しました。これが、それらの周りにある種のコンテナが必要な主な理由です。

4

2 に答える 2

2

<h2>使用する DOCTYPE に関係なく、ブロック レベル要素 ( ) をインライン要素 ( ) 内に配置することはできません<span>。そのため、そのエラーが発生しています。<span>は通常スタイリングに使用されるため、それを削除してCSS<span>を使用してスタイルを設定し、必要に応じ<h2>て表示できると思います。

于 2012-05-23T18:05:42.670 に答える
1

簡単な答えは?

トラディショナル = <font>、<center>、<s> などの旧式の非推奨の HTML タグを許可し、HTML で行うべきではないことについて非常に寛大にします。

Strict = css を使用してこれらのタグのほとんどを置き換え、W3C が定義する方法でルールを適用します。

長い答え: W3C の HTML 仕様タイプごとに25 以上のページ仕様を読むことができますが、新しいページを作成する場合は、おそらくXHTML 1.0 Strictに固執するようにしてください。 future と Transitional は、一部のグラフィック デザイナーにヘビージービーを与えます。:)

W3schoolsには、各タイプが多かれ少なかれ何を意味するかについてのかなり良い内訳があります。

XHTML 1.0 Strictこの DTD には、すべての HTML 要素と属性が含まれていますが、表示要素や非推奨要素 (フォントなど) は含まれていません。フレームセットは許可されていません。マークアップは、整形式の XML として記述する必要もあります。

XHTML 1.0トランジショナル この DTD には、すべての HTML 要素と属性が含まれています。これには、表示要素と非推奨要素 (フォントなど) が含まれます。フレームセットは許可されていません。マークアップは、整形式の XML として記述する必要もあります。

于 2012-05-23T19:59:59.493 に答える