div 中宽度的响应项目
responsive items in terms of width in a div
如何使容器内的项目响应?容器最多可以有 3 个项目,项目的数量是预先不知道的。通过响应,我的意思是项目宽度在调整大小时随容器 div 改变,我想项目宽度可能是一个百分比值。此外,项目宽度有一个最大宽度。仅通过 css 就可以实现吗?
<div class="container">
<div *ngFor="let item of items, let i=index" class="item">
{{item}}
</div>
</div>
.container {
display: flex;
}
.item {
//width: 33.3%; I was thinking something like this, but when there is only
// one item, the item width will become very small
max-width: 180px;
}
你的CSS应该是
.container {
display: flex;
flex-direction: column;
}
@media (min-width: 768px) {
.container {
flex-direction: row;
}
}
并且在您的模板中,您应该将样式设置为
<div class="container">
<div *ngFor="let item of items, let i=index" class="item" style="flex-basis: {{100 / items.length}}%">
{{item}}
</div>
</div>
但这还不能调整大小。如果你想做到这一点,你需要 javascript。
使用flexbox很简单
div{
display:flex;
}
span{
flex:1;
height:50px;
border:1px solid green;
}
@media screen and (max-width: 767px){
div{
flex-direction:column
}
}
<div>
<span></span>
</div>
<div>
<span></span>
<span></span>
</div>
<div>
<span></span>
<span></span>
<span></span>
</div>
如何使容器内的项目响应?容器最多可以有 3 个项目,项目的数量是预先不知道的。通过响应,我的意思是项目宽度在调整大小时随容器 div 改变,我想项目宽度可能是一个百分比值。此外,项目宽度有一个最大宽度。仅通过 css 就可以实现吗?
<div class="container">
<div *ngFor="let item of items, let i=index" class="item">
{{item}}
</div>
</div>
.container {
display: flex;
}
.item {
//width: 33.3%; I was thinking something like this, but when there is only
// one item, the item width will become very small
max-width: 180px;
}
你的CSS应该是
.container {
display: flex;
flex-direction: column;
}
@media (min-width: 768px) {
.container {
flex-direction: row;
}
}
并且在您的模板中,您应该将样式设置为
<div class="container">
<div *ngFor="let item of items, let i=index" class="item" style="flex-basis: {{100 / items.length}}%">
{{item}}
</div>
</div>
但这还不能调整大小。如果你想做到这一点,你需要 javascript。
使用flexbox很简单
div{
display:flex;
}
span{
flex:1;
height:50px;
border:1px solid green;
}
@media screen and (max-width: 767px){
div{
flex-direction:column
}
}
<div>
<span></span>
</div>
<div>
<span></span>
<span></span>
</div>
<div>
<span></span>
<span></span>
<span></span>
</div>