1

両方が画面の幅を占めるようにいくつかの iframe を表示しようとしていますが、左側の最初の iframe はすべてのコンテンツを表示するのに十分な幅しかありません。JavaScript を使用するいくつかのソリューションを見てきましたが、なぜこれが必要なのか理解できず、CSS3 のみを使用して実現したいと考えています。

私は CSS3 仕様 ( http://www.w3.org/TR/css3-box/#Calculating ) の一部を読んでいますが、理解するのは少し難しいですが、「縮小して合わせる」を使用する必要があるようです。 "自動幅を指定した場合。ただし、これは行いません。たとえば、次のコードでは、frame1.html には 2 番目のテーブルの最初の td と同じ内容が含まれ、frame2.html には 2 番目のテーブルの 2 番目の td と同じ内容が含まれます。

<!doctype html>
<html>
<head>
<title>Frame Test</title>
</head>
<body>
<table>
<tr>
<td><iframe src="frame1.html"></iframe></td>
<td><iframe src="frame2.html"></iframe></td>
</tr>
</table>
<table>
<tr>
<td>Hello</td>
<td>Goodbye ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</td>
</tr>
</table>
</body>
</html>

ただし、左側の iframe には余分なスペースがたくさんあります。なんで?私の最善の推測は、iframe が外側のタグ (例: html または body タグ) に余分なスペースを挿入していることです。 td の場合とは異なります。(関連するアルゴリズムの明確でわかりやすい説明があればいいでしょう!) html タグまで伝播する幅と高さのさまざまな設定を試しましたが、何も動作しないようです。

収まるように縮小しないのはなぜですか?その要素が実際に占めるスペースのみを使用するのですか?

4

1 に答える 1

1

HTML/CSSの意味での「コンテンツ」が実際には含まれiframeていないためだと思います。

実際の DOM でスタイルを設定するのは簡単です。それが CSS の目的です。しかし、iframeは、親から独立した、まったく異なる DOM へのウィンドウです。親ページは の「コンテンツ」を認識してiframeいないため、これらのコンテンツに合わせて の寸法をスタイル設定できませんiframe

非常に多くの人が示唆するように... フレームを避けるようにしてください。私の経験では、それらは価値があるというよりも問題です。単一の DOM 内でスタイルと動作を維持する方がはるかに簡単です。

于 2012-07-08T06:27:19.747 に答える