Nhập tệp CSS vào biến

Astro được thiết kế để làm cho việc tạo kiểu và viết CSS trở nên dễ dàng. Viết CSS của riêng bạn trực tiếp bên trong thành phần Astro hoặc nhập thư viện CSS yêu thích của bạn như Tailwind. Các ngôn ngữ tạo kiểu nâng cao như Sass và Ít hơn cũng được hỗ trợ

Tạo kiểu trong Astro

Phần có tiêu đề Tạo kiểu trong Astro

Tạo kiểu cho thành phần Astro dễ dàng như thêm thẻ

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 vào thành phần hoặc mẫu trang của bạn. Khi bạn đặt thẻ
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 bên trong thành phần Astro, Astro sẽ tự động phát hiện CSS và xử lý các kiểu của bạn cho bạn

src/thành phần/MyComponent. astro
<style>
  h1 { color: red; }
style>

Kiểu có phạm vi

Phần có tiêu đề Kiểu phạm vi

Các quy tắc CSS của Astro

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 được tự động xác định phạm vi theo mặc định. Các kiểu có phạm vi được biên dịch sau hậu trường để chỉ áp dụng cho HTML được viết bên trong cùng một thành phần đó. CSS mà bạn viết bên trong thành phần Astro sẽ tự động được đóng gói bên trong thành phần đó

<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>

Các kiểu có phạm vi không bị rò rỉ và sẽ không ảnh hưởng đến phần còn lại của trang web của bạn. Trong Astro, bạn có thể sử dụng các bộ chọn có độ đặc hiệu thấp như

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
5 hoặc
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
6 vì chúng sẽ được biên dịch với các phạm vi trong đầu ra cuối cùng

Các kiểu có phạm vi cũng sẽ không áp dụng cho các thành phần Astro khác có trong mẫu của bạn. Nếu bạn cần tạo kiểu cho một thành phần con, hãy xem xét gói thành phần đó trong một

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
7 (hoặc thành phần khác) để sau đó bạn có thể tạo kiểu

Tính đặc hiệu của các kiểu có phạm vi được giữ nguyên, cho phép chúng hoạt động ổn định cùng với các tệp CSS hoặc thư viện CSS khác trong khi vẫn duy trì các ranh giới độc quyền ngăn các kiểu áp dụng bên ngoài thành phần

phong cách toàn cầu

Phần có tiêu đề Phong cách toàn cầu

Mặc dù chúng tôi đề xuất các kiểu có phạm vi cho hầu hết các thành phần, nhưng cuối cùng bạn có thể tìm thấy lý do hợp lệ để viết CSS toàn cầu, không có phạm vi. Bạn có thể từ chối phạm vi CSS tự động bằng thuộc tính

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
8

src/components/GlobalStyles. astro
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

Bạn cũng có thể kết hợp các quy tắc CSS toàn cầu và phạm vi với nhau trong cùng một thẻ

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 bằng cách sử dụng bộ chọn
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
10. Điều này trở thành một mẫu mạnh mẽ để áp dụng các kiểu CSS cho phần tử con của thành phần của bạn

src/components/MixedStyles. astro
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>

Đây là một cách tuyệt vời để tạo kiểu cho những thứ như bài đăng trên blog hoặc tài liệu có nội dung do CMS cung cấp trong đó nội dung nằm ngoài Astro. Nhưng hãy cẩn thận. các thành phần có giao diện khác nhau tùy thuộc vào việc chúng có thành phần cha nhất định hay không có thể trở nên khó khắc phục sự cố

Các kiểu có phạm vi nên được sử dụng thường xuyên nhất có thể. Phong cách toàn cầu chỉ nên được sử dụng khi cần thiết

Kết hợp các lớp với

Title

11Phần có tiêu đề Kết hợp các lớp với lớp. danh sách

Nếu bạn cần kết hợp động các lớp trên một phần tử, bạn có thể sử dụng thuộc tính tiện ích

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
11 trong tệp
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
13

src/components/ClassList. astro
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
1

📚 Xem trang tham khảo chỉ thị của chúng tôi để tìm hiểu thêm về

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
11

Biến CSS

Phần có tiêu đề Biến CSS

Đã thêm vào. v0. 21. 0

Astro

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 có thể tham chiếu bất kỳ biến CSS nào có sẵn trên trang. Bạn cũng có thể chuyển trực tiếp các biến CSS từ vấn đề phía trước thành phần của mình bằng cách sử dụng chỉ thị
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
16

