【问题标题】:Using liquid tempting in CSS on Jekyll to adjust background color of divs on a per page basis在 Jekyll 上的 CSS 中使用液体诱惑来调整每个页面的 div 的背景颜色
【发布时间】:2017-07-20 08:30:45
【问题描述】:

我正在为我的website 使用 Jekyll 和 Liquid。

我一直坚持在 CSS 中使用 Liquid 来正确编译。我正在尝试为每个页面的边框使用不同的颜色,并将默认设置为黑色。

感谢大家的任何见解。

   #splash {width: 100%; height: 10%;}
   #splash background-color: {% if page.accent %}{{ page.accent }}{% else %}{{ black }}{% endif %}
<div id= "splash"> </div>

【问题讨论】:

  • 在我看来,没有那么复杂的方法,将这一行 CSS 放在每个页面的 <head> 中,或者为每个页面使用 id,然后像往常一样使用样式。
  • 有什么问题?您给定的代码无法编译?

标签: html css jekyll liquid


【解决方案1】:

链接样式表并不意味着特定于页面,因此这不是正确的方法。我也不会合并特定于页面和特定于网站的 CSS。在网站样式表中为您创建的每个页面(现在和将来)添加一个 id 似乎也不合逻辑。

我的建议是在 _layout 目录中创建一个名为 page.html 的布局文件。让它看起来像这样:

<html>
<head>
<!-- website-specific CSS goes here -->
<link rel=stylesheet href="style.css" type="text/css">
<style>
  /* page-specific CSS goes here */
  #splash {
    background-color: {% if page.accent %}{{ page.accent }}{% else %}black{% endif %};
  }
</style>
</head>
<body>
<div id="splash"></div>
</body>
</html>

将您的网站特定/普通 CSS 添加到您的样式表中。头部中特定于页面的 CSS 将覆盖它。然后像这样创建一个 index.md 文件:

---
accent: red
layout: page
---
content

请注意,设置默认值时不必在每个页面中设置布局,请参阅:front matter defaults

【讨论】:

    【解决方案2】:

    您需要在文件顶部添加 2 行 --- 才能正确编译。

    来源:https://jekyllrb.com/docs/assets/

    您还需要在背景颜色的 CSS 代码周围添加 {

    ---
    ---
    
    #splash {
        width: 100%; height: 10%;
    }
    
    #splash {
        background-color: {% if page.accent %}{{ page.accent }}{% else %}{{ black }}{% endif %};
    }
    

    或者,您可以像这样合并 2 个 CSS 语句:

    ---
    ---
    
    #splash {
        background-color: {% if page.accent %}{{ page.accent }}{% else %}{{ black }}{% endif %};
        height: 10%;
        width: 100%;
    }
    

    【讨论】:

    • 感谢收看“{”!调整代码后,我仍然遇到页面构建失败。 “...f page.accent %”后的 CSS 无效:预期为“{”,为“}{{ page.accent...”
    • 另外,我浏览了 CSS 文件并仔细检查了,我似乎没有遇到任何语法问题,这似乎是 CSS 读取液体模板的问题。我在其他帖子中看到,在 CSS 顶部插入 YAML 很有用,但我对 YAML 不熟悉,所以我尝试将它一般地侵入页面顶部的尝试没有成功。
    • @AnnaGardner 要让 Liquid 编译器识别 CSS 中的液体语法,您需要在文件顶部添加 2 组 3 - (如上所述)。我似乎也无法在 Liquid 参考中的任何地方找到 page.accent 对象,也许这就是问题所在? help.shopify.com/themes/liquid/objects/page
    • 抱歉,忘记补充了,我在 css 顶部添加了 '---'x2,但仍然出现页面故障。我创建了 page.accent 对象。 {{page.accent}} 能够在降价中工作,所以也许将样式表放在降价中是最好的解决方法?
    • 我让它在 html 中工作!不是最好的解决方案,但它有效!
    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    相关资源
    最近更新 更多