フレームが悪いのは知っています。しかし、私はもう少し彼らに固執する必要があります。私の問題は、「frameset」要素の非標準の「border」属性に起因します。
<frameset border="0">
...
</frameset>
その属性を使用しない場合、ブラウザは各フレームの間にギャップを置きます。属性を使用すると、HTMLバリデーターは「サポートされていない属性」に関するエラーをスローします。
「それを使ってバリデーターを無視する」と言っているのを聞きましたが、それで問題ありません。私はバリデーターの警告を1つ付けて生きることができると思いますが、ブラウザーもそれについてあまり心配していないようです:)
私の質問は主にHTMLのトリックについてです。境界線を0に設定し、ブラウザとの互換性を維持するにはどうすればよいですか?これは、将来の同様の問題の演習と考えてください。たとえば、私は試しました:
<frameset onload="this.border='0'">
そしてそれはうまくいきませんでした。
内側のフレームでスタイルシートを使用して「border:0; margin:0; padding:0」を設定しようとしましたが、どちらも機能しませんでした。ギャップは未知のソースから来ているようです。
私は次のようにJavascriptで書くことを考えました:
document.write('<frameset border="0">');
しかし、とにかく検証されないだろうという予感があります。
別の解決策を考えられますか?
うまくいかなかった他の解決策:
- @Donut:「frame」または「frameset」要素のいずれかの「frameborder」属性
- @kangax:frameSetObj.setAttribute('border'、0);