នៅ​ក្នុងឯកសារ Astro ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​យើង​អាច​សរសេរ​កូដ CSS ​នៅ​ក្នុង​ធាតុ <style> ផ្ទាល់​តែ​ម្តង ក្នុង​ការតុបតែង​រចនាទំព័រ Astro នេះ​។

 

<!--src/pages/index.astro-->
---
const message = "ស្វាគមន៍​មក​កាន់​ទំព័រដើម"
---

<div>{message}</div>

<style>
    div{
        color: red;
    }
</style>

 

កូដ CSS នៅ​ក្នុង​ឯកសារ Astro ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​មួយនឹង​មិន​អាច​មាន​ឥទ្ធិពល​ទៅ​លើ​ធាតុ​ទាំងឡាយ​នៅ​ក្នុង​ឯកសារ Astro ផ្សេង​ទៀត​បាន​ឡើយ តែ​បើយើង​ចង់​អោយ​កូដ​នោះ​មាន​ឥទ្ធិពលទៅ​លើ​ធាតុ​នៅ​ក្នុង​ឯកសារ​ផ្សេង យើង​អាច​ប្រើ is:global នៅ​ក្នុង <style> ។

 

<style is:global>
  /* Unscoped, delivered as-is to the browser.
     Applies to all <h1> tags on your site. */
  h1 { color: red; }
</style>

 

បើ​យើង​ចង់​អោយ​កូដ CSS មាន​ឥទ្ធិពល​តែ​ទៅ​លើ​ធាតុ​មួយ​ចំនួន​នៅ​ក្នុង​ឯកសារ​ផ្សេង យើង​ត្រូវ​ប្រើ :global() ។

 

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

 

យើង​អាច​ផ្កួប​ថ្នាក់​ជា​ច្រើន​សំរាប់​ធាតុ​ណា​មួយ​នៅ​ក្នុង​លក្ខខណ្ឌ​ណា​មួយ​​ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

 

---
const { isRed } = Astro.props;
---
<!-- If `isRed` is truthy, class will be "box red". -->
<!-- If `isRed` is falsy, class will be "box". -->
<div class:list={['box', { red: isRed }]}><slot /></div>

<style>
  .box { border: 1px solid blue; }
  .red { border-color: red; }
</style>

 

ការបង្កើត​អថេរ​សំរាប់​ភាសា CSS អាច​ត្រូវ​ធ្វើឡើង​ដូច​ខាង​ក្រោម​នេះ៖

 

---
const foregroundColor = "rgb(221 243 228)";
const backgroundColor = "rgb(24 121 78)";
---
<style define:vars={{ foregroundColor, backgroundColor }}>
  h1 {
    background-color: var(--backgroundColor);
    color: var(--foregroundColor);
  }
</style>
<h1>Hello</h1>

 

ការតុបតែង​ធាត​ណា​មួយ​ដោយ​ផ្ទាល់ (inline styling) ត្រូវ​ធ្វើ​ឡើង​ដូច​ខាង​ក្រោម​នេះ៖

 

// These are equivalent:
<p style={{ color: "brown", textDecoration: "underline" }}>My text</p>
<p style="color: brown; text-decoration: underline;">My text</p>

 

កូដ​សរសេរ​នៅ​ក្នុង​ឯកសារ CSS ទុក​នៅ​ក្នុង​ថត​ណា​មួយ​នៅ​ក្នុង​ថត src អាច​ត្រូវ​នាំ​ចូល​ដោយ​បញ្ជា import ។

 

---
// Astro will bundle and optimize this CSS for you automatically
// This also works for preprocessor files like .scss, .styl, etc.
import '../styles/utils.css';
---
<html><!-- Your page here --></html>

 

ការយក​ឯកសារ CSS ពី​ក្នុង​ថត public និង​ពី​គេហទំព័រ​ផ្សេង​មក​ប្រើ​ គឺ​ត្រូវ​​ប្រើប្រាស់​ធាតុ <link> ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

 

<head>
  <!-- Local: /public/styles/global.css -->
  <link rel="stylesheet" href="/styles/global.css" />
  <!-- External -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.24.1/themes/prism-tomorrow.css" />
</head>

 

បើ​សិន​ជា​មាន​កូដ​ CSS ជាន់​គ្នា កូដ​ដែល​មាន​អាទិភាព​ជាង​គេ​គឺ​កូដ​នៅ​ក្នុង​ឯកសារ Astro បន្ទាប់មក​​គឺ​កូដ​ដែល​ត្រូវ​នាំ​ចូល​ដោយ​បញ្ជា import ចុង​ក្រោយ​គេ​បង្អស់​គឺ​កូដ​ដែល​ត្រូវ​យក​មក​ប្រើ​តាម​រយៈ​ធាតុ <link> ៕