2012-01-17 5 views
0

firefoxにバグがあるようです。コンテナの右端に何かを置くと(text-alignまたはfloatを使用して)、コンテナを大きくする必要があります。例えばので右端にFirefoxがオーバーフローしていますか?

-

<div style='width:100px; overflow:auto'> 
    <div style='width:50px; float:left;'>Something</div> 

    <div style='width:50px; float:right;'> 
     <h1 style='text-align:right;'>Title</h1> 
    </div> 
</div> 

は、Firefoxのスクロールバーを作成し、クロムで正常に動作するようです。何か案は?

+0

内部の小さな容器でテストしましたが、依然としてそれを押しているので、float:rightコンテナ内にネストされたtext-alignと関係があると思います。 –

+0

は2番目の内部コンテナを1ピクセル縮小し、代わりに左にフローティングしました。問題は修正されましたが、理想的ではありません...誰かがより良い解決策を知っていれば助言してください、ありがとう! –

答えて

2

あなたが見ているのは、テキストのペイントされたディメンションがレイアウトのディメンションよりも大きくなる可能性があるためです。これは特にイタリック体のテキストで表示されますが、特にサブピクセルのレイアウトとアンチエイリアスを使用するテキストで発生する可能性があります。

クロムはどのような種類のサブピクセルレイアウトもしないので、オーバーフローするテキストは無視されます。

あなたの最も簡単な賭けは、あなたの右フロートをoverflow:hiddenとしてスタイルすることです。

+0

ありがとうございました! –

0

私はオブジェクトとaligenmentをやっている私は

<div style='width:100px; overflow:auto'> 
<div style='width:50px; float:left;'>Something</div> 

<div style='width:49px; float:right;'> 
    <h1 style='text-align:right;'>Title</h1> 
</div> 

このPROBはあなたを助けにはなりませんが、私は%の

+0

try:両方のフロートを左に変更し、オーバーフローを追加:メインコンテナに非表示 – HcgRandon

+0

もう一度50pxに戻してみてください。オーバーフローを追加:隠し;メインコンテナ – HcgRandon

0

をuseing時に申し訳ありませんが、あなたが質問再読たくさんそれをしなければなりません次のようにスクロールバーを削除できます:

<div style='width:100px; overflow:hidden'> 
    <div style='width:50px; float:left;'>Something</div> 

    <div style='width:50px; float:right;'> 
     <h1 style='text-align:right;'>Title</h1> 
    </div> 
</div> 

あなたはコンテンツの1pxを失います

+0

オーバーフロー:autoは、親コンテナが浮動要素の周りに伸びるようにします。私はこのメソッドを多くのクリアを使用することをお勧めします。 –

0

これは動作するはずです。使用しているFirefoxとChromeのバージョンは明記していませんが、FF 9.0とChrome 16の場合は同じように動作します。つまり、スクロールバーが表示されます。これは、コンテンツが定義された幅を超えて拡張され、オーバーフローのデフォルト値が「可視」なので、右浮動divのh1がdivの境界を越えて拡大しているためです。 h1をpタグに変更すると、スクロールバーが消えることに注意してください。 (内容は国境を越えて延びているかを確認するためにコピー/貼り付け)ボックスモデルで何が起こっているかを説明します境界線を適用する

:それが必要として

<div style='width:104px; overflow:auto;'> 
    <div style='width:50px; float:left; border:1px solid red;'>Something</div> 

    <div style='width:50px; float:right; border:1px solid red;'> 
     <h1 style='text-align:right;'>Title</h1> 
    </div> 
</div> 

だから、再び、それが動作しています。コンテンツがコンテナの幅を超えてオーバーフロー値が割り当てられていない場合、オーバーフローのデフォルトはvisibleになり、コンテンツはコンテナの境界を表示して「プッシュ」します。この場合、外側のコンテナにオーバーフロー:autoがあるため、スクロールバーが表示されます。

関連する問題