@Apply trong CSS là gì?


85

Trước hết, tôi đang đề cập đến thẻ CSS.

Tôi đã googled @apply tìm kiếm trên nhưng không thể tìm thấy bất kỳ điều gì có thể giải thích ý nghĩa của nó một cách chính xác cho tôi.

Việc sử dụng thẻ như vậy là gì?


3
tabatkins.github.io/specs/css-apply-rule Có thể có một số bài đọc hữu ích
CollinD

1
Bạn đã bắt gặp nó ở đâu?
j08691

2
Tôi đã xem qua nó trên liên kết này: github.com/y0ssar1an/CSS3
GameCoder

44
Tại sao rất nhiều người phản đối điều này? Đó là một câu hỏi hoàn toàn hợp lệ và liên quan đến một tính năng nâng cao của CSS mà nhiều người rõ ràng không biết gì về nó. Tailwind sử dụng rất nhiều @applychỉ thị. Đừng vội gạt bỏ câu hỏi của mọi người. Quá nhiều thứ đang diễn ra ở đây. Hơn nữa, tôi nhận thấy rằng OP không còn là thành viên của stackoverflow, anh ấy đã rời đi vì điều này? Thật đáng thương.
stephenmurdoch

Câu trả lời:


29

cách giải thích đơn giản sẽ là; đưa các biến vào css (là một tính năng của bộ tiền xử lý như sass) và mixin có chức năng giống như các hành vi (cũng trong bộ tiền xử lý).

hãy tưởng tượng đó --header-themelà một hàm (mixin)

:root {
  --header-theme: {
    color: red;
    font-family: cursive;
    font-weight: 600;
  };
}

h1 {
  @apply --header-theme;
}


h2 {
  @apply --header-theme;
}

bằng cách này bạn có thể sử dụng nó ở nhiều nơi khác nhau mà không cần phải viết lại nó KHÔ

bây giờ phần biến có thể giải thích với ví dụ này

:root {
  --brand-color: red;/*   default value*/
  --header-theme: {
    color: var(--brand-color);
    font-family: cursive;
    font-weight: 600;
  };
}

h1 {
  @apply --header-theme;
}


h2 {
  --brand-color: green; 
  @apply --header-theme;
}

mixin sẽ có một biến được gửi đến nó và thay đổi màu sắc

đây không phải là giới hạn của tính năng, bạn có thể sử dụng nó cho nhiều hơn nữa, bạn có thể đọc thêm về mixin và các biến trong SASS để biết các cách sử dụng khác, sau khi tôi đề xuất bạn đọc bài đăng trên blog này

Bây giờ sau khi tôi đã làm cho bạn phấn khích, thời gian cho tin xấu, nó chưa được triển khai trong trình duyệt chrome , vẫn đáng để biết rằng nó sẽ đến và có thể nếu bạn muốn chuẩn bị cho mình, hãy bắt đầu với SASS


hàm var có phục vụ cùng mục đích trong SASS như trong javascript không? Xin lỗi, tôi không biết bất kỳ SASS nào.
GameCoder

biến bằng cách nào đó là cùng một điều khiển tất cả từ một vị trí thay vì viết lại, chức năng hơi khác một chút, nhưng nó phục vụ cùng một ý tưởng chung, điều tôi đang cố gắng nói; hiện tại bạn sẽ không thể sử dụng nó; vì vậy nếu bạn cảm thấy tò mò về tính năng sass sass (ruby) trở xuống (node.js), đó là nơi họ
nảy

2
Bài đăng trên blog của tác giả đặc tả có tiêu đề "Tại sao tôi từ bỏ @apply" cho thấy rằng tính năng này sẽ KHÔNG được đưa vào các trình duyệt trong tương lai. Thông số khi tôi tìm thấy - tabatkins.github.io/specs/css-apply-rule/#intro Rút lại tại - xanthir.com/b4o00

21

@applylà từ một đề xuất đã bị bỏ qua và được thay thế bằng CSS Shadow Parts .

quy tắc @apply, cho phép tác giả lưu trữ một tập hợp các thuộc tính trong một biến được đặt tên, sau đó tham chiếu chúng trong các quy tắc kiểu khác.


7

@applykhá tuyệt. Về cơ bản, nó cho phép bạn sử dụng lại các khối CSS mà không cần phải sao chép chúng xung quanh và không cần phải sửa đổi bộ chọn của chúng.

Nó sẽ giúp sử dụng các khung CSS dễ dàng hơn và đồng thời giữ các tên lớp ngữ nghĩa.

Tôi thấy bài viết này là một sự giới thiệu tốt cho tính năng này.

Thật không may, hiện tại, hỗ trợ trình duyệt về cơ bản là không tồn tại . Nó có thể được sử dụng với bộ xử lý trước CSS như PostCSS .

Tương lai cũng không chắc chắn, nếu tôi hiểu rõ. Người ủng hộ chính đằng sau tính năng này đã ngừng hỗ trợ nó .


ikr! Tôi thích cách tôi có thể sử dụng các lớp này từ Tailwind CSS trong @apply. Điều đó giới thiệu cách làm việc đặc biệt mới với biểu định kiểu để lại cho bạn các khối hình có thể tái sử dụng, cũng dễ dàng được phân loại - bạn thực sự có thể sắp xếp chúng (bạn có thể sử dụng tài liệu tham khảo cho điều này như tôi từ tài liệu CSS ToC của Tailwind) chứ không còn thuộc tính để quét biểu định kiểu nữa hiệu quả! Có rất nhiều khả năng như viết pincú thuận tay đơn giản thay vì tất cả top/bottom/left/right: 0.
vintproykt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.