src/components/DefineVars. astro
<style>
  h1 { color: red; }
style>
0

📚 Xem trang tham khảo chỉ thị của chúng tôi để tìm hiểu thêm về

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
16

Truyền một

Title

18 cho một thành phần conPhần có tiêu đề Truyền một lớp cho một thành phần con

Trong Astro, các thuộc tính HTML như

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
18 không tự động chuyển qua các thành phần con

Thay vào đó, hãy chấp nhận một giá trị

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
18 trong thành phần con và áp dụng nó cho thành phần gốc. Khi phá hủy, bạn phải đổi tên nó, vì
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
18 là một từ dành riêng trong JavaScript

src/thành phần/MyComponent. astro
<style>
  h1 { color: red; }
style>
6 src/trang/chỉ mục. astro
<style>
  h1 { color: red; }
style>
7

Mẫu này cho phép bạn tạo kiểu trực tiếp cho các thành phần con. Astro sẽ chuyển tên lớp có phạm vi của cha mẹ (e. g.

<style>
  h1 { color: red; }
style>
02) thông qua chỗ dựa
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
18 một cách tự động, bao gồm đứa trẻ trong phạm vi của cha mẹ nó

Các lớp có phạm vi từ các thành phần cha mẹ

Bởi vì prop

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
18 bao gồm phần tử con trong phạm vi của phần tử gốc, nên các kiểu có thể xếp tầng từ phần tử gốc sang phần tử con. Để tránh điều này có tác dụng phụ ngoài ý muốn, hãy đảm bảo bạn sử dụng các tên lớp duy nhất trong thành phần con

Phong cách bên ngoài

Phần có tiêu đề Phong cách bên ngoài

Có hai cách để giải quyết các biểu định kiểu chung bên ngoài. nhập ESM cho các tệp nằm trong nguồn dự án của bạn và liên kết URL tuyệt đối cho các tệp trong thư mục

<style>
  h1 { color: red; }
style>
05 của bạn hoặc được lưu trữ bên ngoài dự án của bạn

📚 Đọc thêm về cách sử dụng nội dung tĩnh tại

<style>
  h1 { color: red; }
style>
05 hoặc
<style>
  h1 { color: red; }
style>
07

Nhập biểu định kiểu cục bộ

Phần có tiêu đề Nhập biểu định kiểu cục bộ

Sử dụng gói npm?

Bạn có thể cần cập nhật

<style>
  h1 { color: red; }
style>
08 của mình khi nhập từ các gói npm. Xem phần “nhập biểu định kiểu từ gói npm” bên dưới

Bạn có thể nhập biểu định kiểu trong giao diện thành phần Astro của mình bằng cách sử dụng cú pháp nhập ESM. Quá trình nhập CSS hoạt động giống như bất kỳ hoạt động nhập ESM nào khác trong thành phần Astro. Quá trình nhập này phải được tham chiếu tương ứng với thành phần đó và phải được viết ở đầu tập lệnh thành phần của bạn, cùng với bất kỳ hoạt động nhập nào khác

src/trang/chỉ mục. astro
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
5

CSS

<style>
  h1 { color: red; }
style>
09 qua ESM được hỗ trợ bên trong bất kỳ tệp JavaScript nào, bao gồm các thành phần JSX như React & Preact. Điều này có thể hữu ích để viết các kiểu chi tiết, theo từng thành phần cho các thành phần React của bạn

Nhập biểu định kiểu từ gói npm

Phần có tiêu đề Nhập biểu định kiểu từ gói npm

Bạn cũng có thể cần tải các biểu định kiểu từ gói npm bên ngoài. Điều này đặc biệt phổ biến đối với các tiện ích như Đạo cụ mở. Nếu gói của bạn khuyến nghị sử dụng phần mở rộng tệp (i. e.

<style>
  h1 { color: red; }
style>
60 thay vì
<style>
  h1 { color: red; }
style>
61), điều này sẽ hoạt động giống như bất kỳ biểu định kiểu cục bộ nào

src/pages/trang ngẫu nhiên. astro
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
9

Nếu gói của bạn không đề xuất sử dụng phần mở rộng tệp (i. e.

<style>
  h1 { color: red; }
style>
61), trước tiên bạn cần cập nhật cấu hình Astro của mình

Giả sử bạn đang nhập tệp CSS từ

