Django动态CSS实现

发布于 2024-11-07 15:18:42 字数 210 浏览 0 评论 0原文

我有我的小博客应用程序,我希望能够从管理页面更改样式(不一定是全部)。在 django 项目中实现动态样式加载的“正确”方法是什么? 我自己的想法:

  • 通过Python文件I/O编辑css文件
  • 从数据库构造css文件
  • 尽管这两种实现都有严重的缺点。 预先感谢您的解决方案。

    编辑:我更喜欢想法而不是 django 应用程序:)

    I have my little blog app, and I want to be able to change styles (not necessarily all) from admin page. What would be the 'right' way to implement dynamic style loading in django project?
    My own thoughts:

  • Edit css file through Python file I/O
  • Construct css file from database
  • Though both implementations have serious drawbacks.
    Thank you in advance for your solutions.

    Edit: I would prefer ideas not django apps :)

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    满身野味 2024-11-14 15:18:42

    执行此操作的“正确”方法是在顶级 div(甚至正文)中定义一个类,它确定该页面的主样式。然后,该页面中的所有可样式元素都会通过级联的魔力继承此样式:

    .master-default {
        color: black;
    }
    .master-default .bordered {
        border: green;
    }
    .master-blue {
        color: blue;
    }
    .master-blue .bordered
        border: yellow;
    }
    

    依此类推。现在,您的管理界面仅允许用户确定顶级主样式,然后您可以在基本模板中使用该样式:

    <div id="master" class="{{ userprofile.master_style }}">
        <div class="bordered">Border colour will vary according to master style</a>
    </div>
    

    等等。

    The "right" way to do this would be to define a single class at the top-level div (or even body), which determines the master style for that page. All the style-able elements in that page then inherit this style via the magic of cascading:

    .master-default {
        color: black;
    }
    .master-default .bordered {
        border: green;
    }
    .master-blue {
        color: blue;
    }
    .master-blue .bordered
        border: yellow;
    }
    

    and so on. Now your admin interface simply allows the user to determine the top-level master style, which you then use in your base template:

    <div id="master" class="{{ userprofile.master_style }}">
        <div class="bordered">Border colour will vary according to master style</a>
    </div>
    

    etc.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文