maki-o memo

制作に関する私的なメモです

Firefoxで、左のborderが1pxずれる

Firefox3.0で、下のような時に発生。

<div class="section">
    <h2>タイトル</h2>
    <table>
        //テーブルの内容
    </table>
</div>

cssの指定はこんな感じ

.section {
    width: 500px;
}

.section h2 {
    background: url(img/hoge-bg.gif) no-repeat left top;
}

.section table {
    border-collapse: collapse;
    border: solid 1px #333;
    width: 100%;
}

このような指定にするとテーブルの左ボーダーが、1px左にズレます。

調べてみると、どうやらborder-collapseが原因のようで、

統合ボーダーモデルでは、その名の通りボーダーが統合された状態で表示される。各ボーダーモデルはセル間を中心に表示されることになる。テーブル上下左右にはボーダーの半分がはみ出すので注意が必要だ。

との事らしい。 テーブルのborderを10pxとかにするとよく解ります。

解決方法としては、テーブルの、border-collapse を separate にし、border-spacing を 0 にすればいいとの事です。

詳しくはこちら

border-collapse | A Day in the Life

でもIE6だとborder-spacingに対応してないので、別途ハックが必要かも。


プロフィール

フロントエンドエンジニア

Tomokazu Makita

名古屋でフリーランスでWeb制作してます。 フロントエンドのことを主にやってます。
a-blog cmsを使用したサイト制作が得意です。
お仕事のご相談随時受付中。

雪山大すき。冬は雪山の合間に仕事します。
財布はいつも吹雪です。

エントリーリスト

タグ