2012-02-15 5 views
1

私の目標は、このdiv内のテキストをコンテナーのクロスブラウザーの中央に表示させることです。ブラウザ間のタイプの差異を解決しますか?

これを達成できれば、より少ない画像を使用できます。この例では、クロム/ SafariとFirefoxで異なる見え方

http://jsfiddle.net/tMFaD/

注意してください。この問題は明らかに、タイプ/ラインの高さ/似ているようです( '1'はFirefox上で高くなります)。

これは簡単にできますか?

UPDATE:これは私が解決しようとしている小さな違いです:http://cl.ly/2A2o371c2O2r3q0T0R2E

UPDATE 2:私は決定的なクロスブラウザのソリューションを見つけていないが、このスレッドでの回答の一部が来る必要がありますほとんどの人にとって十分に近い。私が使用したソリューションは、この要素に対してブラウザターゲットのルールを使用することでした。私は画像/スプライトを使用することもできます。

+2

は私のためにクロム、Firefoxの&IE9で同じに見えます。 –

+0

'width'と' height'を設定し、 'text-align:center'と' line-height'を 'height'と同じように設定するのはなぜですか?編集し、私はクロムとFFのいずれかの違いを見ることができません。 – Niklas

+0

また、DIVは既にブロックレベルの要素であるため、 'display:block;'は不要です。 –

答えて

3

ボックスの高さに合わせて線の高さを設定し、上と下のパディングを削除することができます。それはボックスの真ん中(垂直)に揃えます。あなたはいくつかの方法でそれを行うことができます

1

:レベルまたはクロスブラウザ/クロスを取得するには:

http://jsfiddle.net/spacebeers/s9Urm/8/

EDIT:

.box { 
    font-size: 44px; 
    font-weight: bold; 
    color: white; 
    text-align: center; 
    background: pink; 
    display: table-cell; 
    vertical-align: middle; 
    text-align: center; 
    width: 80px; 
    height: 80px; 
}​ 

.box { 
    width: 80px; 
    height: 80px; 
    font-size: 44px; 
    line-height: 80px; 
    font-weight: bold; 
    color: white; 
    background: pink; 
    text-align: center; 
} 

どちらも同じ結果が得られますOSの精度は、あなたがそれらのいくつかに別のスタイルルールを使用するか、単にイメージを使用しなければならないと思ってからです。

+0

私の場合(os x)、ffでは、タイプはまだ2/3px高いです。非常に近いですが。 – sgb

+0

あなたは自分自身を並べ替えるべき数字で遊んでいるなら。 – SpaceBeers

+0

http://cl.ly/2A2o371c2O2r3q0T0R2E明らかにこれは非常に難解ですが、重要です – sgb

0

他の提案、vertical middle代わりのpaddingを制御するためにline-heightを使用します。

.box { 
    display:block; 
    font-size: 44px; 
    font-weight: bold; 
    color: white; 
    text-align: center; 
    background: pink; 
    float: left; 
    line-height:80px; 
    width:80px; 
    height:80px; 
}​ 
関連する問題