• ベストアンサー

IE系とFF系の表示の違いに苦しんでいます

benelliの回答

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

確かにデザインによってはCSSハック以外に対処方法がない場合も少なくありません。が、普通にデザインする分にはハックに頼らなくても経験上解決できます。 自分個人としてはMacIE向けのスターハック以外は使うことはありませんし、それなりの実務経験(趣味ではなく仕事で覚えた知識)でほとんどのWebページ作成者の要望・問題点にはCSSハックなしで対処できます。(大概は問題ごとにあわせた特定のスタイルやプロパティを追加すればどうにかなります) ですが、個人作成のWebページでしたらそんなに気にすることなくCSSハックを多用しても構わないと思います。一般の人にはソースそのものではなくブラウザが表示した画面を見てもらえればいいわけで、最新のブラウザやごく一般的なブラウザで表示さえできれば来訪者も困ることはないのですから、ソースの綺麗さは目をつぶっても良いかと思います。 もちろんCSSハックを使わないほうが良いのは確かで、構文ミスを自動チェックするブラウザを使っている人はCSSハックされたページを見るごとにエラーメッセージが出たりと問題点もゼロではありません。 また、どのブラウザでもまったく同じ表示をさせようとするより、画面の読みやすさや雰囲気が悪くならなければそれでよいと妥協したほうが安全で確実でもあります。 よって、Webページの見た目や美しさで勝負したいならCSSハックを多用し、文章など中身の見やすさや幅広い人たちに見てもらいたいならばできるだけCSSハックを使わないようにすれば良いかと思います。 逆にどんなに努力してでもすべての点で完璧のページを目指す! というのでしたらブラウザごとのバグ一覧やCSSバグリストを熟読し、時間をかけて手直しをしてみてはいかがでしょうか。 http://cssbug.at.infoseek.co.jp/index.html http://dhr.at.infoseek.co.jp/stylebug2.htm

cottonfeel
質問者

お礼

ご回答ありがとうございます。スターハックというものは知りませんでした。 どのブラウザでも同じ表示をすることはあきらめているのですが、どうにも両方で「正常に」見せることができず・・・。 もう大方作り終えてしまったので、いまさら手を加えるのも時間の問題で難しい状態です。 おっしゃるとおり、雰囲気が崩れなければよしと思っているのですが、もうどこにどう手を加えたらよいのかもわからない状態です。 このような場合、とりあえずすべての_をはずして、様子を見ながら調整していくのがよいのでしょうか? 

cottonfeel
質問者

補足

知識が足りていないのに、770x500のハコ型にしたのが運のツキだった気がします。 グレー背景で、画面中央にボーダーで囲んだ白い外バコが浮いていて、その中にコンテンツ用の内バコがまたボーダーで囲まれて置いてあり、その上下には水平線を入れています。 悩んでいるのは縦幅オンリーです。  ここは、ハコを取っ払うことを考えたほうがよいでしょうか? あるいは外バコの背景に、内バコ用と水平線の入った画像を貼っておくとか・・・。 もしまだご覧になっていたら、アドバイスいただけませんか。

