![](/img/trans.png)
[英]How can I make a div auto-adjust its height between two divs, according to window height using CSS/Javascript?
[英]CSS: How to adjust two divs align at bottom which use float property and auto width and height
我正在與5 divs:
auto
) width:75%
和height:auto
)
height:90%
width:auto)
height:10%
width:auto
) width:25%
height:auto
) 如下所示:
當前寬度和高度設置的div彼此成比例響應。
但是問題是如果我將height:89%
設置為紅色div的height:89%
bottom-margin:1%
,那么它們將不會產生相同的輸出,包含紅色和綠色的sub div,如果veiwport較小並且變得比藍色短,則會得到更高的高度如果視口是大屏幕,則為div。
我想以這種方式進行調整,無論我使用什么設備,綠色div始終始終保持相應的調整,而藍色div始終在底部。
現在不幸的是,我的code
似乎無法與fiddle
配合使用,並且snippet
也無法正常工作,但是它可以在我的瀏覽器上工作,在liveweave.com上也可以工作 。
這是liveweave.com上的工作示例
這是我完整的代碼:
HTML:
<body>
<div class="main">
<div class="sub">
<div class="red"></div>
<div class="green"></div>
</div>
<div class="blue"></div>
</div>
</body>
CSS:
.main{
width: auto;
height: auto;
}
.sub{
width: 75%;
height: auto;
float: left;
}
.red{
width: 100%;
height: 85%;
background-color: red;
}
.green{
width: 100%;
height: 15%;
background-color: green;
}
.blue{
width: 25%;
height: 100%;
background-color: blue;
float: right;
}
您可以使用Flexbox
創建此布局。 默認情況下,Flexbox會將flex-items的高度設置為相同的高度,因此,如果您增加blue div的高度,它也會同時增加sub
div的高度。
body { margin: 0; } .main { min-height: 100vh; display: flex; } .blue { background: blue; flex: 1; } .sub { flex: 3; display: flex; flex-direction: column; } .red { flex: 1; background: red; } .green { background: green; flex: 0 0 10%; }
<div class="main"> <div class="sub"> <div class="red"></div> <div class="green"></div> </div> <div class="blue"></div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.