最初「どこかの閉じタグでも忘れているのかな?」と思ったのですが、別に記述ミスはありません。また、変なfloatなども かかってはいないようです。
そこで検証した結果、スタイルシートに記述されたCSSリセットの一部に原因がありました。
CSSリセットとは何なのか?
ブラウザごとに異なる初期状態で適用されているCSSを、スタイルを統一するために上書きする記述をCSSリセットといいます。
具体的には以下のような記述です。
/* CSSリセット */ html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote, pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small, strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table, caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption, figure,footer,header,hgroup,menu,nav,section,summary,time,mark, audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%; vertical-align:baseline;background:transparent;font-weight:normal;} body{line-height:1}article,aside,details,figcaption,figure, footer,header,hgroup,menu,nav,section{display:block} ul{list-style:none}blockquote,q{quotes:none}blockquote:before, blockquote:after,q:before,q:after{content:none}a{margin:0;padding:0; font-size:100%;vertical-align:baseline;background:transparent} del{text-decoration:line-through}abbr[title],dfn[title] {border-bottom:1px dotted;cursor:help} table{border-collapse:collapse;border-spacing:0} hr{display:block;height:1px;border:0;border-top:1px solid #ccc; margin:1em 0;padding:0}input,select{vertical-align:middle}
で、上記のうち【tbody】【tfoot】【thead】にかかっているスタイルが、tableレイアウトを崩している原因となっています。tbody,tfoot,thead{vertical-align:baseline;}
vertical-align:baseline;とは、セル要素のベースラインを、最初の行のベースラインに揃えるプロパティです。 これをtbody,tfoot,thead,という表を定義するタグにかけてしまっているんです。
言い方をかえると、レイアウトを崩してでも、テーブルの一番左側に書かれているコンテンツに、左から2番目以降のコンテンツの高さを揃えるスタイルです。
CSSリセットを記述すると、確かにクロスブラウザ対策(ブラウザ間の表示の違いを減らす対策)がやりやすくなりますが、他のサイトから発行されたソース(バナー広告ソースなど)を実装する際には、思わぬレイアウト崩れの原因となることもあります。
その場合は、原因となっているスタイルは消してしまった方が良いかもしれません。
超多機能でSEOに強い!ブロガー・アフィリエイターを虜にするWPテーマDIVER
国内最速のサイト表示スピード!最新技術が詰め込まれたWPテーマTHE THOR