IE8でtableのレイアウトが崩れる

このQ&Aのポイント
  • Wordpress3のTwenty Tenテーマを使用して、投稿ページを作成しています。
  • 複数列、行のテーブルを表示させていため、カスタマイズしているのですが、どうしてもIE8のみレイアウトが崩れます。IE7,9は正しく表示されています。
  • テーブル内の文字を上部にしたいが、下部に表示されてしまう。
回答を見る
  • ベストアンサー

IE8でtableのレイアウトが崩れる

Wordpress3のTwenty Tenテーマを使用して、投稿ページを作成しています。 複数列、行のテーブルを表示させていため、カスタマイズしているのですが、 どうしてもIE8のみレイアウトが崩れます。 IE7,9は正しく表示されています。 よろしくお願いします。 ■不具合点 ・テーブル内の文字を上部にしたいが、下部に表示されてしまう。   ■css table#testtable { border: 1px solid #e7e7e7; text-align: left; background: #f2f7fc; margin: 0px; padding: 0px; background: #FFFFFF; line-height: 20px; font-size: 12px; height: 100px; width:700px; word-break:break-all; } th#testphoto { text-align: left; margin: 0px; padding: 0px; line-height: 30px; font-weight: bold; font-size: 12px; height: 30px; width:110px; word-break:break-all; } ・ ・ ・ ・ td#testphoto { text-align: left; margin: 0px; padding: 0px; line-height: 30px; font-size: 12px; height: 90px; width:110px; word-break:break-all; } ・ ・ ・ ・

  • CSS
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

