2010-04-22 75 views
1

我們試圖實現的視覺目標是一個水平菜單,其中一些鏈接可能跨越多行,但所有鏈接都應垂直居中。隨機Firefox使用顯示器時的問題:表

在兼容的瀏覽器中,這可以通過使用display:table的CSS實現。樣品標記:

<ul> 
    <li><a href="#">Link</a></li> 
    <li><a href="#">Link<br />spanning lines</a></li> 
    <li><a href="#">Link</a></li> 
</ul> 

CSS:

ul { 
    display: table 
} 

ul li { 
    display:table-cell; 
    vertical-align:middle; 
} 

ul li a { 
    display: block; 
} 

這工作。大多數時候。但是,對於某些人而言,在Windows或OSX上使用某些版本的firefox 3.x(有時在初始頁面加載時),這些LI將包裝在其他人的下面。

頁面重新加載可以在99%的時間內修復問題。

該錯誤很難重現。這似乎是隨機的,至多。我無法在我的XP機器上實現它,但可以在OSX機器上稍微彈出一次。

視覺例如:

我們想要的:

link 1  link 2  link 3  link 4 

我們得到什麼,有時:

link 1  link 2  link 3 
link 4 

我不能找到太多提及這個問題,雖然我沒碰到過這裏提到的可能是相關的:

CSS menu broken in Firefox (display:table-cell;)

有沒有人遇到過這個和/或知道可能是什麼原因造成的?

+0

根據[這篇文章](http://blog.themeforest.net/tutorials/vertical-centering-with-css/),你使用的方法不會在IE中工作。也許你應該考慮使用不同的垂直定心技術? – 2010-04-22 21:52:58

+0

我很清楚IE的問題。 ; o)我們以不同的方式適應IE。 – 2010-04-23 16:51:15

回答

2

如果用戶使用的是Firefox 3.5或更早的版本,那麼如果HTTP數據包中斷髮生在表格中間,您可能會遇到https://bugzilla.mozilla.org/show_bug.cgi?id=148810

您可以通過在桌面上將顯示切換爲'無'來清除佈局(例如,通過執行document.body.offsetWidth),然後將顯示重新設置爲「」或「表格」...這不太好,但它會起作用。

當然,你可以做的任何事情,讓你的用戶從古老的Firefox版本升級將是他們和你都很好。 ;)