SASS (Syntactically Awesome Style Sheets) là một ngôn ngữ mở rộng của CSS, giúp bạn viết mã CSS một cách linh hoạt và dễ quản lý hơn. SASS cung cấp các tính năng như biến, mixin, lồng nhau, vòng lặp, và nhiều hơn nữa, giúp cải thiện hiệu quả và sự chuyên nghiệp khi làm việc với CSS. Bài viết này sẽ hướng dẫn bạn cách sử dụng SASS để viết CSS chuyên nghiệp từ cơ bản đến nâng cao.
1. SASS Là Gì?
SASS là một preprocessor của CSS, tức là bạn viết mã SASS và sau đó nó sẽ được biên dịch thành mã CSS thông thường. SASS có hai cú pháp chính:
SCSS (Sassy CSS): Có cú pháp gần giống với CSS nhưng thêm các tính năng mở rộng.
SASS (Indentation Syntax): Có cú pháp đơn giản hơn với ít dấu ngoặc và dấu chấm phẩy hơn.
Ví dụ về cú pháp SCSS:
$primary-color: #333;
body {
color: $primary-color;
}
Sau khi biên dịch sẽ thành CSS:
body {
color: #333;
}
2. Cài Đặt SASS
2.1. Sử Dụng Command Line
Để sử dụng SASS, bạn cần cài đặt nó qua Node.js hoặc Ruby. Cách phổ biến nhất hiện nay là sử dụng Node.js:
Cài đặt Node.js nếu bạn chưa có:
Tải về và cài đặt từ trang chủ Node.js.
Cài đặt SASS bằng npm (Node Package Manager):
npm install -g sass
Kiểm tra cài đặt:
sass --version
2.2. Sử Dụng Trình Biên Dịch Trực Quan
Nếu bạn không quen với command line, bạn có thể sử dụng các công cụ có giao diện người dùng như Prepros, CodeKit hoặc koala.
3. Các Tính Năng Chính Của SASS
3.1. Biến (Variables)
SASS cho phép bạn sử dụng biến để lưu trữ các giá trị CSS như màu sắc, font, khoảng cách, v.v.
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font-family: $font-stack;
color: $primary-color;
}
3.2. Lồng nhau (Nesting)
SASS cho phép bạn lồng các selector với nhau, giúp mã CSS trở nên rõ ràng và dễ quản lý hơn.
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
text-decoration: none;
color: $primary-color;
}
}
3.3. Mixin
Mixin cho phép bạn tái sử dụng các khối mã CSS. Bạn có thể định nghĩa một mixin một lần và sử dụng nó nhiều lần trong các phần khác nhau của trang web.
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
.box { @include border-radius(10px); }
3.4. Kế Thừa (Inheritance)
Kế thừa cho phép một selector kế thừa các thuộc tính của một selector khác.
%message-shared {
border: 1px solid #ccc;
padding: 10px;
color: #333;
}
.message {
@extend %message-shared;
}
.success {
@extend %message-shared;
border-color: green;
}
3.5. Vòng Lặp và Điều Kiện
SASS hỗ trợ vòng lặp và điều kiện, giúp bạn tạo ra các đoạn mã phức tạp mà không cần viết đi viết lại.
@for $i from 1 through 3 {
.column-#{$i} { width: 100% / $i; }
}
@each $animal in puma, sea-slug, egret, salamander {
.#{$animal}-icon {
background-image: url('/images/#{$animal}.png');
}
}
4. Tổ Chức File SASS
Một dự án lớn nên tổ chức các file SASS một cách có cấu trúc để dễ quản lý. Một số thực hành tốt nhất bao gồm:
base/: Chứa các reset hoặc các kiểu cơ bản.
components/: Chứa các thành phần nhỏ như buttons, cards.
layout/: Chứa các file liên quan đến layout như header, footer, grid system.
pages/: Chứa các kiểu đặc trưng cho từng trang.
themes/: Chứa các kiểu liên quan đến theme.
abstracts/: Chứa các mixin, function, biến.
vendors/: Chứa các file CSS của thư viện bên ngoài.
Ví dụ cấu trúc:
sass/
|
|– base/
| |– _reset.scss # Reset/normalize
| |– _typography.scss # Fonts, text styles
|
|– components/
| |– _buttons.scss # Buttons
| |– _carousel.scss # Carousel
|
|– layout/
| |– _header.scss # Header
| |– _footer.scss # Footer
|
|– pages/
| |– _home.scss # Home specific styles
| |– _about.scss # About page specific styles
|
|– abstracts/
| |– _variables.scss # Sass Variables
| |– _mixins.scss # Sass Mixins
|
|– vendors/
| |– _bootstrap.scss # Bootstrap
| |– _jquery-ui.scss # jQuery UI
5. Kết Luận
SASS là một công cụ mạnh mẽ giúp bạn viết mã CSS một cách hiệu quả và chuyên nghiệp hơn. Với các tính năng như biến, mixin, lồng nhau, và vòng lặp, bạn có thể tạo ra các stylesheet phức tạp một cách dễ dàng và có tổ chức hơn. Việc sử dụng SASS không chỉ giúp bạn tiết kiệm thời gian mà còn giúp mã CSS của bạn trở nên rõ ràng, dễ quản lý và bảo trì hơn. Hãy bắt đầu với SASS ngay hôm nay để nâng cao kỹ năng CSS của bạn!
Kết nối với web designer Lê Thành Nam