Html CSS Flex Box:改变每行上的项目数
作为练习,我正在使用Flex Box实现以下布局:Html CSS Flex Box:改变每行上的项目数,html,css,layout,flexbox,Html,Css,Layout,Flexbox,作为练习,我正在使用Flex Box实现以下布局: ┌───────────────────────────────┐ │ header │ └───────────────────────────────┘ ┌─────┐ ┌───────────────────────┐ │ nav │ │ main │ │ │ │ │ └─────┘ └───────────
┌───────────────────────────────┐
│ header │
└───────────────────────────────┘
┌─────┐ ┌───────────────────────┐
│ nav │ │ main │
│ │ │ │
└─────┘ └───────────────────────┘
┌───────────────────────────────┐
│ footer │
└───────────────────────────────┘
我最初的想法是使用:
body {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
但我不知道剩下的该怎么办。目前我使用:
header,footer {
width: 100%;
}
nav {
flex-basis: 0;
flex-grow: 1;
}
main {
flex-basis: 0;
flex-grow: 4;
}
进行了一些额外的微调
这是可行的,但似乎是人为的
另一种解决方案是将nav和main元素封装在div中,但我试图避免这样做,因为这会降低灵活性
问题是,在某些行上有一个元素,而在其他行上有多个元素的布局最合适的方式是什么?您应该添加两件事: 1使主体显示:flex将其转换为flex容器 2使用flex速记在页眉和页脚上表示flex增长和基础。通过使基准为100vw,可以使does flex项达到视口宽度的100%
flex: 1 100vw;
希望这有助于:
身体{
显示器:flex;
弯曲方向:行;
柔性包装:包装;
背景:红色;
保证金:0;
}
页眉、页脚{
宽度:100%;
背景:蓝色;
弹性:100vw;
}
导航{
弹性基准:0;
柔性生长:1;
背景:绿色;
}
主要{
弹性基准:0;
弹性生长:4;
背景:粉红色;
}
 
 
 
 
该点位于需要定义的flex basis中,即不同于auto的初始值,以便能够包装其他元素,如果首选方法是在没有其他父元素的情况下进行包装,这是非常好的:
$按钮:类型的第一个。单击函数{
$'3'。insertAfter'。insertAfter';
};
$按钮:类型的最后一个。单击函数{
$'div:not.first'。切换类'flexBasis';
};
身体{
显示器:flex;
柔性包装:包装;
}
正文>*{文本对齐:居中}
页眉、页脚{
弹性基准:100%;
背景:f88;
}
导航{
弹性基准:20%;
背景:浅绿色;
}
主要{
弹性基准:80%;
背景:浅蓝色;
}
.首先{
弹性基准:33.33%;
背景:浅灰色;
}
div{
弹性:1;/*不够*/
背景:灰色;
}
.flexBasis{
弹性:125%;/*足够*/
}
.insertAfter~div{color:fff;background:000}
添加
切换弹性基础
标题
导航
主要的
1.
1.
1.
2.
2.
2.
2.
对不起,我已经添加了display:flex属性。我没有在代码中提到它,因为它不是问题的一部分。不过,我会把它添加到问题中。至于宽度,我计划使用不同的宽度。谢谢你的建议。我提到的宽度只适用于页眉和页脚。我的回答中有没有什么不符合你的要求。我问这个是为了能修好它