【问题标题】:Want to change the tab image for the current page想要更改当前页面的标签图像
【发布时间】:2011-11-11 05:01:47
【问题描述】:

我有一个 django web 应用程序,它有一个水平导航,标签是水平的。每个链接都会查找名为 tab.png 的图像选项卡。我还包括了一个悬停属性。

现在,我想更改所选标签菜单(当前页面)的标签图像。因此,无论当前页面是什么,将标签图像更改为 tab2.png。唯一的问题是我不确定如何正确执行此操作。

base_menu.html

{% extends "base.html" %}

{% block content %}

<ol id="toc">
        <li><a href="{% url mmc.views.return_clients %}"><span>Home</span></a></li>
        <li><a href="{% url mmc.views.quote_step1 %}"><span>Create quote/order</span></a></li>
        <li><a href="{% url mmc.views.search_item %}"><span> Item Search</a></span></li>
        <li><a href="{% url mmc.views.order_list %}"><span>Storage orders</span></a></li>
</ol>

<div id="right_content">
        {% block right_content %}

        {% endblock %}
</div>
{% endblock %}

base.css

ol#toc {
    height: 2em;
    list-style: none;
    margin: 0;
    padding: 0;
}

ol#toc li {
    background:#ffffff url(../images/tab.png);
    float: left;
    margin: 0 1px 0 0;

}

ol#toc span {
    background: url(../images/tab.png) 100% 0;
    display: block;
    line-height: 2em;
    padding-right: 10px;
}

ol#toc a {
    color: #000000;
    height: 2em;
    float: left;
    text-decoration: none;
    padding-left: 10px;
}

ol#toc a:hover {
    background: url(../images/tab2.png);
    text-decoration: underline;`

}

ol#toc a:hover span {
    background: url(../images/tab2.png) 100% 0;
    background-position: 100% -120px;
}

【问题讨论】:

    标签: html css django image tabs


    【解决方案1】:

    在这种布局中,仅使用 css 似乎是不可能的,因为你的 'li' 或 'a' 没有类似 id="current" 的东西。

    顺便说一句,使用这种样式,您可以在“跨度”顶部有一个带有标签的“a”,在带有标签的“li”顶部有一个标签。有点矫枉过正?

    这是您添加当前背景时唯一需要的 css……不需要所有其他背景。

    ol#toc li {
        background:#ffffff url(../images/tab.png);
        float: left;
        margin: 0 1px 0 0;
    
    }
    ol#toc li#current {
        background:#ffffff url(../images/tab2.png);
        float: left;
        margin: 0 1px 0 0;
    
    }
    

    【讨论】:

    • 问题是如果我将id="current"添加到&lt;li&gt;&lt;a href="{% url mmc.views.return_clients %}"&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;,它会使这个链接有`tab2.png,不管它是否是当前页面。有没有办法说是不是当前页面使用tab.png?
    • 好的,我已经完成了你让我做的事情。问题是现在发生的是链接`
    • Home' 的选项卡有一个 tab2.png 图像。但是,如果我转到不同的页面,它会说它仍然是当前页面(即标签不会变回 tab1.png 图像)。我该如何克服这个问题? Jscript,另一个模板?
    【解决方案2】:

    @Shehzad009;在a 标签中提供您的图像,对于current page,您可以根据页面为它创建一个类,如.current $\&chane。

    ol#toc a{background: url(http://dummyimage.com/200x32/000/fff&text=normal) 0 0;}
    ol#toc a:hover, .current {background: url(http://dummyimage.com/200x32/000/454545&text=hover) 0 0;}
    

    HTML

    <ol id="toc">
            <li class="current"><a href="{% url mmc.views.return_clients %}"><span>Home</span></a></li>
            <li><a href="{% url mmc.views.quote_step1 %}"><span>Create quote/order</span></a></li>
            <li><a href="{% url mmc.views.search_item %}"><span> Item Search</a></span></li>
            <li><a href="{% url mmc.views.order_list %}"><span>Storage orders</span></a></li>
    </ol>
    

    【讨论】:

      【解决方案3】:

      这是一个 javascript 行,用于将“当前”类设置为 .

      <script type="text/javascript">
        $(document).ready( function () {
          $("#toc >li >a").each(function (key,object) { if($(object).attr("href") == document.location.pathname) $(object).addClass("current");});
        });
      </script>
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签