【问题标题】:Django dynamic css implementation: only one item changes (background) dynamically. How to?Django 动态 css 实现:只有一项动态变化(背景)。如何?
【发布时间】:2011-05-16 18:10:22
【问题描述】:

我想设置一个动态获取背景的单一 CSS 样式 来自一些 django 变量。

我认为增加的困难在于它与 a:hover 有关。

原来的静态 style.css 代码运行如下:

.titles-button h2 a {
    margin-left: 4em;
    margin-right: 4em;
    margin-top: 1em;
    margin-bottom: 1em;
    display: block;
    width: 240px;
    height: 80px;
    /* background: transparent url(../logos/djangoVX_logo.png) center left no-repeat; */
    text-indent: -999em;
    border: 1px dashed green;
}
.titles-button h2 a:hover {
    /* background: transparent url(../logos/djangoVX_logo2.png) center left no-repeat; */
}

注意背景现在被注释了。

我想在 DIV 中使用这种样式并动态更新背景。

喜欢:

{% if the_apps_list %}
    {% for apps in the_apps_list %}
    <div class="titles-button"> 
        <h2><a href="/{{ apps.app_name }}/" style="X">{{ apps.app_name }}</a></h2> 
    </div>
    {% endfor %}
{% else %}
    <p>No APPS are available. Internal Error.</p>
{% endif %}

我为“X”尽了最大努力,但没有结果。

除了: - 重写 X 中的完整样式 - 使用一些javascript花哨的东西(on_mouse_over ...) - 我什至见过一个类:inheritALL

这个解决方案都不符合我使用 django 的想法。

我可能会从错误的一方得到公牛......

..哪个是右边?

干杯 F

【问题讨论】:

  • 请解释您试图实现的行为。为什么你原来的 css 不能工作?
  • 原始 CSS 有效。我想做的是让 django 动态更新/刷新/覆盖背景部分。 IE。除了更新背景之外,保留样式中的所有内容。我有一个使用“onmouseover”和朋友的解决方案。但是我仍然有继承的问题。

标签: css django dynamic


【解决方案1】:

假设您有“深色”和“浅色”版本的背景。您的代码可能如下所示:

views.py:

...
if i_want_dark_version:
    context['style']='dark'
else:
    context['style']='light'

template.html:

<div id="titles-button" class="{{ style }}">
    ...
</div>

style.css:

#titles-button.dark h2 a {
    background: ...;
}
#titles-button.dark h2 a:hover {
    background: ...;
}

#titles-button.light h2 a {
    background: ...;
}
#titles-button.light h2 a:hover {
    background: ...;
}

【讨论】:

  • 这对于 2 个版本来说是完美的。 100个呢?
  • 对不起,我对 stackoverflow 有点陌生。我想我写的更多。
  • 你能原谅之前的台词吗(如果有的话)。我想实现:给定的固定样式,由 django 定义,具有 a 和 a:hover 背景。实际上 django 可能甚至不是重点:什么是动态 HTML 渲染器。但是,如果正如我提到的那样,我从错误的一边得到了公牛,
  • ..如果我从错误的角度得到了公牛,有没有更好的方法来使用 CSS 和 django?我想要的是一个列表(一系列 div),它有一个 标记,允许鼠标悬停(a:hover)。实际图片来自 django。这不仅仅是两种可能性:这是完整的图片列表。
  • 这里有相当困难的用例。我不知道如何仅使用 html、css 和 Django 来解决它,而不会生成大量杂乱的代码。尝试重新考虑您的方法。您似乎正在动态生成部分用户界面(背景)。你确定这是最好的方法吗?如果用户添加了不适合背景的图像怎么办?请记住,如果您的 UI 有很多不同的元素,那么用户可能很难理解。页面的权重也会增加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2023-03-31
  • 2014-03-12
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多