2016-05-15 87 views
1

您可以查看工作演示hereCSS,JQuery - Flex元素在顯示後不顯示:無;

我有以下佈局:

<div class="holder"> 
    <div id="container"> 
    <div class="left"></div> 
    <div class="right"></div> 
    </div> 
</div> 

凡造型如下:

.holder{ 
    height: 200px; 
    background: #0F0; 
} 
#container { 
    display: flex; 
    flex-flow: row; 
    height: 200px; 
    background: #00F; 
} 
.left { 
    background: tomato; 
    width: 25%; 
} 
.right { 
    flex: 1; 
    background: gold; 
} 

這意味着:

  • 如果#container不可見,則應該看到t他綠色的.holder
  • 背景如果任.left.right顯示不正確,你應該看到的#container

藍色的背景,你會看到什麼,上載,是這樣的:

Proper Flex Layout

但是!當我設置#containerdisplay: none;

$('#container').css('display', 'none'); 

,然後逆轉這一過程

$('#container').css('display', 'block'); 

的Flex組件顯示不正確的,你只能得到:

Incorrect flex layout

發生了什麼?爲什麼它不能正確顯示?

回答

4

您需要改變容器回display: flex而非display: block

+0

是的,打你一記重拳,但。我發佈後意識到發生了什麼。 – Birrel

0

我發佈後立即找出它,但我會留給任何人在將來遇到這個問題。

應改爲:

$('#container').css('display', 'flex'); 

這麼簡單。

查看here