CSS取余是一種非常有用的技巧,可以在樣式設計中用來實現諸如奇偶行、逐行變換、分欄等效果。
/* 偶數行 */ tr:nth-child(even) { background-color: #f2f2f2; } /* 奇數行 */ tr:nth-child(odd) { background-color: #ffffff; } /* 逐行變換 */ li:nth-child(2n+1) { color: red; } li:nth-child(2n) { color: blue; } /* 分欄 */ .col-3 { width: calc(33.33%); } .col-3:nth-child(3n+1) { margin-right: 0; } .col-3:nth-child(n+4) { margin-top: 20px; }
以上代碼中,我們使用了偽類選擇器nth-child來實現取余操作。在nth-child中,可以使用an+b的形式來表示一個等差數列。其中a表示等差,b表示首項。而對于我們取余的需求,a要設置成所要取余的數的倒數,b則可以為任意值,代表從第幾項開始計算。
在奇偶行的實現中,我們用偶數行的選擇器對應到2n,而奇數行則對應到2n+1。
而在逐行變換的實現中,我們用到了nth-child的一個小技巧,即可以省略a,只保留b,來表示間隔為b的等差數列。因此,2n+1就可以變成2n,實現逐行變換的效果。
最后在分欄的實現中,我們用到了calc函數和nth-child的組合。calc函數用來計算欄目寬度的百分比,而nth-child則用來實現每行多少個欄目以及每個欄目之間的間隔。其中,最后一列要特別注意,需要去掉右邊距。
總之,CSS取余雖然看起來簡單,但卻能提高我們的樣式設計能力,讓網頁更加美觀與可讀。