2016-11-27 98 views
0

我想要一些解決方案來根據孩子在多線時的孩子寬度來調整容器的寬度。當孩子只在一行時,然後顯示:容器元素的內聯塊使我所需要的。但是,當它們在多行上時,容器的行爲與display:block相同。當孩子在多線上時根據孩子的寬度調整容器的寬度

我所知道的只有兩種解決方案: 1)將容器最大寬度設置爲兒童寬度的一些乘積。但它不是一個通用的解決方案(我的意思是顯示在分辨率較低的設備上)。

2)使用jQuery來計算容器寬度。但我寧願使用一些純粹的HTML/CSS解決方案。

HTML:

<div id="wrapper1">  
    <div id="wrapper2">     
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
     <div class="el"> 
     </div>   
    </div>   
</div> 


    <div id="wrapper2">     
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    <div class="el"> 
    </div>   
    </div>   
</div> 

CSS:

#wrapper1{ 
    max-width:1200px; 
    margin:auto; 
} 
#wrapper2{ 
    background: #FF0; 
    display:inline-block; 
} 
.el{ 
    float:left; 
    margin:10px; 
    width:200px; 
    height:200px; 
    background:#00F; 
} 

回答

1

請測試:

#wrapper1{ 
display: -webkit-flex; 
-webkit-flex-wrap: wrap; /* Safari 6.1+ */ 
display: flex; 
flex-wrap: wrap; 
justify-content: center; 
-webkit-justify-content: center; 
} 

#wrapper2{ 
max-width:880px; 
display: -webkit-flex; 
-webkit-flex-wrap: wrap; /* Safari 6.1+ */ 
display: flex; 
flex-wrap: wrap; 
justify-content: space-between; 
-webkit-justify-content: space-betweeen; 
} 

這裏有一個例子: Sample

點擊開始頁面上看到的網頁後,我認爲這是你想要的。

+0

好吧,它似乎很棒。 –

+0

Flex盒子在響應式設計中非常有用。如果你想閱讀,w3Scools是非常好的學習。 –

0

#wrapper1{ 
 
    width:1200px; 
 
} 
 
#wrapper2{ 
 
    display:inline-block; 
 
} 
 
.el{ 
 
    width:200px; 
 
    height:200px; 
 
    background:#00F; 
 
} 
 
.ul{ 
 
    padding: 20px; 
 
    float:left; 
 
    width:200px; 
 
    height:200px; 
 
    background: #FF0; 
 
}
<div id="wrapper1"> 
 
    <div id="wrapper2"> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    <div class="ul"> 
 
     <div class="el"></div> 
 
    </div> 
 
    </div> 
 
</div>

+0

謝謝,但這不是我發現的。我需要在兒童之間保持相同的差距,並且它必須以較低的分辨率工作。在你的情況下,#wrapper1的寬度被強制設置爲1200px。其實我需要一些方法來自動減少#wrapper2的寬度。在普通視圖中,它將具有1100px(線上的5個元素,其寬度爲200px,邊距爲2 * 10px)。理想情況下,在較小的屏幕上,它將是880px(在線4個元素),660(3),440(2),220(1) –

+0

#wrapper1 { max-width:1200px; } #wrapper2 { width:auto; display:inline-block; } – Yevhen

相關問題