CGI-BBS > ホームページ記述言語 > HTML > フレーム内のスクロールバーにテキストが隠れる(IE6.0)


カレッヂ
カレッヂ


質問者 遅筆堂  投稿日 5/4(土) 16:25:11
はじめまして。
IE6.0において、フレーム内の縦スクロールバーの下にテキストが隠れてしまいます。横スクロールバーが出ますので、スクロールバーの幅程度の横スクロールをしないと縦スクロールバーの下のテキストを見ることが出来ません。スクロールバーの左側でテキストが折り返してくれれば良いのですが。
この現象はフレームを使っている場合のみで、フレームを使っていない場合は正常に表示されます。HTMLの記述において、折り返しの何らかの方法があるのでしょうか。IE5.5では、このような現象は無かったと思います。ご教示願います。
Windows98、IE6.0で、フレームはT型の3分割です。

<FRAMESET cols="200,*" border="0" frameborder="no">
<FRAME src="main.html" name="main">
<FRAMESET rows="110,*" border="1" frameborder="no">
<FRAME src="title.html" name="title">
<FRAME src="new.html" name="all">
</FRAMESET>
質問者 遅筆堂  [削除]  投稿日 5/4(土) 17:31:01
説明が下手で問いの内容が不明確でした。
現象が発生している私のページです。書籍寸評を見ていただければと思います。

http://www.greensoft.co.jp/gr/uchip/index.html
回答者 いのちゃん  [削除]  投稿日 5/5(日) 02:10:49
貴殿のサイドメニューを見た時に横スクロールが1字分位隠れているような
感じですのでスクロールをして正常に読ませて頂きました。

改善出来るかどうかは分かりませんが当方もFrameを採用したページがあり
ますので確認してみましたら今のところ正常に表示出来ております。
下記の条件で見て貴殿のような不都合は発生しておりません。

当方の設置条件としはwwwブラウザーIE6.02、WindowsXPですが、次のurlの
ソースから何かご参考になればと思いますが...。正常に見えるでしょうか?

http://www.kcb-net.ne.jp/ki-net/frame4_1.html
http://www.kcb-net.ne.jp/ki-net/colorful.html
質問者 遅筆堂  [削除]  投稿日 5/5(日) 09:54:54
 ご回答ありがとうございました。
 貴ページを見させていただき、ソース解析させていただきましたが、正直言いまして、私の知識では違いがわかりませんでした。表示については、正常に見えました。ということは、HTMLの記述において、私のソースとの何らかの相違があると思われますが、肝心のそのところが・・・(泣)。
 とにかく、IE5.5では何ら問題なく、IE6.02ではこのような現象が出るのと言うことは、IEのHTMLの解釈に対する仕様が変わったとしか思えません。厳密になったということでしょうか。しかしながら、私が常々気を付けているのは、なるべく特殊なコマンドや文法を使わず汎用性の高いWeb作成をと心がけているにも関わらず、この現象は残念です。まだ原因は分かりませんが、スクロールバーについてはWindowsの標準仕様ですので、IEの方で回避すべきではと思うのですが。
 そこで、自己解決と言いますか、昨晩から悩み続け、次のような方法でとりあえず妥協しました。フレーム宣言の部分で、

<FRAMESET cols="200,*" border="0" frameborder="no">
<FRAME src="main.html" name="main">
<FRAMESET rows="110,*" border="1" frameborder="no">
<FRAME src="title.html" name="title">
<FRAME src="new.html" name="all">
</FRAMESET>

を、

<FRAMESET cols="200,*" border="0" frameborder="no">
<FRAME src="main.html" name="main">
<FRAMESET rows="110,*" border="0" frameborder="no">
<FRAME src="title.html" name="title" frameborder="no" scrolling="auto">
<FRAME src="new.html" name="all" marginwidth="30" frameborder="no" scrolling="auto">
</FRAMESET>

としました。marginwidthを30は、左右余白を30ピクセルということで、スクロールバーの下は余白で埋めるという方法です。テキストはスクロールバーの下に隠れることは無くなりましたが、根本的な解決でないため、ブラウザの下に横スクロールバーが出てしまいます。納得できませんが、これで妥協することにしました。
 しかし、これをIE5.5で見るとどうなるのだろうか。余白が必要以上に空いているのだろうか。

 以上、これ以外の根本的な解決方法がありましたら、アドバイスをお願いします。なお、私のページは、上記の方法で修正してありますので、当初の現象は出ていないと思います。
回答者 いのちゃん  [削除]  投稿日 5/5(日) 13:41:18
>貴殿のサイドメニューを見た時に横スクロールが1字分位隠れているような
>感じですのでスクロールをして正常に読ませて頂きました。

上記は先の当方の感想文ですが今回新たにscrolling="auto"を取り入れて
おりますので変化があったかどうか確認して見ましたがやはりスクロールが
1字分必要でありました。

ご迷惑でなければ先の2つのFrameを仮に貴殿のHPに立ち上げてみて後で
border="0" に修正してみたらどうなるでしょうか?
回答者 いのちゃん  [削除]  投稿日 5/5(日) 14:13:54
>とりあえず自己解決(妥協)しました。

上記のようなE-mailもご丁寧に送信されておりましたので再確認してもう
一度貴殿のHPを見てみましたら先の状態よりも3字位右のマージンが開
いておりましたので差し引き3−1=2文字位の丁度の空きがありました。

