- ベストアンサー
XML宣言をしたら・・・
- XHTML+CSSを勉強中なのですが、xml宣言をすると画面が左に寄ってしまいます。
- CSSのmarginの設定に問題があるのか検討しましたが、解決策が見つかりません。
- 画面中央に表示するためには、どのような修正が必要でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
しばらく解らなかったけど、CSSソース見てたら解決しました。 ここでHTMLのソースを見直してみるとlink要素によるCSS指定がないので <script src="js/topstyle.js" type="text/javascript"></script> が怪しいと判断し、このソースを調べることにしました。 見ると共通するcss/all.cssとcss/top.cssと ブラウザやOSごとにCSSを振り分けていることが解ります 最初私はIE6専用CSSを調べに行きましたが特に怪しい部分は見つからなかったのでcss/all.cssを見始めました 解決。 body { text-align:center; /*これですね*/ } IEの「過去互換モード」の別のバグを利用してます(笑) #標準準拠モードでは修正されているようです。 http://www.anslasax.net/css-make/t-a/index.html http://sourcemania.jpn.org/doc/block_center/#wrong 本来text-alignプロパティは【ブロックボックスの位置をそのままに】中のインラインテキストの位置を変えるものですが、IEは【ブロックボックスの位置ごと変更します】 ということで、調べ方と共に、うまく行ってる理由、おw解りいただけましたか?
その他の回答 (2)
#1,#2です。 余計なお節介かもしれないけど・・・言っておいたほうがいいかなと思ったので。 IEのCSS解釈にはFirefoxやOpera等他のブラウザに比べかなりのバグがあります 有名なCSS実装度チェックにAcid2というものがあります。「えむもじら」さんのところに各ブラウザでテストを受けた時の画像が載っています http://level.s69.xrea.com/mozilla/index.cgi?id=20051030_Acid2 ...というわけで、デザインで困ったことがあったり、 思ったとおりにならないときはFirefoxやOperaで確認しなおしてみるといいでしょう。 #私は普段からFirefoxを使っています。速度や消費メモリから言ったらOperaの方が使いやすいとは思いますが。
IEのバグです。 「DOCTYPEスイッチ」というものをご存知でしょうか? 娘娘飯店しるきぃうぇぶ-DOCTYPE 宣言による「解釈モード」の切り替え http://www.remus.dti.ne.jp/~a-satomi/bunsyorou/Doctype-Switch_situation.html で、実は 娘娘飯店しるきぃうぇぶ-ねこめしにっき2001年9月20日を見てもらうと解りますが WinIE6 の DOCTYPE スイッチ機能不全発見 http://www.remus.dti.ne.jp/~a-satomi/nikki/2001/09b.html 抜粋します 【HTML ソース冒頭に XML 宣言があると、DOCTYPE スイッチせず有無いわさず Quirks 解釈(過去慣習互換≒ WinIE5.x 的解釈互換)になってしまう】 んです、IEは。 で、さらに、 文書型宣言とブラウザでの表示 http://www.mars.dti.ne.jp/~fuming/advanced/dtd.htm >margin:autoが有効かどうか 後方互換モード:【無効】 となっています。 原因はもう解りましたね? 一般的にはXML宣言を抜く形で回避されているようです (省略できるのはUTF-8またはUTF-16またはHTTPヘッダ等別なプロトコルで明示された場合とされているため、大抵は文書をUTF-8に変換しています)
補足
なるほど、そんなバグがあったとは思いもよりませんでした。 ありがとうございます。 しかし、私がこの質問をした理由は下記サイトで可能になっていたからなんです・・・。 http://www.r2works.com/
お礼
返答が遅れてしまい大変申し訳ありません。 色々と勉強が必要だと改めて実感しました。 text-align:center;を使うとは思いませんでした。 この件に関して解決しました。本当にありがとうございました。