2016-07-28 66 views
0

我有一個div在另一個div內,沒有一個元素具有固定的寬度或高度。中心div(class:page-detail-left-content)應該隨着窗口大小的變化而變化,但需要有一個最小寬度並在適當的時候顯示一個滾動條。難以在沒有固定寬度或高度的嵌套div中顯示滾動條

有什麼建議嗎?

.page-detail { 
 
    height: 100%; 
 
} 
 

 
.page-detail-with-filter { 
 
    margin-left: 240px; 
 
} 
 

 
.page-detail-right { 
 
    float: right; 
 
    width: 240px; 
 
    height: 100%; 
 
    z-index: 999; 
 
    background: green; 
 
} 
 

 
.page-detail-left { 
 
    height: 100%; 
 
    margin-right: 240px; 
 
    background: lightblue; 
 
} 
 

 
.page-detail-left-main-content { 
 
    bottom: 90px; 
 
    position: absolute; 
 
    top: 190px; 
 
    overflow: scroll; 
 
    right: 240px; 
 
    min-width: 800px; 
 
    left: 10px; 
 
} 
 

 
.page-detail-bottom { 
 
    width: 100%; 
 
    height: 90px; 
 
    border-top: 1px solid lightgray; 
 
    right: 240px; 
 
    bottom: 0px; 
 
    position: absolute; 
 
    z-index: -10; 
 
} 
 

 
.filterSelection { 
 
    height: 100%; 
 
}
<div class='filterSelection'> 
 
    <div class='page-detail-right'> 
 
    RIGHT 
 
    </div> 
 
    <div class='page-detail-left'> 
 
    <div style="height:100%;"> 
 
     <div style="height:80px;"> 
 
     header 
 
     </div> 
 
     <div style="border-top:1px solid; border-bottom:1px solid;height:50px;" class="gray2"> 
 
     header2 
 
     </div> 
 
     <div class="page-detail-left-main-content"> 
 
     dskhfjkajf ajsdhfjk asdfhah sdfha sdfhaskdhf kjahsdjkfh ajsdhf asdkjfhakjsdh fkjh askdj fhjaksdhfj ahsdjfkh asjkfhdajskh fdjkhsdf sdfjkasdfh ajkdhfjka hdjkhafkjsh kjfhashdkfj hsjdhf hdsfak jhdfa shdfajkhsdf adhf akdsjhfkajhd sfkjahsdkjf haksjdhfasdf adf 
 
     dsfjadjkfhak sdhfkjashdfjk adhfa hdfh 
 
     </div> 
 
     <div class="page-detail-bottom"> 
 
     bottom bar 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

你有沒有考慮過使用flexbox? https://css-tricks.com/snippets/css/a-guide-to-flexbox/ – wzr1337

回答

0

你可以嘗試用此代替你的CSS?它使用@media查詢,它定義了CSS中的條件規則。在這種情況下,當窗口的寬度小於1000px時,.page-detail-left-main-content將被給出overflow: scroll

.page-detail { 
 
    height: 100%; 
 
} 
 

 
.page-detail-with-filter { 
 
    margin-left: 240px; 
 
} 
 

 
.page-detail-right { 
 
    float: right; 
 
    width: 240px; 
 
    height: 100%; 
 
    z-index: 999; 
 
    background: green; 
 
} 
 

 
.page-detail-left { 
 
    height: 100%; 
 
    margin-right: 240px; 
 
    background: lightblue; 
 
} 
 

 
.page-detail-left-main-content { 
 
    bottom: 90px; 
 
    position: absolute; 
 
    top: 190px; 
 
    right: 240px; 
 
    min-width: 800px; 
 
    left: 10px; 
 
} 
 

 
@media (max-width: 1000px) { 
 
    .page-detail-left-main-content { 
 
    overflow: scroll; 
 
    } 
 
    }
<div class='filterSelection'> 
 
    <div class='page-detail-right'> 
 
    RIGHT 
 
    </div> 
 
    <div class='page-detail-left'> 
 
    <div style="height:100%;"> 
 
     <div style="height:80px;"> 
 
     header 
 
     </div> 
 
     <div style="border-top:1px solid; border-bottom:1px solid;height:50px;" class="gray2"> 
 
     header2 
 
     </div> 
 
     <div class="page-detail-left-main-content"> 
 
     dskhfjkajf ajsdhfjk asdfhah sdfha sdfhaskdhf kjahsdjkfh ajsdhf asdkjfhakjsdh fkjh askdj fhjaksdhfj ahsdjfkh asjkfhdajskh fdjkhsdf sdfjkasdfh ajkdhfjka hdjkhafkjsh kjfhashdkfj hsjdhf hdsfak jhdfa shdfajkhsdf adhf akdsjhfkajhd sfkjahsdkjf haksjdhfasdf adf 
 
     dsfjadjkfhak sdhfkjashdfjk adhfa hdfh 
 
     </div> 
 
     <div class="page-detail-bottom"> 
 
     bottom bar 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

我就當你需要滾動條有點不清楚。如果沒有設置高度,div將始終垂直擴展以適應其內容,而不考慮寬度。

+0

謝謝泰勒。我在窗口的左邊,頂部,底部和右側(浮動)都有固定寬度和高度的div。中心的div需要佔用剩餘的空間,但是如果瀏覽器窗口小於1000px,這會迫使div被稱爲min-width:600px,我希望滾動條顯示在該div上。 –

+0

您是否聽說過CSS中的@media標籤?它們基本上是可以根據窗口大小設置的規則。如果您將當前的中心div更改爲不具有滾動條,然後將其添加到CSS的* end *處,則只有當窗口小於1000像素寬時,纔會給出滾動條。 '@media(最大寬度:1000像素){'' 。第細節 - 左 - 主內容{'' 溢出:滾動;'' }'' }' – Santi

+0

@ J.Doe請參閱更新的答案 – Santi

相關問題