スクロールバーが一文字分右にずれておりましたが実際の文章は2文字分
位のマージンが取られておりましたので前回の状態とは改善の跡が見られ
ました。左程ご本人が気にする程の違和感はありませんでしたよ。(^_^)
質問者 遅筆堂  [削除]  投稿日 5/5(日) 14:19:42
たびたび、ご確認、ありがとうございます。

少しわかりませんが、border="0"は、すでに試してみましたが変化なしでした。貴ページを再度見させていただきましたが、「簡易履歴板」のところでは、当方と同じような状況が見られます。また、症状が出ないところは、Tableでwidth="95%"とかしてあるようですね。

 どうも、FRAMESETでは、対応できないでは無いでしょうか。対策としては、

(1)<Table border="0" width="95%">
(2)<FRAME marginwidth="30" frameborder="no" scrolling="auto">

 とすれば、表面的には処理でます。結果的には、IE6.02のバグではないでしょうか。だって、単なるテキストの折り返しが表示できないのはおかしいです。また、IE5.5では可能であったものですから。

回答者 いのちゃん  [削除]  投稿日 5/5(日) 14:37:12
>「簡易履歴板」のところでは、当方と同じような状況が見られます。

この簡易履歴書は文章の折り返しにEnterを入れても無効になって
表示しておりましたので画面一杯になって表示していた事もありました
のでそれ以来<br>を文章折り返し地点で挿入して行数を以後コントロール
しております。

http://www.kcb-net.ne.jp/ki-net/history/history.html

HTME形式の書き込み掲示板ですのでその使用勝手さえ分かればかなり
優れものですが削除の項目がありませんのでhistory.htmlをBinaryで
Downして削除後にBinaryでUpして修正した事はあります。それ以外は
現在も通常に見えておりますが...。
質問者 遅筆堂  [削除]  投稿日 5/5(日) 14:49:39
「簡易履歴板」ですが、ノンフレームでは正常に表示されますが、

http://www.kcb-net.ne.jp/ki-net/frame4_1.html

から、「24 簡易履歴板 v1.0」を選択し、フレーム内に表示されると縦スクロールバーの下に一部隠れます。最初にも書いたとおり、フレーム内のテキスト折り返しに問題があるのではないでしょうか。同じHTMLを読み込んでも、フレーム内とノンフレームとでは表示され方が違うということですから。

回答者 いのちゃん  [削除]  投稿日 5/5(日) 14:58:54
http://www.kcb-net.ne.jp/ki-net/history/history.html (Frameなし)
http://www.kcb-net.ne.jp/ki-net/frame4_1.html (Frame付き)

双方の違いのある事を確認出来ました。この微調整の方法は分かりません。
お役に立てなくて申し訳ありませんでした。(/_;
質問者 遅筆堂  [削除]  投稿日 5/5(日) 15:07:14
ほとんどリアルタイム状態で、素早い対応ありがとうございます(笑)
結果的には、HTML文法的には対処方法が無いとなると、自分で作っているWebはいいとしても、他人のWebの閲覧に関しては対処できないことになりますので、最終兵器的な対策は、

 ずばり、IE5.5;sp2に戻す(笑)

なんてどうですか。なにか目が覚めるような方法があればいいのですが。
回答者 海原 夕輝  [削除]  投稿日 5/5(日) 16:28:57
 横から失礼します。
 若干気になった点があるので挙げさせてもらいます。

 ○ DOCTYPEで、HTML4.0とHTML4.01が混在しています。4.01に統一してみては?
 ○ フレームを定義するページのDOCTYPEはFramesetとすべきです。
 ○ METAで、http-equiv="Content-Type"とname="robots"が同時に宣言されています。
  name="robots"を消すべきです。

 IE6では、以前のバージョンと違いDOCTYPEを解釈します(=HTMLの解釈に対する仕様が変わった)ので、この部分は気をつけるべきです。

 以上です。表示の確認はしていませんが、ひとつ参考にしていただければ・・・。
質問者 遅筆堂  [削除]  投稿日 5/6(月) 17:56:29
海原さん、アドバイスをありがとうございます。

> ○ DOCTYPEで、HTML4.0とHTML4.01が混在しています。4.01に統一してみては?
> ○ フレームを定義するページのDOCTYPEはFramesetとすべきです。
> ○ METAで、http-equiv="Content-Type"とname="robots"が同時に宣言されています。
  name="robots"を消すべきです。

 さて上記アドバイスを元に、私のホームページを構成するHTMLファイルの内、フレームを定義するindex.html以外のファイル(89個)を

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 で統一させて戴きました。
 また、やはりすべてのファイルから、name="robots を削除しました。単純な作業で結構疲れました。
 次に、フレームを定義するindex.htmlのDCTYPEを

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

 としました。
 最後に、marginwidth="30"と左右余白指定していた部分を削除して、一括してホストにアップロードして確認したところ、おおおおおっ、感動、正しい表示になってなりました。これら作業は一つずつ確認しながら実行したわけではありませんので、どれが有効な手段であったかはわかりませんが、多分、フレームを定義するページのDOCTYPEをFramesetとしたあたりかななんて思っています。
 とにかく解決いたしました。IE6.02のバグなんて勝手に決めつけて恥ずかしいなあと、また反省しています。以上、連休中、ずっと気になっていた事が解決したのですっきりしています。本当にありがとうございました。




このページは終了したので返信(回答)は書きこめません

Web裏技