Chuỗi trong SASS

Bài viết này giải thích về chuỗi trong SASS.

Chúng tôi sẽ giải thích từng bước từ các thao tác chuỗi cơ bản đến các cách sử dụng nâng cao của chuỗi trong SASS.

YouTube Video

Chuỗi trong SASS

SASS là một trình tiền xử lý để mở rộng CSS, và chuỗi là thành phần thiết yếu giúp việc định nghĩa kiểu dáng trở nên linh hoạt và linh động hơn.

Cơ bản về Chuỗi

Chuỗi trong SASS có thể được bao quanh bởi dấu nháy đơn hoặc nháy kép, và trong một số trường hợp, có thể bỏ qua dấu nháy để viết giống như các định danh. Dưới đây là các ví dụ cơ bản về cách viết chúng.

1// Single quotes
2$single-quoted: 'Hello, World!';
3// Double quotes
4$double-quoted: "Hello, World!";
5// No quotes
6$unquoted: Hello-World;

Ghi chú

  • Chuỗi có dấu nháy được đánh giá trực tiếp như các giá trị ký tự.
  • Chuỗi không có dấu nháy thường được xử lý như các định danh CSS như tên lớp hoặc ID, vì vậy cần cẩn thận sử dụng chúng phù hợp.

Nối chuỗi

Trong SASS, bạn có thể nối chuỗi bằng cách sử dụng toán tử +.

1$greeting: "Hello";
2$name: "Alice";
3
4$result: $greeting + ", " + $name + "!"; // "Hello, Alice!"
  • Mã này là ví dụ về việc sử dụng toán tử + trong SASS để nối nhiều chuỗi và tạo thành một chuỗi mới.

Ví dụ nâng cao: Tạo tên lớp

1$base-class: "btn";
2$modifier: "primary";
3
4.class-name {
5    content: $base-class + "--" + $modifier; // "btn--primary"
6}
  • Mã này là ví dụ về cách sử dụng toán tử + trong SASS để kết hợp tên lớp cơ bản và bộ chỉnh sửa, tạo ra một tên lớp mới.

Sử dụng Các hàm xử lý chuỗi

SASS cung cấp các hàm tích hợp tiện lợi cho nhiều thao tác chuỗi khác nhau như kiểm soát dấu ngoặc kép và trích xuất chuỗi con.

quote()unquote()

Với các hàm quote()unquote(), bạn có thể thêm hoặc bỏ dấu nháy khỏi chuỗi.

1$quoted: quote(Hello);    // '"Hello"'
2$unquoted: unquote("Hello"); // Hello

str-length($string)

Hàm str-length() trả về độ dài của chuỗi.

1$length: str-length("Hello"); // 5

str-insert($string, $insert, $index)

Hàm str-insert() chèn một chuỗi vào vị trí chỉ định.

1$result: str-insert("Hello", " SASS", 6); // "Hello SASS"

str-slice($string, $start-at, [$end-at])

Hàm str-slice() trích xuất một phần của chuỗi.

1$substring: str-slice("Hello, World!", 1, 5); // "Hello"

to-upper-case()to-lower-case()

Hai hàm to-upper-case()to-lower-case() chuyển đổi chuỗi sang dạng viết hoa hoặc viết thường, tương ứng.

1$upper: to-upper-case("sass"); // "SASS"
2$lower: to-lower-case("SASS"); // "sass"

Chuỗi trong logic điều kiện

Bằng cách sử dụng chỉ thị @if của SASS, bạn có thể phân nhánh có điều kiện dựa trên giá trị chuỗi và linh hoạt chuyển đổi kiểu dáng theo chủ đề và cài đặt.

 1$theme: "dark";
 2
 3@if $theme == "dark" {
 4  body {
 5    background-color: black;
 6    color: white;
 7  }
 8} @else {
 9  body {
10    background-color: white;
11    color: black;
12  }
13}
  • Mã này là ví dụ về việc sử dụng chỉ thị @if trong SASS để kiểm tra xem chủ đề có phải là dark hay không và chuyển đổi kiểu dáng phù hợp.

Ví dụ thực tế: Tạo đường dẫn hình nền động

Dưới đây là ví dụ về việc sử dụng các thao tác chuỗi để tạo URL hình nền.

1$image-path: "/images/";
2$image-name: "background";
3$image-extension: ".jpg";
4
5.background {
6    background-image: url($image-path + $image-name + $image-extension);
7}

Kết quả đã biên dịch

1.background {
2    background-image: url("/images/background.jpg");
3}
  • Mã này là ví dụ về việc nối chuỗi trong SASS để tạo đường dẫn hình nền động và áp dụng nó làm nền.

Kết hợp với danh sách và bản đồ

Bằng cách kết hợp danh sách và bản đồ trong SASS với các thao tác chuỗi, bạn có thể tạo kiểu dáng linh hoạt hơn.

Ví dụ danh sách

1$states: "hover", "focus", "active";
2
3@each $state in $states {
4    .btn-#{$state} {
5        content: "Button in " + $state + " state";
6    }
7}

Kết quả đã biên dịch

1.btn-hover {
2    content: "Button in hover state";
3}
4.btn-focus {
5    content: "Button in focus state";
6}
7.btn-active {
8    content: "Button in active state";
9}
  • Mã này là ví dụ về việc sử dụng chỉ thị @each trong SASS để tạo các lớp cho từng trạng thái trong danh sách, thiết lập nội dung động bằng cách nối chuỗi.

Ví dụ bản đồ

 1$colors: (
 2    "primary": "#3498db",
 3    "secondary": "#2ecc71"
 4);
 5
 6@each $name, $color in $colors {
 7    .text-#{$name} {
 8        color: $color;
 9    }
10}

Kết quả đã biên dịch

1.text-primary {
2    color: #3498db;
3}
4.text-secondary {
5    color: #2ecc71;
6}
  • Mã này là ví dụ về việc sử dụng bản đồ trong SASS để liên kết tên màu với giá trị và tạo từng lớp một cách động với chỉ thị @each.

Ký tự thoát trong chuỗi

Để sử dụng an toàn một số chuỗi như các định danh CSS, có thể cần phải thoát ký tự.

1$special_character: "example\\@123";
2.#{$special_character} {
3  content: "This is a valid CSS class.";
4}

Kết quả đã biên dịch

1.example\@123 {
2    content: "This is a valid CSS class.";
3}
  • Đoạn mã này là một ví dụ về việc xử lý một chuỗi chứa ký tự đặc biệt như một biến trong SASS, mở rộng nó với #{$variable}, và sử dụng nó làm tên lớp hợp lệ trong CSS.

Kết luận

Các thao tác chuỗi trong SASS không chỉ là viết các giá trị chuỗi đơn thuần — chúng là các công cụ mạnh mẽ để xây dựng kiểu dáng một cách động. Bằng cách sử dụng các thao tác và hàm cơ bản đã giới thiệu, bạn có thể nâng cao khả năng tái sử dụng và bảo trì CSS cùng kiểu dáng thiết kế của mình một cách hiệu quả hơn.

Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.

YouTube Video