2017-02-25 35 views
1

在下面的提琴中,我試圖通過使用.content div來填充父項(.side-child)的高度父母的100%寬度和高度。邊小孩的div有正確的高度,唯一的問題是讓內容填滿他們的父母(同時保持長寬比)。柔性父項的子項增長爲100%寬度和高度不填充父項

https://jsfiddle.net/d6L2bve9/5/

<div id="side"> 
<div class="side-child"> 
    <img src="https://www.icann.org/assets/icann_logo-52672386035a35504af59606040687c8.png" class="content" /> 
</div> 
<div class="side-child"> 
     <img src="https://www.icann.org/assets/icann_logo-52672386035a35504af59606040687c8.png" class="content" /> 

</div> 
<div class="side-child"> 
     <img src="https://www.icann.org/assets/icann_logo-52672386035a35504af59606040687c8.png" class="content" /> 

</div> 
</div> 

CSS

#side { 
height : 100vh; 
display : flex; 
flex-direction : column; 
width : 50px; 
} 

.content { 
height : 100%; 
background : #ff0000; 
} 

.side-child { 
flex-grow : 1; 
}  

我可以得到它由.side獨生子女位置設置相和。內容絕對低於

https://jsfiddle.net/5sgfcjy4/2/

工作

但我不明白爲什麼我有t o因爲。side-child已經擁有了正確的身高?我猜測它的,因爲技術上的。孩子divs沒有身高值,因此100%不能使用?

回答

0

您也可以通過下面的代碼實現這一點:

.flex-container { 
 
    padding: 0; 
 
    margin: 0; 
 
    list-style: none; 
 
    
 
    -ms-box-orient: horizontal; 
 
    display: -webkit-box; 
 
    display: -moz-box; 
 
    display: -ms-flexbox; 
 
    display: -moz-flex; 
 
    display: -webkit-flex; 
 
    display: flex; 
 
} 
 

 
.column { 
 
    -webkit-flex-direction: column; 
 
    flex-direction: column; 
 
    float: left; 
 
} 
 
.column li { 
 
    background: deepskyblue; 
 
} 
 

 
.flex-item { 
 
    background: tomato; 
 
    padding: 5px; 
 
    width: 50px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    
 
    line-height: 50px; 
 
    color: white; 
 
    font-weight: bold; 
 
    font-size: 2em; 
 
    text-align: center; 
 
}
<ul class="flex-container column"> 
 
    <li class="flex-item">1</li> 
 
    <li class="flex-item">2</li> 
 
    <li class="flex-item">3</li> 
 
    <li class="flex-item">4</li> 
 
    <li class="flex-item">5</li> 
 
</ul>

0

這是否對你的工作?

#side { 
 
    height : 100vh; 
 
    display : flex; 
 
    flex-direction : column; 
 
    width : 50px; 
 
} 
 

 
.content { 
 
    flex: 1 auto; 
 
    background : #ff0000; 
 
} 
 

 
.side-child { 
 
    display: flex; 
 
    width : 100%; 
 
    height : 100%; 
 
}
<div id="side"> 
 
    <div class="side-child"> 
 
    <div class="content"> 
 
     1 
 
    </div> 
 
    </div> 
 
    <div class="side-child"> 
 
     <div class="content"> 
 
     2 
 
    </div> 
 
    </div> 
 
    <div class="side-child"> 
 
     <div class="content"> 
 
     3 
 
    </div> 
 
    </div> 
 
</div>

0

如果你不需要側胎後內容的div你也可以編輯你的HTML這樣的:

#side { 
 
    height : 100vh; 
 
    display : flex; 
 
    flex-direction : column; 
 
    width : 50px; 
 
} 
 
.side-child { 
 
    flex-grow : 1; 
 
    background : #ff0000; 
 
    border:1px solid #000; 
 
}
<div id="side"> 
 
    <div class="side-child"> 
 
     1 
 
    </div> 
 
    <div class="side-child"> 
 
     2 
 
    </div> 
 
    <div class="side-child"> 
 
     3 
 
    </div> 
 
</div>

+0

我需要的內容div的,因爲在我的應用程序,他們是我要保持縱橫圖片的比例,所以我不希望他們是彎曲的孩子。 – smistry

+0

好吧...讓我檢查是否有任何解決方案的內容分區... –

0

做的另一種方式。

#side { 
    height : 100vh; 
    display : flex; 
    flex-direction : column; 
    width : 50px; 
} 

.content { 
    width : 100%; 
    background : #ff0000; 
} 

.side-child { 
    flex-grow: 1; 
    display: flex; 
    align-self: stretch; 
} 

https://jsfiddle.net/d6L2bve9/2/

0

我剛剛結束了做它像這樣

#side { 
    height : 100vh; 
    display : flex; 
    flex-direction : column; 
    width : 50px; 
    } 

    .content { 
    height : 100%; 
    background : #ff0000; 
    position : absolute; 
    } 

    .side-child { 
    flex-grow : 1; 
    position : relative; 
    } 

https://jsfiddle.net/5sgfcjy4/2/

+0

這樣,他們增長超過他們的父母寬度50px ...他們真的應該這樣做嗎? – LGSon

+0

是的,在我的真實應用程序,我沒有這種限制,這對我來說不是一個問題 – smistry

+0

嗯,那麼爲什麼你給我們錯誤的條件,然後呢? – LGSon

相關問題