<style>
  h1 { color: red; }
style>
63 có tên là
<style>
  h1 { color: red; }
style>
64 (đã bỏ qua phần mở rộng tệp). Để đảm bảo chúng tôi có thể hiển thị trước trang của bạn một cách chính xác, hãy thêm
<style>
  h1 { color: red; }
style>
63 vào mảng
<style>
  h1 { color: red; }
style>
66

astro. cấu hình. mjs
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
0

Ghi chú

Đây là cài đặt dành riêng cho Vite không liên quan đến (hoặc yêu cầu) Astro SSR

Bây giờ, bạn có thể tự do nhập khẩu

<style>
  h1 { color: red; }
style>
67. Điều này sẽ được đóng gói và tối ưu hóa bởi Astro giống như bất kỳ biểu định kiểu cục bộ nào khác

src/pages/trang ngẫu nhiên. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
1

Tải biểu định kiểu tĩnh qua thẻ "liên kết"

Phần có tiêu đề Tải biểu định kiểu tĩnh qua thẻ “liên kết”

Bạn cũng có thể sử dụng phần tử

<style>
  h1 { color: red; }
style>
68 để tải biểu định kiểu trên trang. Đây phải là đường dẫn URL tuyệt đối tới tệp CSS nằm trong thư mục
<style>
  h1 { color: red; }
style>
69 của bạn hoặc URL tới trang web bên ngoài. Giá trị
<style>
  h1 { color: red; }
style>
68 href tương đối không được hỗ trợ

src/trang/chỉ mục. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
2

Vì cách tiếp cận này sử dụng thư mục

<style>
  h1 { color: red; }
style>
05 nên nó bỏ qua quá trình xử lý, gói và tối ưu hóa CSS thông thường do Astro cung cấp. Nếu bạn cần những chuyển đổi này, hãy sử dụng phương pháp Nhập biểu định kiểu ở trên

thứ tự xếp tầng

Phần có tiêu đề Cascading Order

Các thành phần của Astro đôi khi sẽ phải đánh giá nhiều nguồn CSS. Ví dụ: thành phần của bạn có thể nhập biểu định kiểu CSS, bao gồm thẻ

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 của riêng nó và được hiển thị bên trong bố cục nhập CSS

Khi các quy tắc CSS xung đột áp dụng cho cùng một phần tử, trước tiên trình duyệt sẽ sử dụng tính đặc hiệu và sau đó là thứ tự xuất hiện để xác định giá trị nào sẽ hiển thị

Nếu một quy tắc cụ thể hơn quy tắc khác, thì bất kể quy tắc CSS xuất hiện ở đâu, giá trị của nó sẽ được ưu tiên

MyComponent. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
3

Nếu hai quy tắc có cùng độ đặc hiệu, thì thứ tự xuất hiện sẽ được đánh giá và giá trị của quy tắc cuối cùng sẽ được ưu tiên

MyComponent. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
4

Các quy tắc CSS của Astro được đánh giá theo thứ tự xuất hiện này

  • <style>
      h1 { color: red; }
    style>
    68 thẻ trong phần đầu (ưu tiên thấp nhất)
  • phong cách nhập khẩu
  • phong cách phạm vi (ưu tiên cao nhất)

Kiểu có phạm vi

Phần có tiêu đề Kiểu phạm vi

Việc sử dụng các kiểu có phạm vi không làm tăng tính đặc hiệu của CSS của bạn, nhưng chúng sẽ luôn xuất hiện cuối cùng theo thứ tự xuất hiện. Do đó, chúng sẽ được ưu tiên hơn các kiểu khác có cùng tính đặc hiệu. Ví dụ: nếu bạn nhập biểu định kiểu xung đột với kiểu có phạm vi, thì giá trị của kiểu có phạm vi sẽ được áp dụng

làm cho nó có màu tím. css
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
5 MyComponent. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
6

Nếu bạn làm cho kiểu đã nhập cụ thể hơn, thì kiểu đó sẽ có mức độ ưu tiên cao hơn so với kiểu có phạm vi

làm cho nó có màu tím. css
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
7 MyComponent. astro
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
8

Đơn đặt hàng nhập khẩu

Phần có tiêu đề Lệnh nhập khẩu

