How to change css for active link based on the hashtag

17,256

What I can suggest is using jQuery. Somthing like this.

$(document).ready(function(){
$('div#services_menu li').click(
    function(e)
    {
        $('div#services_menu li').removeClass('active');
        $(e.currentTarget).addClass('active');
    }
);
});


li.active a
{
    color: #BBA842!important;
}

Because, first of all you are using anchor links, and you want to make it dynamic. If any other person can suggest solution using CSS I will appreciate that answer.

Share:
17,256
F Z
Author by

F Z

naughty geek :w Web Design Mobile YOLO https://www.linkedin.com/in/fakhrulzakry/

Updated on August 22, 2022

Comments

  • F Z
    F Z over 1 year

    I have a situation here on how to change my active link css based on the hashtag. All the content was in the same page and I use the #url section to call the content.

    i have try several javascript examples and tutorial but seems like its not working, so i decide create to a new question here and share my code with all of you.

    Here is my url display in browser :

    file:///Users/FZ/Desktop/HLT/services.html#/mergersandacquisitions
    file:///Users/FZ/Desktop/HLT/services.html#/corporatecommercial
    

    this is the code for side menu bar:

    <!-- Start side menu bar -->
    <div id="services_menu">
    <ul id="sliding-navigation">
    <li class="sliding-element" style="margin-left: 0px;"><h3>Our Services:</h3></li>
    <li class="sliding-element" style="margin-left: 0px;"><a href="#capitalmarket">
    Capital Market
    </a></li>
    <li class="sliding-element" style="margin-left: 0px;"><a href="#mergersandacquisitions">
    Mergers & Acquisitions
    </a></li>
    <li class="sliding-element" style="margin-left: 0px;"><a href="#corporatecommercial">
    Corporate Commercial
    </a></li>
    </ul>
    </div>
    <!-- End side menu bar -->
    

    and here is few examples of the content for the link:

    <div class="section">
    <h1 style="margin-top: 0.5px;" id="capitalmarket" >Capital Market </h1>
    <div id="content_services">
        <p>We have significant experience advising clients on complex securities law matters.We have advised on domestic and international cross-border transactions including overseas IPOs.</p>
        <p>
        We have an award-winning Islamic Finance capability that can structure and execute complex financing deals.We leverage the expertise and experience of our established network to help you achieve your financing objectives from origination to execution.</p>
    
    
        <li>Sukuks</li>
        <li>Structured Finance</li>
        <li>Take-overs</li>
        <li>Underwriting Agreements</li>
        <li>Warrants</li>
    </div>
    </div>
    
    
    
    <div class="section">
    <h1 id="mergersandacquisitions" ><br><br><br><br><br>Mergers & Acquisitions</h1><br>
    <div id="content_services">
        <p>We advise on the full range of merger and acquisition transactions involving domestic and international businesses at all stages of development.</p>
    
        <p>Our clients range from private companies to public listed companies and multinationals.Where a capital markets angle is involved, we tap on the resources of our Capital Markets team to ensure you cross the finish line.</p>
    
        <li>Capital Restructuring</li>
        <li>Commercial Transactions</li>
        <li>Consultancy</li>
        <li>Corporate Compliance</li>
        <li>Corporate Reorganisations</li>
        <li>Due Diligence</li>
        <li>Joint Venture</li>
        <li>Privatisations</li>
        <li>Private Equity & Venture Capital</li>
        <li>Share & Business Acquisitions</li>
        <li>Take-overs</li>
    </div>
    </div>
    

    here is the CSS:

    /*/*Navigation menu services*/
     h3{
        font-family: futura;
     }
    #navigation-block {
        position:relative;
        top:200px;
        left:200px;
        font-family: "Lucida Grande", Verdana, sans-serif;
    }
    
    #hide {
        position:absolute;
        top:30px;
        left:-190px;
    }
    
    ul#sliding-navigation
    {
        list-style: none;
        font-size: .75em;
        margin: 30px 0;
        padding: 0;
    }
    
    ul#sliding-navigation li.sliding-element h3,
    ul#sliding-navigation li.sliding-element a
    {
        display: block;
        width: 150px;
        padding: 5px 18px;
        margin: 0;
        margin-bottom: 5px;
    }
    
    ul#sliding-navigation li.sliding-element h3
    {
        color: #fff;
        background:#333 repeat-y;
        font-weight: normal;
    }
    
    ul#sliding-navigation li.sliding-element a
    {
        color: #999;
        background:#222  repeat-y;
        border: 1px solid #1a1a1a;
        text-decoration: none;
        font-family: futura;
    }
    
    ul#sliding-navigation li.sliding-element a:hover { color: #BBA842; }
    

    what should i do to change active link for the each #link. Example, when i click Mergers & Acquisitions, only the "Mergers & Acquisitions" link have the active color instead of all link color.

    i also try to create something like a:active, but not working.

    ul#sliding-navigation li.sliding-element a:active { color: #BBA842; }
    

    Please someone have an idea share and help me. Thank you


    p/s: antindexer just solved my problem. so what i add is : in style.css, i add:

    li.active a
    {
        color: #BBA842!important;
    

    and in html file. i add the javascript

    <script>
    $(document).ready(function(){
        $('div#services_menu li').click(
            function(e)
            {
                $('div#services_menu li').removeClass('active');
                $(e.currentTarget).addClass('active');
            }
        );
    });
    </script>
    
  • F Z
    F Z over 10 years
    Oh dear! Thank you . you just solved my problem. :))) THANK YOU.