Khối nội dung trong mixin trong SASS

Để truyền một khối kiểu bên trong mixin, chúng ta sử dụng chỉ thị @content, chính vị trí này sẽ chứa các kiểu chúng ta cần.

Hãy xem xét một ví dụ:

styles.scss@mixin active {
  * div {
    @content;
  }
}

@include active {
  #block {
    color: red;
  }
}

Kết quả biên dịch:

styles.css* div #block {
  color: red; 
}

Cần biết rằng nếu chúng ta chỉ định chỉ thị @content nhiều hơn một lần hoặc bên trong một vòng lặp, thì khối kiểu cũng sẽ được gọi bấy nhiêu lần.

styles.scss@mixin active {
  div {
    @content;
  }
navbar {
    @content;
  }
}
@include active {
  #block {
    color: red;
  }
  button {
    color:green;
  }
}

Sau khi biên dịch, chúng ta sẽ thấy:

styles.cssdiv #block {
  color: red; 
}
div button {
  color: green; 
}

navbar #block {
  color: red; 
}
navbar button {
  color: green; 
}
Задание 1

Hãy cho biết kết quả biên dịch của đoạn mã sau sẽ như thế nào:

styles.scss@mixin super-link {
  a {
    @content;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 2

Hãy cho biết kết quả biên dịch của đoạn mã sau sẽ như thế nào:

styles.scss@mixin super-link {
  a {
    @content;
  }
  a .primary-link{
    @content;
    font-weight: bold;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 3

Giả sử bạn có mixin sau:

styles.scss@mixin colors {
  ...
}

Sử dụng chỉ thị @content, hãy đặt cho tất cả các liên kết thuộc về #primary màu chữ xanh lam và gạch chân kiểu sóng.