アカウント名:
パスワード:
参考:みんな、Firefoxを褒め過ぎだ [itmedia.co.jp]
itmedia の記事の中で、
テーブルのcontent 領域内にはdivタグを入れて幅と高さを100%に設定し、CSSのoverflowの値をautoにすることで自動スクロールバーを付けた。:(中略)IEではちゃんとページを表示できた。だがFirefoxでは、divタグが親テーブルに合わせてリサイズしてくれない(スクロールバーも表示しない)。だから、下のツールバーは画面の外に消えてしまう。
テーブルのcontent 領域内にはdivタグを入れて幅と高さを100%に設定し、CSSのoverflowの値をautoにすることで自動スクロールバーを付けた。
:(中略)
IEではちゃんとページを表示できた。だがFirefoxでは、divタグが親テーブルに合わせてリサイズしてくれない(スクロールバーも表示しない)。だから、下のツールバーは画面の外に消えてしまう。
と書かれている。
そこで示されてる先のページが今なぜか見られないのでソースが確認できないんだが、もじら組 [mozilla.gr.jp]の Web 標準化 Tips [mozilla.gr.jp] - height [mozilla.gr.jp]
ちょっと仰ることが良く判らないのですが。
下を IE で表示させると最初の div 要素の 内容だけスクロールで見えます。 でも firefox だと scroll が無効になって、 最初の 20pt 文の内容だけしか 見ることができません。
ということは、overflowプロパティが兄弟要素にも継承しないといけない、ということでしょうか。
いずれにしろ、物理的な表示領域を越える内容が存在する場合、 overflow: scroll は有効にならないとおかしいですね。
手許では有効になっていて、内側の前のdiv要素はスクロール表示されます。後ろのがoverflow: hiddenの影響で表示されないのは正しいのではないのですか。外側のoverflowプロパティを外すとこんな感じになります [ttcn.ne.jp]。 それを高さ20ptのボックスで切り取ると
で、もって、なんとなく分かってきたのですが、以下でやっぱり firefox でスクロールバーが出ず、 IE で出ます
はい。再現しました。
で、何が問題なのですか。overflow: auto;でスクロールバーが表示されるのは必須ではないそうです。原文では "should" ですが。Mozillaではスクロールバーが表示されない挙動をするのは仕様です。
Bug 68390 [mozilla.org] - "overflow: auto" should always display a vertical scrollbar
もう一度書きますが、どのように描画されるべきで、Firefox (Gecko/1.7) が間違っているのかをお教え願いたいです。WinIEが、を抜きにして。
少しくどく。 heightプロパティ [y-adagio.com]は継承せず、デフォルト値はautoです。id="3"なdiv要素 (以下要素名省略) にはheight: 100%が指定されていますが、包含ブロック (id="2") はデフォルトのheight: autoなので明示的に指定されていない、つまり (id="3"の) 内容の高さに依存します。というわけでid="3"は内容すべてを含む大きさになります。すべてが含まれる大きさのブロックになったので、overflow: autoであってもスクロールバーが表示されなくても間違いは無いと思います。id="2"はautoなので3と4の両方を含める高さになり、id="1"については高さが明示的に指定されているのでその大きさでクリッピングされます。
手元のWinIE6は、id="1"の高さが (2を経由して) id="3"に継承されているように見えます。外側のブロックから順に計算していけばWinIE6のようになりますが、これじゃ継承しないという定義に反するように見えます…。順序ってどこに書いてあるのかな。
私のような素人が書く文章より、heightプロパティの注意点~内容が大きい場合 [mozilla.gr.jp] / height: n%;の正しい仕様 - Web標準普及プロジェクト [mozilla.gr.jp]あたりも参考になるかと思います。
結局あの「firefoxを褒めすぎだ」で使われているスタイルシート では、はみ出た部分は隠しなさいと主張しているってことですね。 で、著者がやりたい内容のスタイルはどう書けばよいやら……
ただ、overflow 属性の hidden を読むと、firefox で ドラッグすると 隠れた部分が見えてしまうのは仕様に反するようです。 (まあ should ですが……) IE では height:auto とすれば隠れた部分を見ることができず、 仕様通りです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1, 興味深い)
Microsoftか?
W3Cか?
表現なんだからCSSでどうにかしろよ。
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:0)
MSのページの広告がIFRAMEをふんだんに使ったページなの
IEを使わないと不味いわけです。
思うのですがFirefoxが普及するとIFRAMEが消えると思いますね。
画像のブロック機能があるんですが、広告のアドレスが外部に
なっているものをブロックしてしまえば広告だけ消えます。
広告を出したければ自前で出すようにしないと出ませんから
おのずとIFRAME自身減少傾向になると思います。
<Firefoxが有効な所>
毎日
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
IEがいいとか悪いとかFireFoxがいいとか悪いとか以前に、
この意見にあるようにおらが仕様にあわせろって言う意見は
どうも身勝手な気がしてなりません。
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:2, 興味深い)
itmedia の記事の中で、
と書かれている。
そこで示されてる先のページが今なぜか見られないのでソースが確認できないんだが、もじら組 [mozilla.gr.jp]の Web 標準化 Tips [mozilla.gr.jp] - height [mozilla.gr.jp]
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
overflow: scroll が効かなくなって、
親要素の overflow: hidden がなぜか有効に
なってしまうようです。
下を IE で表示させると最初の div 要素の
内容だけスクロールで見えます。
でも firefox だと scroll が無効になって、
最初の 20pt 文の内容だけしか
見ることができません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<title></title>
<body>
<div style="height:20pt; overflow: hidden">
<div style="height:100%; overflow
-- 哀れな日本人専用(sorry Japanese only) --
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
-- 哀れな日本人専用(sorry Japanese only) --
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
ちょっと仰ることが良く判らないのですが。
ということは、overflowプロパティが兄弟要素にも継承しないといけない、ということでしょうか。
手許では有効になっていて、内側の前のdiv要素はスクロール表示されます。後ろのがoverflow: hiddenの影響で表示されないのは正しいのではないのですか。外側のoverflowプロパティを外すとこんな感じになります [ttcn.ne.jp]。 それを高さ20ptのボックスで切り取ると
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
で、親div で hidden を指定し、子の最初の div で親の height を
越えてしまえば、二番目の div は表示されないで正しいです。
さて、スクロールバーがでないと騒いでしまいましたが、
親のdiv で height を 40 pt にしたら出てしまいました。
これは firefox が悪いのか、Windows98SE が悪いのかよく
分からなくなりました。:-)
で、もって、なんとなく分かってきたのですが、以下でやっぱり
firefox でスクロールバーが出ず、 IE で出ます
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-- 哀れな日本人専用(sorry Japanese only) --
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
はい。再現しました。
で、何が問題なのですか。overflow: auto;でスクロールバーが表示されるのは必須ではないそうです。原文では "should" ですが。Mozillaではスクロールバーが表示されない挙動をするのは仕様です。
Bug 68390 [mozilla.org] - "overflow: auto" should always display a vertical scrollbar
もう一度書きますが、どのように描画されるべきで、Firefox (Gecko/1.7) が間違っているのかをお教え願いたいです。WinIEが、を抜きにして。
少しくどく。 heightプロパティ [y-adagio.com]は継承せず、デフォルト値はautoです。id="3"なdiv要素 (以下要素名省略) にはheight: 100%が指定されていますが、包含ブロック (id="2") はデフォルトのheight: autoなので明示的に指定されていない、つまり (id="3"の) 内容の高さに依存します。というわけでid="3"は内容すべてを含む大きさになります。すべてが含まれる大きさのブロックになったので、overflow: autoであってもスクロールバーが表示されなくても間違いは無いと思います。id="2"はautoなので3と4の両方を含める高さになり、id="1"については高さが明示的に指定されているのでその大きさでクリッピングされます。
手元のWinIE6は、id="1"の高さが (2を経由して) id="3"に継承されているように見えます。外側のブロックから順に計算していけばWinIE6のようになりますが、これじゃ継承しないという定義に反するように見えます…。順序ってどこに書いてあるのかな。
私のような素人が書く文章より、heightプロパティの注意点~内容が大きい場合 [mozilla.gr.jp] / height: n%;の正しい仕様 - Web標準普及プロジェクト [mozilla.gr.jp]あたりも参考になるかと思います。
Re:そもそもIFRAMEなんて考えたヤツ誰だ? (スコア:1)
結局あの「firefoxを褒めすぎだ」で使われているスタイルシート では、はみ出た部分は隠しなさいと主張しているってことですね。 で、著者がやりたい内容のスタイルはどう書けばよいやら……
ただ、overflow 属性の hidden を読むと、firefox で ドラッグすると 隠れた部分が見えてしまうのは仕様に反するようです。 (まあ should ですが……) IE では height:auto とすれば隠れた部分を見ることができず、 仕様通りです。
-- 哀れな日本人専用(sorry Japanese only) --