アプリ版:「スタンプのみでお礼する」機能のリリースについて

Safariでheight:100%のボックスを表示したいのです。MacIE・WinIE・FireFox・Operaでは出来たのですが、どうしてもSafariだけheight:100%のボックスが出来上がらず・・・。
以下、記述したCSSとHTMLです。
HTML---------
<body>
<div id="main">
<h1>height100%のボックス</h1>
<p>
標準準拠のIEやfirefoxでbody直下にheight100%のボックス
</p>
・・・略 <h1>height100%のボックス</h1>
<p>
標準準拠のIEやfirefoxでbody直下にheight100%のボックス
</p>
・・・略
</div>
</body>

</html>

CSS---
/* \*/
html{
height:100%;
}
/* \*/


body{
height:100%;
width:80%;
margin:0px auto;
padding:0px;
}
div#main{
background-image:url(../images/contents_bg.gif);
border:solid 1px #760014;
border-width:0px 1px;
height:100%;
min-height: 100%;
margin:0px auto;
padding:0px;
border:1px solid #ff0000;
}
body > #main{
height: auto;
}
h1{
margin:0px auto;
padding:0

A 回答 (2件)

win版safariでは反応しております。


macについては、safariは1.2以前ではmin-heightプロパティをサポートしていません。なので1.2以前を使用していないでしょうか?

http://developer.apple.com/internet/safari/safar …
(上記)

なので、結局min-heightは無効となって、heightは一度100%指定しているが次のセレクタでauto指定を上書き
しているので結局100%とならないことになります。

それとwinIEも6まではmin-heightに対応していませんが、同時にbody > #mainセレクタも無効なので結果的に
100%となっているだけですね。

なお、body > #mainセレクタは必要なのでしょうか?
まぁやってはいけないというわけではありませんが、あまりスマートなソースでは無い様に見受けられます^^;
これとっちゃえばsafariでも狙い通りになるかと思います。

以上です。

参考URL:http://developer.apple.com/internet/safari/safar …
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。ご回答ありがとうございました。

min-heightは、Operaの為、body > #mainはFirefoxの為必要としております。IEやSarafiのためのものではございません(Operaに関しては特にどうでもいいのですが、念のため程度で・・・・)。
ちなみに、body > #mainを削除してしまうと、Firefoxでレイアウトがくずれしまいますのでこれはこれで必要としております。
また、Safariのバージョンは最新を使っております。

お礼日時:2007/07/31 20:37

ども、#1です。


 こちらはwin環境しかないので憶測でしかありませんが、まぁ何もしないよりは程度にお読みください。
 また、win環境ではFirefoxでもsafariでもネスケ7でも、height:100%だけで(body > #mainなしで)
問題なかったので、環境による差および影響が大きいことも承知願います。

----------------------------------------------------------------
(1)DIV要素の高さが内容分しか無い場合:
 win版safari3でいろいろ試したところ

「div要素ではheightもmin(max)-heightも有効だったが、body要素はheightは有効だったがmin(max)-heightは
効かない!」(safari以外は問題なし ※1 )

(※1 厳密にはbody要素はブロック要素では無いので、IE6などのようにwidthもheightも無効とする動きも間違いではない?)


ことが分かりました。ここから考えるに、min(max)-heightの動作があやしいと思います。
safari3でも???な動作(※2)ですので、こういうバグっぽのは力技で対処でしょうか。

1.DOCTYPE宣言をして仕様通りのCSSに直す。
2.heightのいろんな部分に!important宣言を付けたり消したりして試す。
3.overflow:visible , overflow:autoをいろんなところで使用してみる。(macIEが崩れる可能性あり)

(※2 W3Cの勧告を読むと、%指定にて明確な高さが算出できないときはauto指定と同様となる、などと
書いてるため、どこにも絶対指定のない今回のCSSはどのような動作をしても勧告違反とはならないみたいですが)



(1)DIV要素の高さが十数pxだけ少ない場合:
 この場合は下部スライドバーの表示が消えているか、スタイル情報の初期化が足りない状態です。
bodyセレクタのwidthを99%にする、margin:0px を増やす、ブラウザを更新するなどで直ります。


----------------------------------------------------------------

症状を見たわけではないのではっきりとした事が言えず申し訳ありませんが、
こんな感じでCSSハックなりプロパティの増設なりで対処できるものと思いますのでがんばってください。

以上です。

参考URL:http://www.y-adagio.com/public/standards/tr_xsl1 …
    • good
    • 0
この回答へのお礼

再度ご回答ありがとうございます!
win版safari3はまだ試したこともないのですが、min(max)-heightに関しては無くてもいいな・・・と思っているものなので、削除の方向で試していこうと思います。

現時点ではまだSafariは確認必須ブラウザになっていないので、自己満足で確認用としてつかっているのですが、近々Safariも対象になりそうです。

お礼日時:2007/08/02 20:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!