2016-03-16 53 views
0

我只有IE11的問題(Chrome + FF可以正常工作),其中2行將在對方的「頂部」進行。如何阻止IE11將這兩條線路放在一起?

這裏的鏈接: https://jsfiddle.net/3L2bx9w9/2/

HTML:

<div> 
    <label>first line first line first line first line</label> 
    <div> 
    <div class="content"> 
     <div class="contentFieldset"> 
     <div class="inner"> 
      second line second line second line second line 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

<div> 
    <label>first line first line first line first line</label> 
    <div> 
    <div class="content"> 
     <div class="contentFieldset"> 
     <div class="inner"> 
      second line second line second line second line 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

CSS:

.content { 
    display: flex; 
    flex-direction: row; 
    height: 100%; 
} 

.contentFieldset { 
    flex: 1; 
    -ms-flex: 1; 
    min-width: 0; 
    display: flex; 
    flex-direction: column; 
} 

.inner { 
    display: flex; 
    flex-direction: row !important; 
    flex: 1; 
    -ms-flex: 1; 
    min-width: 0; 
} 

這種嵌套結構需要我的設置(我已經明顯簡化了它在這個例子中),它的工作原理是如果頂部的div設置了靜態高度(例如250px),但我需要它來填充可用空間。

有誰知道一種解決方法,我可以使用它來使其工作,而不移動flexbox或說不使用IE?謝謝。

回答

0

答:

無論出於何種原因,它出現在-ms-flex線必須設置爲1 0 auto;而不是僅僅1。因此,修正CSS看起來像:

.content { 
    display: block; 
    flex-direction: row; 
    height: 100%; 
} 

.contentFieldset { 
    flex: 1; 
    -ms-flex: 1 0 auto; 
    min-width: 0; 
    display: block; 
    flex-direction: column; 
} 

.inner { 
    display: block; 
    flex-direction: row !important; 
    flex: 1; 
    -ms-flex: 1 0 auto; 
    min-width: 0; 
} 

我不知道爲什麼這個工程,但我懷疑爲-MS-FLEX的默認處理方式不同,然後彎曲的IE瀏覽器。

0

我聽說過其他問題,將「display:flex」更改爲「display:block」。工作對我來說在這個小提琴:

https://jsfiddle.net/3L2bx9w9/3/

.content { 
    display: block; 
    flex-direction: row; 
    height: 100%; 
} 

.contentFieldset { 
    flex: 1; 
    -ms-flex: 1; 
    min-width: 0; 
    display: block; 
    flex-direction: column; 
} 

.inner { 
    display: block; 
    flex-direction: row !important; 
    flex: 1; 
    -ms-flex: 1; 
    min-width: 0; 
} 
+0

將其更改爲阻止的問題是.content不再填充它所處的高度,這就是爲什麼我使用flex開始。 – automaton

+0

然後,您可能需要提供另一種方式讓內容填充內容的高度。我不確定您會找到另一種修復IE11錯誤的方法。 –

+0

我的確找到了一種方法,看上面。我必須將-ms-flex修改爲1 0 auto而不是1。真是一種痛苦。 – automaton

相關問題