全屏,页眉和页脚有固定高度(60px),绿色侧边栏宽200px;侧边栏和右侧的部分都占据y轴上的整个可用空间。
对于宽屏幕,我想将右侧分成4个相等的框,显示为2×2。
对于中小屏幕(<768px),我想显示4个相等的方框1×4,如下图所示:
我的HTML:
$customerType = Customer::TYPE_SHOP;
我拥有的CSS:
<div id="wrapper">
<div id="header">Header</div>
<div id="content">
<div id="left"></div>
<div id="right">
<div class="red_box"></div>
<div class="red_box"></div>
<div class="red_box"></div>
<div class="red_box"></div>
</div>
</div>
<div id="footer">Footer</div>
</div>
我如何设置这些红色框以实现2个布局,如果可能的话,而不使用display:table 和display:table-cell,因为这会在红色内部产生绝对定位的问题Firefox上的方框?
谢谢!
答案 0 :(得分:0)
找到了解决方案。这是:
HTML:
<div id="wrapper">
<div id="header">Header</div>
<div id="content">
<div id="left"></div>
<div id="right">
<div class="red_box"></div>
<div class="red_box"></div>
<div class="red_box"></div>
<div class="red_box"></div>
</div>
</div>
<div id="footer">Footer</div>
</div>
CSS:
html {
height: 100%;
}
body {
height: 100%;
position: relative;
color: white;
}
body * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#wrapper {
height: 100%;
padding: 60px 0;
position: relative;
}
#header {
width: 100%;
height: 60px;
background: #171717;
position: absolute;
top: 0;
left: 0;
}
#content {
height:100%;
display: flex;
}
#left {
background: green;
width: 200px;
flex: 0 0 200px;
}
#right {
background: blue;
width: 100%;
position: relative;
display: flex;
flex-wrap: wrap;
}
.red_box {
flex: 0 0 50%;
background: red;
border: 1px solid #111;
border-bottom: none;
}
#footer {
width: 100%;
height: 60px;
background: #171717;
bottom: 0;
left: 0;
}
@media (max-width: 768px) {
.red_box {
flex: 0 0 100%;
background: red;
}
}