Bài 12: Vòng lặp while trong SASS
Vòng lặp for dùng để lặp cho những trường hợp ta biết trước tổng số vòng lặp, điều này trong vòng lặp while cũng đúng. Tuy nhiên với vòng lặp while ta có thể không cần biết trước tổng số lần lặp vẫn được miễn là có điều kiện dừng vòng lặp để tránh tình trạng lặp vô hạn.
1. Vòng lặp while trong SASS
Vòng lặp while cũng ít khi sử dụng trong SASS vì thực sự CSS cũng không cần phải lặp nhiều, chủ yếu quản lý và tối ưu selector là ok rồi.
Cú pháp vòng lặp while như sau:
Bài viết này được đăng tại [free tuts .net]
@while condition { // do something }
Trong đó condition
là một biểu thức có kết quả là TRUE
hoặc FALSE
, nếu TRUE thì bước lặp sẽ được thực hiện và ngược lại nếu FALSE thì vòng lặp sẽ dừng.
Ví dụ: Lặp từ 1 tới 10
SCSS:
$index : 1; @while $index <= 10 { .col-xs-#{$index}{ background: red; } /*Tăng bước lặp lên, nếu không sẽ bị lặp vô hạn*/ $index : ($index + 1); }
CSS sau khi biên dịch:
.col-xs-1 { background: red; } .col-xs-2 { background: red; } .col-xs-3 { background: red; } .col-xs-4 { background: red; } .col-xs-5 { background: red; } .col-xs-6 { background: red; } .col-xs-7 { background: red; } .col-xs-8 { background: red; } .col-xs-9 { background: red; } .col-xs-10 { background: red; }
2. Một ví dụ về vòng lặp while trong SASS.
Giả sử có các lớp .col-xs-xx
trong đó xx là các số từ 1 tới 10. Cần xây dựng CSS hiển thị background màu xanh cho những lớp CSS có xx chia hết cho 3 hoặc chia hết cho 5.
SCSS:
$index : 1; @while $index <= 10 { @if ($index % 3 == 0) or ($index % 5 == 0) { .col-xs-#{$index}{ background: blue; } } $index : ($index + 1); }
CSS sau khi biên dịch:
.col-xs-3 { background: blue; } .col-xs-5 { background: blue; } .col-xs-6 { background: blue; } .col-xs-9 { background: blue; } .col-xs-10 { background: blue; }
3. Lời kết
Vậy là trong bài mình đã giới thiệu cú pháp và cách sử dụng vòng lặp while trong SASS, bạn hãy xem hai ví dụ mà mình đã làm và nhớ là hãy viết theo để chạy thử nhé. Bài tiếp theo chúng ta tìm hiểu vòng lặp each.