2012-01-17 64 views
0

似乎有一個Firefox的錯誤,如果我把任何東西放在容器的右邊緣(使用文本對齊或浮動),它使容器比它應該更大。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

在小容器內部進行測試,它仍在推動它,認爲它與text-align:right嵌套在float:right容器內。 – 2012-01-17 17:37:55

+0

將第二個內部容器收縮1px,然後將其左移。修正了這個問題,但並不理想......如果有人知道更好的解決方案,請告知,謝謝! – 2012-01-17 17:40:55

回答

2

您所看到的是文本實際上溢出了其容器,因爲文本的繪製尺寸可能會大於其佈局尺寸。這在斜體文本中尤其明顯,但可以在任何文本中發生,特別是在子像素佈局和抗鋸齒方面。

Chrome不會做任何形式的子像素佈局,所以它只是忽略了溢出的文本。

最簡單的方法是將您的正確的浮點數設爲overflow:hidden

+0

謝謝,工作過! – 2012-01-18 09:34:48

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> 

這個概率不會幫助你,但我必須這樣做很多時候期運用%的

+0

嘗試:將float更改爲left並添加overflow:隱藏到主容器 – HcgRandon 2012-01-17 17:40:26

+0

嘗試再次將其重新放回50px。添加溢出:隱藏;到主容器 – HcgRandon 2012-01-17 17:45:28

0

對不起重讀你的問題你可以像這樣刪除滾動條:

<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

溢出:自動是這樣父容器延伸浮動元素。我更喜歡這種方法來使用很多清除。 – 2012-01-18 09:33:39

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> 

所以,再一次,它的表現,因爲它應該。如果您的內容超出其容器的寬度並且沒有分配溢出值,則溢出默認爲可見,並且內容顯示並「推入」容器的邊界。在這種情況下,由於你的外部容器溢出:auto,你會看到一個滾動條。