関連するQ&A

  • Safariでheight:100%のボックスを表示したいのです

    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

    • ベストアンサー
    • HTML
  • FFとIEでスクロールバー、背景画像を表示しセンタリングするときのズレ

    IE7とFF3とOpera9で表示確認をしています。 スクロールバーを常時表示し、背景をセンタリングしたデザインをしたいと考えています。 FF3でスクロールバーを表示すると、背景よりボックスが1px右にずれてしまいます。 IEはもともとずれるのが判っているのでハックを使って調節しています。 Operaだと理想どおりに表示されます。 仕方が無いのでFFもハックして表示しました。 ソースは以下のとおりです。 実際こんなにハックしなくとも、スマートに表示できる方法があるのでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> <style> <!-- body{ margin: 0; paddin:0; background-image:url(design/bg4.jpg); background-repeat:repeat-y; background-position:center; } /* firefoxのハック */ body,x:-moz-broken { margin-left:-1px; overflow-y:scroll; } /* IE7のハック */ *:first-child+html body { padding-left: 2px; overflow-y:auto; } /* IE6以下のハック */ *html body { overflow-y:auto; padding-left: 1px; } .base{ margin:auto; width:750px; background-color:red; } --> </style> </head> <body> <div class="base"> <p> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </p> </div> </body> </html> 何かわかることがありましたら、よろしくお願いしたします。

    • ベストアンサー
    • HTML
  • IE6でfloatされない。

    IE6でfloatされない。 横幅950pxのコンテンツの中に divで3つのboxを作って横一列に並べているのですが ie7,8, firefoxでは意図した通りに表示されますがie6ではdiv id="c"(下記ソース)がfloatされません、どなたか解決策をご指導お願いします。 <div id="a"><img src="img/left.png" width="403" height="240" alt="スペース左" title="" /></div> <div id="b"><iframe name="iframe3" id="iframe3" frameborder="0" scrolling="no" src="home.html" title="******">*******</iframe></div> <div id="c"><img src="img/right.png" width="403" height="240" alt="スペース右" title="" /></div> css記述は下記の通りです #a{ padding-top : 0px; padding-left : 0px; padding-right : 0px; padding-bottom : 0px; margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; width : 403px; height : 240px; float : left; display : inline; } #b{ padding-top : 0px; padding-left : 0px; padding-right : 0px; padding-bottom : 0px; margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; width : 144px; height : 240px; float : left; display : inline; } #c{ padding-top : 0px; padding-left : 0px; padding-right : 0px; padding-bottom : 0px; margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; width : 403px; height : 240px; float : left; display : inline; } #iframe3{ border-width : 0px 0px 0px 0px; margin-left : 0px; width : 144px; height : 240px; padding-top : 0px; overflow : hidden; margin-top : 0px; margin-right : 0px; margin-bottom : 0px; padding-bottom : 0px; padding-left : 0px; padding-right : 0px; } 宜しくお願いします。

  • IE7の表示崩れを直したい

    CMSでCSSを使ってサイトを作成するにあたり、IE7だけ表示が崩れてしまうのですが、何が原因で崩れてしまうのかがわかりません。 IE6、IE8、Firefox、Opera、Safariともに表示が崩れないのですが、これはIE7単体のバグなのでしょうか? ・サイトURL http://www.tantanmen.com/site/index.html ・CMSは、SOY-CMSを使っています。 おそらくは、大きな画像部分のCSSの記述の問題化と思うのですが、このように記述しております。 /*トップイメージの設定*/ #top_image { width: 1000px; height: 528px; clear: both; width: 1000px; height: 528px; padding: 0; background: url("img/top_image01.jpg") 0 0 no-repeat scroll; text-indent: -9999px; display: block; } どうぞ、よろしくお願いいたします!

    • ベストアンサー
    • HTML
  • IE6での表示がうまくいかず困っています

    すみません!先ほど同様の質問をしたのですが、文字数オーバーで途中で切れてしまっていたので本当に恐縮ですが再度お願いいたします。 コーディングを勉強中なのですが、どうしてもIE6での表示がうまくいかず、大変困っています。色々ググって調べてみたのですが、決定的な原因がわからず本当にどうすればよいのかわかりません・・・。どなたかご教示いただけませんでしょうか。 他のFireFOX,Safari,IE8では多少のズレはあるものの普通に表示されました。IE6では背景画像とフッターのみしか表示されない。という状況です。 CSSは以下です。 /* generated by csscreator.com */ html{ height:100%; } body{ margin:0; padding:0; text-align:center; color: #fff; background: #000000 url("../images/back-right.gif") repeat-x; position: relative; text-decoration: none; height:100%; } body > #pagewidth { height: auto; } img { border-style:none; } ul{ margin:0; padding:0; text-align:left; } li{ list-style-type: none; line-height:100%; } p{ margin:0; padding:0; text-align:right; } #bg_wrap { height: 423px; width: 50%; top: 0px; background: url(../images/back-left.gif) repeat-x; position: absolute; } #pagewidth{ width: 918px; height: 100%; min-height: 100%; text-align:left; margin: 0px auto; position: relative; background: url(../images/left-col.gif) left repeat-y; } #left-container{ width: 130px; height: 100%; float:left; position:relative; padding-left: 23px; } #header{ width: 100%; height: 266px; color: #000; background-color: #fff; } #navigation{ width: 100%; color: #fff; padding-bottom: 5em; } #main-container{ width: 764px; float: right; display:inline; position: relative; } #maincontents{ padding-right: 21px; } #footer{ height: 50px; width: 100%; text-align:left; padding-left: 95px; clear: both; } /* *** Float containers fix: http://www.csscreator.com/attributes/containedfloat.php *** */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix{display: inline-block;} /* Hides from IE-mac \*/ * html .clearfix{height: 1%;} .clearfix{display: block;} /* End hide from IE-mac */ /*printer styles*/ @media print{ /*hide the left column when printing*/ #leftcol{display:none;} #twocols, #maincol{width:100%; float:none;} } 以上です、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSでIE6だけ出る隙間をなくしたい

    お世話になります。 CSSとtableを組み合わせてレイアウトをしています。 WindowsのIE7やSafari、Netscapeでは正常に表示されるのですが、 IE6では<div>と<div>の間に1、2pxの白い隙間が出てしまいます。 htmlは下記にアップしています。 http://www.couleurcafe.jp/08/ ホーム、メニューといったメインメニューの行と、 赤地に白文字のヘッダーメニューの行の間に隙間が出てしまいます。 CSSは以下の通りです。 @charset "Shift_JIS"; body { margin: 0; padding: 0; background-image: url(img/bodybg.gif); } #wrapper { width: 780px; margin-right: auto; margin-left: auto; margin-top: 0px; margin-bottom: 0px; text-align: left; background-color: #FFFFFF; } #mainmenu { background-image: url(img/menubarbg.gif); background-repeat: repeat-x; width: 766px; height:29px; margin-left: 14px; margin-bottom:0px; padding-top:1px; } #menublock { background-image: url(img/menubg.gif); background-repeat: no-repeat; width: 88px; height:29px; font-size: 12px; color: #000000; text-align: center; height: 16px; padding-top: 12px; } #menublock_over { background-image: url(img/menubg_over.gif); background-repeat: no-repeat; width: 88px; height:29px; font-size: 12px; color: #FFFFFF; text-align: center; height: 20px; padding-top: 8px; } #headermenu { background-color: #E10C0A; width: 772px; height: 12px; font-size: 11px; color: #FFFFFF; text-align: right; padding: 4px; } この隙間をなくす方法はないでしょうか。 CSSのおかしいところがあればご指摘をお願いいたします。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • cssハックを勉強中で、使い方について質問です。

    現在cssハックを勉強中です。 あるサイトで調べるとoperaだけに使う場合 *+html:first-child p { /* for Opera */ line-height : 150%; } このように表示されてました。 IE4-IE6のアンダースコアハックの使い方は分かったのですが 上記のcssハックは今ひとつ使い方が分かりません。 例えば下記のcssがあったとして ul.piyo{ margin:0 0 10px 0; } ul.piyo li{ margin:0; } ul.piyo li.hoge a { width:100px; height:10px; display:block; padding:0; margin:0; background:url(../img/hoge.gif) ; } ul.piyo li.hoge a:hover { background-position:0 -18px; } ...以下、hoge2、hoge3と同じ<li>のcssが続く。 各hoge、hoge2、hoge3の下部分にoperaだけmargin10pxをつけたい場合 *+html:first-child li.hoge { /* for Opera */ margin:0 0 10px 0; } このように表記し、hoge2、hoge3と付け足せばいいのでしょうか? 説明下手で申し訳ありません。 分かりづらいところは補足いたしますのでどうぞご回答よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • divの違い

    IEと、Mozillaで <div style="height:250px; padding:3px; margin:0;"></div> とすると、微妙に幅がちがうんですが、どういうことでしょうか?

    • ベストアンサー
    • HTML
  • ■IE表示 位置ずれ

    ■IE表示 位置ずれ お世話になっております。あるサイトから無料のテンプレートを入手しましたが IEでは「left」が画面の中央に表示されてしまいますが解決方法はありますでしょうか? body{ min-width: 412px; width:985px; margin:0 auto; font-family:Tahoma; font-size:11px; color:#565656; position:relative #container { padding-left: 172px; padding-right: 238px; height:100% #left { width: 172px; right: 172px; margin-left: -100%; #right { width: 238px; margin-right: -238px; 初心者で申し訳ございませんが宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • IEだとディスプレーによって表示が違います

    理由があって、全画面表示で左に110pxの余白、続いてcontainerの770pxを表示したいのですが無理でしょうか? Firefoxだと大丈夫なのですが!IEは無理なのでしょうか? IEで観ると17インチディスプレーの場合、上手く左に100pxの余白、続いてcontainerの770pxが表示されるのですが、15インチディスプレーだと左に110pxの余白、containerの770pxがセンターリングされてしまいます。 見た目では110pxの余白+150pxの余白+770pxといった感じです。 #container { width :770px; line-height: 140%; text-align: left; margin-left: 110px; margin-right: auto; padding: 0; } #blog { width: 540px; padding: 0; float: right; overflow: hidden; } #links { width: 190px; float: left; margin: 0 0 10px 0; padding: 0; font-family: verdana; font-size: 12px; text-align: left; }