跳转到内容

添加全站样式

现在你已经有了一个带样式的“关于”页面,是时候为网站的其余部分添加一些全局样式了!

准备好去…

  • 全局应用样式

你已经看到 Astro 的 <style> 标签是默认局部化的,这意味着它只影响其所在文件中的元素。

在 Astro 中有几种方法可以**全局**定义样式,但在本教程中,你将创建一个 global.css 文件并将其导入到每个页面中。这种样式表和 <style> 标签的组合使你能够控制一些全站范围的样式,并在需要的地方精确应用一些特定样式。

  1. src/styles/global.css 位置创建一个新文件(你需要先创建一个 styles 文件夹)。

  2. 将以下代码复制到你的新文件 global.css

    src/styles/global.css
    html {
    background-color: #f1f5f9;
    font-family: sans-serif;
    }
    body {
    margin: 0 auto;
    width: 100%;
    max-width: 80ch;
    padding: 1rem;
    line-height: 1.5;
    }
    * {
    box-sizing: border-box;
    }
    h1 {
    margin: 1rem 0;
    font-size: 2.5rem;
    }
  3. about.astro 中,将以下导入语句添加到你的 frontmatter 中

    src/pages/about.astro
    ---
    import '../styles/global.css';
    const pageTitle = "About Me";
    const identity = {
    firstName: "Sarah",
    country: "Canada",
    occupation: "Technical Writer",
    hobbies: ["photography", "birdwatching", "baseball"],
    };
    const skills = ["HTML", "CSS", "JavaScript", "React", "Astro", "Writing Docs"];
    const happy = true;
    const finished = false;
    const goal = 3;
    const skillColor = "navy";
    const fontWeight = "bold";
    const textCase = "uppercase";
    ---
  4. 检查你的“关于”页面的浏览器预览,你现在应该能看到新的样式已经应用!

将必要的代码行添加到项目中的每个 .astro 文件中,以将你的全局样式应用到网站的每个页面。

✅ 给我看代码!✅

将以下导入语句添加到另外两个页面文件中:src/pages/index.astrosrc/pages/blog.astro

src/pages/index.astro
---
import '../styles/global.css';
---

通过向页面模板静态或动态地添加 HTML 元素,对你的“关于”页面的内容进行任何你想要的更改或添加。在你的 frontmatter 脚本中编写任何额外的 JavaScript,以提供在 HTML 中使用的值。当你对这个页面感到满意时,请将你的更改提交到 GitHub,然后再继续下一课。

你的“关于”页面现在同时使用了导入的 global.css 文件*和*一个 <style> 标签进行样式设置。

  • 两种样式方法的样式是否都已应用?

  • 是否存在任何冲突的样式?如果存在,应用了哪一个?

  • 描述 global.css<style> 是如何协同工作的。

  • 你将如何选择是在 global.css 文件中还是在 <style> 标签中声明样式?

贡献 社区 赞助