gpt4 book ai didi

html - 如何在 Jekyll 生成的页面中呈现背景图像?

转载 作者:行者123 更新时间:2023-12-02 00:24:44 25 4
gpt4 key购买 nike

作为刚开始使用 GitHub Pages 的新手,我迷失在网络上的海量资料中,这些资料似乎可以帮助我解决以下问题:

我正在使用 Jekyll 构建通过 GitHub Pages 托管的博客,并想在我的默认主页中添加背景图片,例如 this .
那么,我该怎么做呢?我已经开始了,但对 HTML/CSS 知之甚少,因此非常感谢有一种简单的方法来做同样的事情。我目前使用的是默认的 minima 主题! :)

最佳答案

Minima 没有像您期望的那样轻松渲染“封面照片”的规定。但这并不意味着,不可能渲染一个。

使用 Minima 时,您的主页通过文件 ./index.md 呈现和布局文件 _layouts/home.html .因此,如果您的工作目录不包含 home布局,创建 _layouts包含名为 home.html 的文件的目录.

home最小布局

我将解释布局包含的内容,以便您能够在其他领域使用这些知识。

布局包含以下代码。将下面的整个代码复制到 _layouts/home.html您刚刚在上述步骤中创建的文件:

---
layout: default
---

<div class="home">
{%- if page.title -%}
<h1 class="page-heading">{{ page.title }}</h1>
{%- endif -%}

{{ content }}

{%- if site.posts.size > 0 -%}
<h2 class="post-list-heading">{{ page.list_title | default: "Posts" }}</h2>
<ul class="post-list">
{%- for post in site.posts -%}
<li>
{%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
<span class="post-meta">{{ post.date | date: date_format }}</span>
<h3>
<a class="post-link" href="{{ post.url | relative_url }}">
{{ post.title | escape }}
</a>
</h3>
{%- if site.show_excerpts -%}
{{ post.excerpt }}
{%- endif -%}
</li>
{%- endfor -%}
</ul>

<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a></p>
{%- endif -%}

</div>

让我们逐 block 剖析布局:

---
layout: default
---

这是一个 front matter block ,它告诉 Jekyll 'home' 布局是 'default' 布局的一个子集。

<div class="home">

这会为主页上的所有其他内容打开一个容器,并由 </div> 关闭在最后一行。

{%- if page.title -%}
<h1 class="page-heading">{{ page.title }}</h1>
{%- endif -%}

如果主页标题在文件 ./index.md 中提供,此模板指令将呈现主页标题。 .

{{ content }}

这是另一个模板指令,它使用此布局从文件中提取内容(除前面内容之外的任何内容)。在我们的例子中,这将是 ./index.md .

剩余 block {%- if site.posts.size > 0 -%}循环浏览您站点中的帖子并呈现这些帖子的列表。

封面图片

我们现在对模板的构成有了一个清晰的认识。但是没有提到渲染封面照片的代码。

同意。那么,让我们编写代码。在带有 {{ content }} 的行之前插入以下步骤中的代码在布局中

首先,为图像添加一个容器。

<div class="hero">
</div>

然后插入 HTML 标记以在其中呈现您选择的图像(例如,./assets/home-feature.jpg):

<div class="hero">
<img class="feature-img" src="{{ 'assets/home-feature.jpg' | relative_url }}" />
</div>

仅使用上述标记,您的图片对于您的页面来说可能太大了。所以我们应该用一些 CSS 样式来限制大小。

Minima 使用 Sass partials 为您的站点生成 CSS。因此,我们需要用一些自定义代码覆盖部分内容。

创建一个名为 _sass 的新目录有一个名为 minima 的子目录最后是 _sass/minima 中的一个文件名为 _layout.scss 的目录.将内容复制到 this link到那个文件。

现在在文件末尾添加以下自定义代码:

/* Cover Image */
.hero {
.feature-img: {
max-width: 100%;
}
}

渲染背景图片

以上只是渲染一张封面照片。要将图像渲染为合适的背景图像,您可以执行以下操作。

首先,我们需要调整标记以在前景中呈现文本,而图像仅作为背景:

<div class="hero">
{{ page.hero_text }}
</div>

有了上面的内容,您现在可以通过 ./index.md 中的 front matter 控制背景图像上的文本。 .

然后使用 CSS 取回图像:

/* Cover Image */
.hero {
background: url('../home-feature.jpg');
}

获取图像的 url 有点棘手,因为我们不能在 vanilla Jekyll 的 sass partials 中使用 Liquid 指令。因此,您必须针对您的特定站点对其进行试验。

有关 CSS 背景的更多提示,请查看 this link

关于html - 如何在 Jekyll 生成的页面中呈现背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54157109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com