Khi nhập nhiều biểu định kiểu trong một thành phần Astro, các quy tắc CSS được đánh giá theo thứ tự chúng được nhập. Độ đặc hiệu cao hơn sẽ luôn xác định kiểu nào sẽ hiển thị, bất kể khi nào CSS được đánh giá. Tuy nhiên, khi các kiểu xung đột có cùng đặc điểm, kiểu được nhập cuối cùng sẽ thắng

làm cho nó có màu tím. css
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
7 làm xanh. css
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

0 MyComponent. astro
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

1

Mặc dù các thẻ

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
2 nằm trong phạm vi và chỉ áp dụng cho thành phần khai báo chúng, nhưng CSS đã nhập có thể “rò rỉ”. Việc nhập một thành phần sẽ áp dụng bất kỳ CSS nào mà thành phần đó nhập, ngay cả khi thành phần đó chưa bao giờ được sử dụng

PurpleComponent. astro
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

2 MyComponent. astro
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

3

Mẹo

Một mẫu phổ biến trong Astro là nhập CSS toàn cầu bên trong thành phần Bố cục. Đảm bảo nhập thành phần Bố cục trước các lần nhập khác để nó có mức độ ưu tiên thấp nhất

Thẻ liên kết

Phần có tiêu đề Thẻ liên kết

Các biểu định kiểu được tải qua thẻ liên kết được đánh giá theo thứ tự, trước bất kỳ kiểu nào khác trong tệp Astro. Do đó, các kiểu này sẽ có mức độ ưu tiên thấp hơn so với biểu định kiểu đã nhập và kiểu có phạm vi

chỉ mục. astro
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

4

Tích hợp CSS

Phần có tiêu đề Tích hợp CSS

Astro hỗ trợ thêm các thư viện, công cụ và khung CSS phổ biến vào dự án của bạn như Tailwind, v.v.

📚 Xem Hướng dẫn tích hợp để biết hướng dẫn cài đặt, nhập và định cấu hình các tích hợp này

Bộ tiền xử lý CSS

Phần có tiêu đề Bộ tiền xử lý CSS

Astro hỗ trợ các bộ tiền xử lý CSS như Sass, Stylus và Less thông qua Vite

Sass và SCSS

Phần có tiêu đề Sass và SCSS

<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

5

Sử dụng

<style>
  h1 { color: red; }
style>
75 hoặc
<style>
  h1 { color: red; }
style>
76 trong tệp
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
13

bút cảm ứng

Phần có tiêu đề Bút stylus

<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

6

Sử dụng

<style>
  h1 { color: red; }
style>
78 hoặc
<style>
  h1 { color: red; }
style>
79 trong tệp
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
13

Ít hơn

Phần có tiêu đề Ít hơn

<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

7

Sử dụng

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
51 trong tệp
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
13

Trong các thành phần khung

Phần có tiêu đề Trong các thành phần khung

Bạn cũng có thể sử dụng tất cả các bộ tiền xử lý CSS ở trên trong các khung JS. Đảm bảo tuân theo các mẫu mà mỗi khung đề xuất

  • Phản ứng / Dự đoán.
    <style>
      /* Scoped to this component, only. */
      h1 { color: red; }
      /* Mixed: Applies to child `h1` elements only. */
      article :global(h1) {
        color: blue;
      }
    style>
    <h1>Titleh1>
    <article><slot />article>
    53;
  • Vue.
    <style>
      h1 { color: red; }
    style>
    75
  • mảnh dẻ.
    <style>
      h1 { color: red; }
    style>
    75

đăngCSS

Phần có tiêu đề PostCSS

Astro đi kèm với PostCSS như một phần của Vite. Để định cấu hình PostCSS cho dự án của bạn, hãy tạo tệp

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
56 trong thư mục gốc của dự án. Bạn có thể nhập plugin bằng cách sử dụng
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
57 sau khi cài đặt chúng (ví dụ:
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
58)

postcss. cấu hình. cjs
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

8

Khung và Thư viện

Phần có tiêu đề Khung và Thư viện

📘 Phản ứng / Dự đoán

Phần có tiêu đề 📘 React / Preact

Các tệp

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
59 hỗ trợ cả Mô-đun CSS và CSS toàn cầu. Để bật cái sau, hãy sử dụng tiện ích mở rộng
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
90 (hoặc
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
91/
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
92 nếu sử dụng Sass)

src/thành phần/MyReactComponent. jsx
<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all 

tags on your site. */ h1 { color: red; } style>

9

📗 Vue

Phần có tiêu đề 📗 Vue

