Trong bài này chúng ta tìm hiểu một phần mới tương tự như @Mixin
đó là @function
.
1. Function là gì?
Function không còn xa lại gì trong các ngôn ngữ lập trình nhưng với SASS thì nó là một khái niệm khá mới lạ và đương nhiên cũng rất là hữu ích trong việc xây dựng CSS . Về chức năng của function cũng tương tự như @mixin, tuy nhiên nếu phân tích kỹ thì @mixin
giống như procedure (hàm không có return) còn function là hàm có return.
Trước tiên xem cú pháp tạo function trong SASS như sau:
@function function_name($var1, $var2, ...){ @return value; }
Để sử dụng function thì ta chỉ việc gọi tới tên của function đó và truyền tham số vào (nếu có).
Bài viết này được đăng tại [kiso.vn]
function_name($val1, $val2, ...)
Có một lưu ý trong function là bắt buộc bạn phải sử dụng lệnh @return
để trả kết quả về. Còn trường hợp bạn không muốn return một giá trị về thì nên sử dụng Place Holder hoặc Mixin.
Ví dụ: Hàm trả về số chiều rộng cộng thêm 20px
@function width_wrapper($value) { @return ($value + 20px); } .wrapper{ width: width_wrapper(80px); }
Đoạn code này lúc biên dịch sang CSS thì sẽ như sau:
.wrapper { width: 100px; }
Tương tự như Mixin bạn cũng có thể gán giá trị mặc định cho function.
@function width_wrapper($value : 20) { @return ($value + 20px); }
Quá đơn giản với bạn rồi nên mình không giải thích gì thêm.
2. Lựa chọn function, mixin hay place holder?
Việc lựa chọn Funtion, Mixin hay Place Hoder sẽ phụ thuộc vào mục đích của bạn. Nhưng trước tiên mình cần nắm vững khái niệm của chúng.
Function dùng để xử lý một nhiệm vụ và nó sẽ trả về một kết quả duy nhất nên việc trả về một đoạn CSS dài ngoằn là điều không thể, vì vậy thông thường ta dùng function trong những trường hợp xủ lý một nhiệm vụ nào đó và mục đích cuối cùng là lấy một kết quả.
Mixin như ta đã học thì nó giống như một procedure dùng để gom nhóm một đoạn code CSS lại.
Place Holder có chức năng giống Mixin, tuy nhiên có sự khác biệt là bạn không thể khai báo tham số trong Place Holder.
Dựa vào những yếu tố trên bạn sẽ quyết định nên sử dụng phần nào vào project của bạn.
3. Lời kết
Đây là bài thứ 14 và cũng sắp hết kiến thức về SASS rồi nên mình hy vọng qua tới bài này bạn đã học được nhiều điều và yêu thích SASS hơn, bài tiếp theo chúng ta sẽ tìm hiểu đến một số hàm có sẵn trong SASS.
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. Function là gì?2. Lựa chọn function, mixin hay place...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Function là gì?2. Lựa chọn function, mixin hay place holder?3. 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 như một firewall được phát...
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. Function là gì?2. Lựa chọn function, mixin hay place holder?3. 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 trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Function là gì?2. Lựa chọn function, mixin hay place holder?3. 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 sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Function là gì?2. Lựa chọn function, mixin hay place holder?3. 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, điểm xuất hiện các lỗ...