前提條件:content="width=750"
css
<meta name="viewport" content="width=750,user-scalable=no,target-densitydpi=device-dpi,viewport-fit=cover">
複製代碼
效果圖以下:html
高寬:bash
間距:佈局
圓角10:spa
概括法scala
你們在中學的時候都學過數學的概括法,就是一個命題先求出n=1的時候成立,而後假設n=k成立,證實n=k+1也成立,從而證得命題在n=k【k=任意實數】的時候都成立。3d
代碼code
<div class="grid-img-box">
<van-image class='grid-img' v-for="value in data.photo" :key="value" fit="cover" :src="value" />
</div>
複製代碼
.grid-img{
/**
寬高
1. 3n+1且是倒數第2張時
2. 3n+1且是最後一張時
以上兩種狀況圖片的寬高均應爲320;
剩餘兩種狀況是:
3. 只有一張時寬高320;
4. 其他的狀況和索引寬高都爲220;
*/
display: inline-block;
width: 220px;
height: 220px;
&:only-child{
width: 320px;
height: 320px;
}
&:nth-child(3n+1):nth-last-child(2),
&:nth-child(3n+2):last-child{
width: 332px;
height: 332px;
}
/**
間距/佈局
*/
&:nth-child(3n+2){
margin: 0 6px;
}
&:nth-child(n+4){
margin-top: 6px;
}
&:first-child{
border-top-left-radius: 10px;
}
&:last-child{
margin-right: 0;
border-bottom-right-radius: 10px;
}
/**
圓角
*/
//左下圓角:最後一行第一個
&:nth-child(3n+1){
&:last-child,
&:nth-last-child(2),
&:nth-last-child(3){
border-bottom-left-radius: 10px;
}
}
//處理四個佈局
//增大第二個margin講第三個擠到下一行
&:nth-child(2):nth-last-child(3){
margin-right: 220px;
}
//重置第二個圓角
&:nth-child(2):nth-last-child(3){
border-top-right-radius: 10px;
}
//重置第三個的margin和radius
&:nth-child(3):nth-last-child(2){
margin-top: 6px;
margin-right: 6px;
border-radius: 0 0 0 10px;
}
//重置第4個的圓角
&:nth-child(4):last-child{
border-radius: 0 0 10px 0;
}
}
複製代碼