Vue in Astro hỗ trợ các phương thức giống như

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
93

  • vue-loader - CSS có phạm vi
  • vue-loader - Mô-đun CSS

📕 Mảnh dẻ

Phần có tiêu đề 📕 Svelte

Svelte trong Astro cũng hoạt động đúng như mong đợi. Svelte Styling Tài liệu

Nâng cao

Phần có tiêu đề Nâng cao

thận trọng

Hãy cẩn thận khi bỏ qua gói CSS tích hợp của Astro. Các kiểu sẽ không được tự động đưa vào đầu ra được tạo và bạn có trách nhiệm đảm bảo rằng tệp được tham chiếu được đưa đúng vào đầu ra của trang cuối cùng

Title

94 Nhập CSSPhần có tiêu đề ?Nhập CSS thô

Đối với các trường hợp sử dụng nâng cao, CSS có thể được đọc trực tiếp từ đĩa mà không cần được đóng gói hoặc tối ưu hóa bởi Astro. Điều này có thể hữu ích khi bạn cần kiểm soát hoàn toàn một số đoạn CSS và cần bỏ qua việc xử lý CSS tự động của Astro

Điều này không được khuyến nghị cho hầu hết người dùng

src/components/RawInlineStyles. astro
<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
0

Xem tài liệu của Vite để biết chi tiết đầy đủ

Title

95 Nhập CSSPhần có tiêu đề ?url CSS Imports

Đối với các trường hợp sử dụng nâng cao, bạn có thể nhập tham chiếu URL trực tiếp cho tệp CSS bên trong thư mục

<style>
  h1 { color: red; }
style>
07 của dự án. Điều này có thể hữu ích khi bạn cần kiểm soát hoàn toàn cách tệp CSS được tải trên trang. Tuy nhiên, điều này sẽ ngăn việc tối ưu hóa tệp CSS đó với phần CSS còn lại trên trang của bạn

Điều này không được khuyến nghị cho hầu hết người dùng. Thay vào đó, hãy đặt các tệp CSS của bạn bên trong

<style>
  h1 { color: red; }
style>
05 để có tham chiếu URL nhất quán

thận trọng

Nhập một tệp CSS nhỏ hơn với

<style>
  /* Scoped to this component, only. */
  h1 { color: red; }
  /* Mixed: Applies to child `h1` elements only. */
  article :global(h1) {
    color: blue;
  }
style>
<h1>Titleh1>
<article><slot />article>
95 có thể trả lại nội dung được mã hóa base64 của tệp CSS dưới dạng URL dữ liệu trong bản dựng cuối cùng của bạn. Viết mã của bạn để hỗ trợ URL dữ liệu được mã hóa (______399) hoặc đặt tùy chọn cấu hình
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
00 thành
<style>
  h1 { color: red; }
  h1:where(.astro-HHNQFKH6) { color: red; }

  .text { color: blue; }
  .text:where(.astro-HHNQFKH6) { color: blue; }
style>
01 để tắt tính năng này

Làm cách nào để áp dụng CSS cho biến JavaScript?

CSS Thay đổi biến bằng JavaScript .
Thay đổi biến bằng JavaScript. Các biến CSS có quyền truy cập vào DOM, nghĩa là bạn có thể thay đổi chúng bằng JavaScript. .
Hỗ trợ trình duyệt. Các số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ chức năng var(). .
Hàm CSS var(). Tài sản

Làm cách nào để nhập tệp trong CSS?

Quy tắc tại @import CSS được sử dụng để nhập quy tắc kiểu từ các biểu định kiểu hợp lệ khác . Quy tắc @import phải được xác định ở đầu biểu định kiểu, trước bất kỳ quy tắc nào khác (ngoại trừ @charset và @layer) và khai báo kiểu, nếu không quy tắc đó sẽ bị bỏ qua.

Làm cách nào để nhập tệp CSS trong Sass?

Cách tiếp cận. .
Đầu tiên, tạo một tệp HTML không có thuộc tính CSS
Trong bước tiếp theo, hãy tạo một tệp với. phần mở rộng scss
Ở bước cuối cùng, bạn cần nhập tệp CSS vào tệp SCSS bằng từ khóa nhập

Var() trong CSS là gì?

var() Hàm var() CSS có thể được sử dụng để chèn giá trị của thuộc tính tùy chỉnh (đôi khi được gọi là "biến CSS") thay vì bất kỳ phần nào của giá trị . .