まず、HTMLと、それと平行してCSSを直してみましょう。Validatorでチェックしたらわかるように重大な間違いがたくさんあります。 【引用】____________ここから メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[W3C CSS 検証サービス( http://jigsaw.w3.org/css-validator/#validate_by_input )]より th#testphoto{} td#testphoto{} なんてありえません。#は一意セレクタで文書中に一箇所しか存在しないはずです。 【引用】____________ここから id = name [CS]  この属性は、要素に名前を割り当てる。この名前は文書中で一意でなければならない。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#adef-id )]より 5.9 一意セレクタ(ID selectors) ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html#id-selectors ) 継承するプロパティは親になるセレクタの宣言ブロックに書きましょう。font-size,line-height;text-align 同じ宣言をあちこち書かない。セレクタをグループ化しましょう。 word-break:プロパティはIE独自のもので、多くのブラウザは無視します。使うべきではありません。 HTMLは <table summary="test" id="form">  <tbody>   <tr>    <th abbr="">    ・・・【中略】・・・   </tr>   <tr>    <td>    ・・・【中略】・・・   </tr>  </tbody> </table>  以上何も書く必要はないはずです。 table.form{   width:700px;margin: 0 auto;   border: 1px solid #e7e7e7;   font-size: 12px;   text-align: left;   background-color: #FFFFFF;   border-collapse:collapse; } #form{   line-height: 30px;   font-size: 12px; } #form tbody tr th,#form tbody tr td{width:110px;vertical-align:top;} #form tbody tr th{height:30px;} #form tbody tr td{height:90px;} なお、必ずDOCTYPE宣言を記述して、標準モードで描画するように指定しましょう。 →DOCTYPE スイッチ - Google 検索 ( https://www.google.co.jp/search?q=word-break%3A&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a#hl=ja&safe=off&client=firefox-a&hs=4E&rls=org.mozilla:ja%3Aofficial&sclient=psy-ab&q=DOCTYPE+%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&oq=DOCTYPE&gs_l=serp.1.0.35i39j0l9.1119629.1122338.1.1124962.7.7.0.0.0.0.451.1350.0j5j1j0j1.7.0...0.0...1c.FeV8i6FmkPg&psj=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=76212ca705c57eca&biw=1024&bih=619 ) 当然ですが文章チェックもしておくこと →The W3C Markup Validation Service ( http://validator.w3.org/#validate_by_input ) →Another HTML-lint 5 ( http://www.htmllint.net/html-lint/htmllint.html ) →W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_input )   

idera_2010
質問者

お礼

ご返信が遅くなり申し訳ございません。 ご回答ありがとうございました。 参考にさせていただきます。

idera_2010
質問者

補足

ご返信が遅くなり申し訳ございません。 ご回答ありがとうございました。 参考にさせていただきます。

関連するQ&A

  • CSSでライブドアブログのレイアウトがIEでだけ、崩れてしまう。

    CSSでライブドアブログの左サイドバーのレイアウトがIEで見ると、崩れてしまいます。 Fireboxなどでは、きれいに表示されますが、IEでは、左サイドバーの表示がはるか下方に表示されてしまいます。 下記のCSSに問題がないか教えていただけないでしょうか? 参考になりそうなサイトとして(1)(2)なども見たのですが、結局わからなかったです。 (1)CSSによる段組(マルチカラム)レイアウト講座 ​http://www.geocities.jp/multi_column/index.html​ (2)CSSバグリスト ​http://cssbug.at.infoseek.co.jp/ よろしくお願いします。 /********************************** =2.Common **********************************/ table#header{ width:100%; font-size:12px; color: #cffdcc; } table#header a{ color: #cffdcc; } table#header th{ width:1%; } table#header th img{ margin:2px 10px; width:132px; height:24px; } table#header td.catprbox{ width:1%; white-space:nowrap; } table#header td.catprbox span{ margin-right:15px; } table#header td.newstickerbox{ width:97%; text-align:right; padding-right:10px; } table#header td.startblogbox{ width:1%; padding-right:10px; white-space:nowrap; } table#header td.startblogbox img{ width:17px; height:16px; margin-right:3px; border:0px; vertical-align:middle; } #container{ width:800px; margin:0 auto; text-align:center; } #cgmmenu{ display:none; } #banner{ height:200px; border:solid #fff; border-width:6px; background:#240000 url(http://image.blog.livedoor.jp・・・・・) no-repeat; text-align:left; margin:0 auto; clear:both; } #banner a{ color:#fff; text-decoration:none; } #banner a:hover{ text-decoration:underline; } #banner h1.blogtitle{ padding:80px 30px 5px; font-size:20px; } #banner div.description{ width:500px; padding:0 30px; line-height:135%; font-size:12px; color:#fff; } #blogcontainer{ background:url(http://image.blog.livedoor・・・・) 0 0 repeat-y; border:solid #fff; border-width:0 6px 0; padding:0 0 30px; margin:0 auto; height:1%; } #wrapper{ float:left; width:605px; } #content{ float:right; width:420px; text-align:left; background-color:#F9F3EE; } #contentin{} #left{ float:left; width:180px; } #right{ float:right; width:178px; } #lefttop , #leftbody , #leftbottom , #righttop , #rightbody , #rightbottom {} #footer { background:url(http://image.blog.livedoo・・・・) 0 0 no-repeat; border:solid #fff; border-width:0 6px 6px; height:46px; } #outfooter{}

  • table cellpadding「有」又は「無し」でCSSの解釈違う?

    IE6,7 tableのcellpaddingをcellpadding="0"と表記してスタイルシートでセルのpaddingを指定するのと、cellpadding="0"と表記せずにスタイルシートでセルのpaddingを指定するのとでは、ブラウザーのテールブルの解釈(表示)が違うのですが、スタイルシートでセルのpaddingを指定する場合、HTMLのcellpaddingをcellpadding="0"と表記するべきですか又は表記しないべきですか? 以下の二つのコードの違いは、<table>タグにcellpadding="0"が「ある」か「ない」かだけですが、例2のコードのテーブルの方が例1のテーブルより全体的な幅が広く表示されます。 <例1:cellpadding="0"あり> <html> <head> <style type="text/css"> .ta { margin-top:20px; margin-bottom:20px; table-layout:fixed; } .ta_ti { padding-top:5px; padding-bottom:5px; text-align:center; font-size:18px; font-weight:900; line-height:180%; } .ta_he { font-size:16px; padding-top:5px; padding-bottom:5px; padding-left:10px; padding-right:10px; text-align:left; vertical-align:top; line-height:180%; font-weight:900; } .ta_da { padding-top:5px; padding-bottom:5px; padding-left:10px; padding-right:10px; text-align:left; vertical-align:top; line-height:180%; } </style> </head> <body> <table class="ta" width="550" border="0" cellspacing="1" cellpadding="0"> <colgroup> <col width="200"> <col width="347"> </colgroup> <tr> <td class="ta_ti" colspan="2"> タイトル </td> </tr> <tr> <td class="ta_he"> 見出し </td> <td class="ta_da"> データ </td> </tr> </table> </body> </html> <例2:cellpadding="0"無し> <html> <head> <style type="text/css"> .ta { margin-top:20px; margin-bottom:20px; table-layout:fixed; } .ta_ti { padding-top:5px; padding-bottom:5px; text-align:center; font-size:18px; font-weight:900; line-height:180%; } .ta_he { font-size:16px; padding-top:5px; padding-bottom:5px; padding-left:10px; padding-right:10px; text-align:left; vertical-align:top; line-height:180%; font-weight:900; } .ta_da { padding-top:5px; padding-bottom:5px; padding-left:10px; padding-right:10px; text-align:left; vertical-align:top; line-height:180%; } </style> </head> <body> <table class="ta" width="550" border="0" cellspacing="1"> <colgroup> <col width="200"> <col width="347"> </colgroup> <tr> <td class="ta_ti" colspan="2"> タイトル </td> </tr> <tr> <td class="ta_he"> 見出し </td> <td class="ta_da"> データ </td> </tr> </table> </body> </html>

    • ベストアンサー
    • HTML
  • 古いIEでレイアウト崩れます。

    webデザイン初心者です。 就職活動用にサイトを制作しました。講習などで、IEではレイアウト崩れがおきやすい などのざっくりと知識はありますが、実際それを実践に生かせません。 サイトを構築した結果、やはりIE5.5,IE6、IE7でレイアウト崩れが起きます。 Clearfixというものや、Floatでバグが起きるなど「そういうことがあるんだ」くらいの知識だけがあって、それを自分の作成したサイトにどう反映させてゆけばいいのか分かりません。 とりあえず、今回制作したサイトをすべてのOSで表示できるようにしたいので、 具体的に、どのソースをどう直せばよいか教えてください。 USOマーケティング会社 http://usomarketingcompany.web.fc2.com/ cssは @charset "utf-8"; body{ width:760px; margin:auto; } #page{ margin-top:0; font-size:14px; font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; width: 100%; background:#ffffff; height: 100%; min-height: 100%; } hr{ width:100%; height:10px; background-color:#9f1d22; margin:0; } /* ヘッダーの設定 */ h1{ margin-top:10px; margin-bottom:10px; margin-left:32px; margin-right:86px; float:left; } .tel{ margin-top:10px; margin-right:32px; } #navi{ clear:left; margin:0; text-align:center; } #header{ margin-bottom:10px; } /* メイン画像の設定 */ h2{ margin-bottom:20px; } /* プレスリリースの設定 */ #contents{ width:457px; float:left; margin-right:20px; padding-bottom: 50px; } h3{ margin-left:32px; } dl { width:425px; } dt { float:left; width:100px; padding:5px 0 5px 10px; clear:both; font-weight:bold; margin-left:32px; } dd { width:315px; margin-left:130px; padding:5px 5px 5px 10px; } .sample{ margin-top:10px; margin-left:32px; } /* 右下バナーの設定 */ .section{ margin-right:32px; } div .section p{ margin-bottom:5px; } /* フッダーの設定 */ #footer{ clear:both; width:760px; color:#ffffff; background-color:#9f1d22; height:25px; bottom:0; text-align:center; } #footer p{ font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; line-height:20px; font-size:12pt; } また制作時に、このようなことにならないよう極力気をつけなければならないことなど、 アドバイスいただけたら幸いです。よろしくお願いします。 webデザイナーとして頑張ってゆきたいと思っています。 どうぞよろしくお願いします。

  • CSSでレイアウトが崩れます

    CSSに挑戦したのですが、IE6.0とie7.0で若干表示がくります。 ただ、IEでは何とか表示します。 また、MAC IE5.2では、右側メインが左メニューの下に崩れて表示されてしまいます。 ドリームウィーバーでもやはり表示が崩れるのです。 cssは以下になります。 左と右のレイアウトに問題があるのでしょうか。一部省略しました。 #Wrapper { padding: 0px; width: 800px; display: block; margin: 0px; background: url(../images/bg_img_01.jpg) repeat-y bottom; height: auto; } body { margin: 0px; padding: 0px; text-align: center; color: #333333; font-size: 12px; line-height: 150%; vertical-align: middle; } #imgR { padding: 0px; float: left; width: 500px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } #arrow { margin: 0px; padding: 0px; float: left; width: 500px; } #rContents { text-align: left; padding: 0px; margin-top: 30px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #111184; } .TextRink { text-decoration: none; color: #FF6600; display: inline; margin: 0px; padding: 0px 0px 0px 5px; } #WrapperL { margin: 0px; padding: 0px; width: 215px; height: auto; float: left; } #WrapperR { padding: 0px; width: 563px; height: auto; margin-top: 0px; margin-right: 15px; margin-bottom: 0px; margin-left: 0px; } #Footer { padding: 0px; height: 52px; width: 563px; background-image: url(../images/footer.gif); background-repeat: no-repeat; display: block; float: left; background-position: bottom; margin: 50px 0px 0px; vertical-align: bottom; } .sabu-title { padding: 13px 0px 0px; } .underline1 { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #CCCCCC; } #Header { display: block; margin: 0px; padding: 0px; height: 147px; width: 563px; background-image: url(../images/header_img.jpg); background-repeat: no-repeat; } .HeaderText { color: #FFFFFF; padding-top: 3px; margin: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 150px; font-size: 10px; }

  • CSSで全体をセンタリングしたい

    navi address main footer ↑このような4つの<div>をさらにcoverという<div>でくるんだ?レイアウトにしました。 下記のようなCSSにしたのですが、中央にすることができません。 同じような質問もたくさんあり、拝見したのですがどうもうまくいきません。 coverという<div>を作ったのが間違いなのでしょうか? ------------------------------------------- body{ text-align:center; } #cover{ width: 800px; margin-right=:auto; margin-left=:auto; text-align:left; } #navi{ float: left; width: 565px; height: 165px; } #address{ float: right; text-align: left; width: 235px; } #main{ width: 500px; clear:both; padding-right: 150px; padding-left: 150px; font-size: 10px; text-align: left; line-height: 20px; } #footer{ width: 500px; text-align:center; padding-right: 150px; padding-left: 150px; padding-top: 30px; } -------------------------------------------

    • ベストアンサー
    • CSS
  • 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; }

  • IEでテンプレートの表示が変です

    理由があって、全画面表示で左に110pxの余白、続いてcontainerの770pxを表示したいのですが無理でしょうか? Firefoxだと大丈夫なのですが!IEだと表示が異なります。 IEで観ると左に110pxの余白、containerの770pxがセンターリングされてしまいます。見た目では110pxの余白+150pxの余白+770pxといった感じです。 ディスプレーのサイズによっても違うようです。15インチ、17インチともにIEでは思い通り表示されませんが、19インチだと表示されます。 #container { width :770px; line-height: 140%; text-align: left; margin-left: 110px; margin-right: auto;(削除すると19インチもセンターリングされてしまいました) 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; }

  • CSS IEとfirefoxおなじレイアウトにしたいのですが

    初心者です。↑質問ですが IEでレイアウトはみれてもfirefoxでは崩れてしまいそれの 対処で困ってしまっています。 どなたかアドバイスください。 ↓のCSSなのですが、途中混乱したままの投稿となってしまっていますが おわかりなられるかた助けてください! ロゴがメイン画像にのっかったりと崩れがたえません。 body{ margin-top: 60px; padding: auto; background-color: #000000; background-image: url(../image/back.gif); color: #000000; cursor: crosshair; } P{ margin: 0; } h1{ font-family: serif; font-size: 5pt; color: #000000; } /*imgDIV↓*/ #lightbox{ width: 100%; z-index: center; text-align: center; background-repeat: no-repeat; } /*toplogo*/ #wrapper{ position: relative; width: 100%; margin: auto; margin-bottom: 20px; margin-left: auto; margin-right: auto; } #logo{ padding-top: 50px 50px 50px 50px; position: absolute; left: 410px; } /*グローバルナビ*/ #hako { margin-top: 150px; line-height:50px; padding-left: 900px; } #hako li { display:inline; list-style:none; padding-right:12px; float: left; background: url(../image/bpin.gif) left top no-repeat; line-height: 12px; padding-left: 17px; } #hako li{ font-family: DejaVuSans; font-size: 12px; } #hako li a { color:#C0C0C0; text-decoration:none; border-bottom:solid 2px #ADABAE; } #hako li a:hover { color:#FFFF66; border-bottom:solid 1px #CC0000; }

  • CSSでレイアウトをセンターにしたい

    CSSで製作したのですが、デザインが右端によってしまいます。 作成している会社のモニターでは真ん中でちゃんとみれるのですが、 家で確認したところ右寄せになっていました。 Centerにもっていくにはどうすればよいでしょうか? お教えくださいませ(困) 他にもおかしなところがあればお教えくださいませ。 body{ background-color: #000000; background-image: url(../imgs/back.gif); cursor: crosshair; margin: 0; padding: 0; } P{ margin: 0; text-align: center; font-family: DejaVuSans; font-size: 9pt; color: #C0C0C0; } h1{ font-family: serif; font-size: 3pt; color: #000000; } #wrapper{ width: 800px; margin-left: 450px; margin-right: auto; margin-top: 100px; } #logo{ width: 300px; float: left; padding-right: 5px; } #hako { margin-top: 80px; line-height:50px; padding-bottom: 15px; float: right; } #hako li { display:inline; list-style:none; padding-right:12px; float: left; background: url(../imgs/bpin.gif) left top no-repeat; line-height: 12px; padding-left: 20px; } #hako li{ font-family: DejaVuSans; font-size: 80%; } #hako li a{ color:#C0C0C0; text-decoration:none; border-bottom:solid 2px #ADABAE; } #hako li a:hover{ color:#66FFFF; border-bottom:solid 2px #CC0000; } #lightbox{ padding: 20px; width: 100%; text-align: center; background-repeat: no-repeat; }

  • 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

専門家に質問してみよう