Vòng lặp là một khái niệm không còn xa lạ gì nữa với các bạn lập trình viên. Nhưng bạn có nghĩ trong SASS cũng hỗ trợ vòng lặp for? Đương nhiên là có bởi vì SASS giống như là một ngôn ngữ lập trình CSS vậy. Và trong bài này ta cùng tìm hiểu cú pháp của vòng lặp for nhé.
1. Vòng lặp for trong SASS
Vòng lặp for dùng để lặp những đoạn CSS có chung cấu trúc nhưng chỉ khác một điểm nào đó và điểm đó phải thực có sự tương đồng (cùng bước nhảy) với nhau. Ví dụ chúng ta có đoạn HTML như sau:
<div class="content"> <div id="item-1"> </div> <div id="item-2"> </div> <div id="item-3"> </div> <div id="item-4"> </div> </div>
Bài viết này được đăng tại [kiso.vn]
Và để viết CSS cho từng ID thì hơi lâu, vì vậy ta sẽ sử dụng vòng lặp trong SASS và đương nhiên sau khi biên dịch nó sẽ tự động gán CSS vào từng id như CSS thông thường.
SCSS:
@for $i from 1 through 4 { #item-#{$i}{ background: red } }
CSS sau khi biên dịch:
#item-1 { background: red; } #item-2 { background: red; } #item-3 { background: red; } #item-4 { background: red; }
Nhìn vào ví dụ này ta có được cấu trúc vòng lặp for như sau:
@for $i from $begin_value through $end_value { // do some thing // Để lấy giá trị $i thì ta sử dụng cú pháp // #{$i} }
Và để lấy giá trị của $i
mỗi vòng lặp thì ta sử dụng cú pháp #{$i}
.
Ngoài ra bạn cũng có thể sử dụng cú pháp sau:
@for $i from $begin_value to $end_value { // do something }
Với cú pháp này vòng lặp sẽ bỏ đi bước lặp cuối cùng nên tổng só lần lặp là (n-1).
Ví dụ: Viết lại ví dụ trên với cú pháp thứ hai
SCSS:
@for $i from 1 to 4 { #item-#{$i}{ background: red } }
CSS sau khi biên dịch:
#item-1 { background: red; } #item-2 { background: red; } #item-3 { background: red; }
2. Một ví dụ về vòng lặp for trong SASS
Giả sử minh:có một Mixin như sau:
@mixin grid($i){ @if ($i == 1){ background: red; } @else if ($i == 2){ background: blue; } @else if ($i == 3){ background: yellow; } @else{ background: pink; } }
Nếu mình muốn sử dụng Mixin đó bốn lần với bốn tham số từ 1 -> 4 thì sử dụng vòng lặp như sau:
@for $i from 1 through 4 { .grid-#{$i} { @include grid($i); } }
Và đây là CSS sau khi biên dịch:
.grid-1 { background: red; } .grid-2 { background: blue; } .grid-3 { background: yellow; } .grid-4 { background: pink; }
Quá đơn giản phải không nào.
3. Lời kết
Chúng ta còn hai vòng lặp quan trọng cần phải học nữa đó là vòng lặp while và vòng lặp each nên bạn thấy tình hình ngày càng hấp dẫn phải không nào :3 Tuy nhiên bài tiếp theo chúng ta sẽ tìm hiểu một số toán tử thường dùng trong SASS đã nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Vòng lặp for trong SASS2. Một ví dụ...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Vòng lặp for trong SASS2. Một ví dụ về vòng lặp for trong SASS3. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Vòng lặp for trong SASS2. Một ví dụ về vòng lặp for trong SASS3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Vòng lặp for trong SASS2. Một ví dụ về vòng lặp for trong SASS3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Vòng lặp for trong SASS2. Một ví dụ về vòng lặp for trong SASS3. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau,...