2014-02-25 46 views

回答

5

這只是因爲(工作草案)flexbox規範在IE10發佈後發生了變化。

下面是來自CSS Flexbox的工作規範草案文本的相關塊,因爲它的存在時,IE10發佈了對2012年底:

柔性佈局算法由柔性物品產生箱操作。下列各變得柔性項:

[...] 

4.一種匿名塊周圍非替換內聯的子元素的連續運行纏繞。

來源:http://www.w3.org/TR/2012/WD-css3-flexbox-20120612/#flex-items

span是一個 「非替換直列子元素」。因此,IE10將span(和任何相鄰的內聯內容)封裝在一個匿名塊中(與舊規範相匹配),而不是將其轉換爲塊(根據新規範)。

我懷疑微軟不希望在發佈後改變這個功能,以避免破壞已經編碼的內容,以期在IE10中發生特定的行爲。

所以,如果你想寫Flexbox的內容的作品在IE10 更新的瀏覽器版本,它可能是最好不要依賴於這種特殊的行爲。 (請明確表示;將這些跨度更改爲div,或者給它們display:block,因爲您知道它們將在新瀏覽器中轉換爲塊。)

+0

要明確,IE遵循草案規範,而不是最終版本。規範並沒有從它們下面改變。其他瀏覽器更新更頻繁,並能夠趕上,而IE一如既往,遠遠落後。 – Rob

+1

我編輯了我的帖子,在第一句話中提到「工作草案」,並刪除「從下面」;希望能讓這個更清晰,更中立的聲音。 (另外,你提到的是「最終版本」 - 目前還沒有「最終版本」,CSSWG還提出/討論了一些(次要的)行爲變化http://dev.w3.org/csswg/css- flexbox /擁有最新的編輯草案(幾天前最新更新),並且我知道一些尚未完成的改進建議。) – dholbert

-3

你試過這個屬性嗎?

display:-ms-inline-flexbox;(用於內聯flexbox容器)。

+0

在我的情況下,兒童內聯不是父項。這不起作用。 – stilllife