CSS
html {
box-sizing: border-box;
font: 400 16px/1.45 'Source Code Pro';
}
*,
*:before,
*:after {
box-sizing: inherit;
margin: 0;
padding: 0;
border: 0;
outline: none;
overflow-x: hidden;
}
body {
background: #121;
color: #FEF;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 100vw;
height: 100vh;
}
.container {
display: flex;
color: #fff;
height: -moz-fit-content;
height: -webkit-fit-content;
height: fit-content;
background: blue;
}
.left {
background: blue;
min-height: 100vh;
min-width: 150px;
flex-shrink: 0;
}
.middle {
background: green;
min-height: 100vh;
overflow: hidden;
width: calc(100vw - 400px);
padding-bottom: 60px;
flex-grow: 1;
flex-shrink: 0;
}
.middle .fixed-footer {
background: orange;
position: fixed;
bottom: 0;
width: 100vw;
width: inherit;
padding: 16px 0;
overflow-x: hidden;
}
.right {
background: blue;
min-height: 100vh;
min-width: 250px;
flex-shrink: 0;
}
@media screen and (min-width: 640px) {
html {
margin-left: calc(100vw - 100%);
margin-right: 0;
overflow-y: auto;
}
}
新增星球大戰存有內容展示.middle
的縱向柔韌性,以及如何.fixed-footer
是固定的,是.middle
的寬度。
DEMO
不會計算寬度爲你工作嗎? 'width:calc(100vw - 150px - 250px);' –
@AntonYakushev重點在於如果側邊欄被省略,中間部分會自動增長,否則他可以使用'left:150px'和'right:250px'來代替。 –
@jabram原因'寬度:繼承'不起作用的是'寬度'的默認值是'auto',它被遺傳得很好,在這種情況下它只是沒有幫助你。我知道你的問題可能的解決方案,但他們是非常複雜的涉及多個兄弟選擇器... –