Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Johan 95 posts 264 karma points
    Nov 24, 2015 @ 08:47
    Johan
    0

    Fixed drop-down position

    I have a navigation menu but I want it to have its drop-down fixed like this:

    http://jsfiddle.net/Pnn6V/380/

    As you can see in the example above, the dropdown is always fixed on the same place no matter what menu is hovered.

    I want the same dropdown position on my navigation menu.

    Here is my code:

    @inherits Umbraco.Web.Macros.PartialViewMacroPage
    @{
    
        var rootNode = Model.Content.AncestorOrSelf(1);
    
        // home node is hardcoded - this might not be right?
        <ul id="menu">
            <li>
                <a href="/" class="drop">Home</a>
                <div class="dropdown_2columns">
                    <!-- Begin 2 columns container -->
                    <div class="col_2">
                        <h2>Welcome !</h2>
                    </div>
                </div><!-- End 2 columns container -->
            </li><!-- End Home Item -->
            @foreach (var mainNode in rootNode.Children())
            {
                int childCount = 1;
                int numChildren = mainNode.Children().Count();
                <li>
                    <a href="@mainNode.Url" class="drop">@mainNode.Name</a>
                    <div class="dropdown_5columns">
                        <!-- Begin 2 columns container -->
                        <div class="col_5">
                            <h2>@mainNode.Name</h2>
                        </div>
                        @* note if you want ALL descendants change .Children to .Descendats*@
                        @foreach (var childNode in mainNode.Children())
                        {
                            // if first node or new set of three open the div and ul @: is used to stop razor trying to
                            // "balance" the tags
                            if (childCount == 1 || (double)childCount % 3 == 1)
                            {
                                @:<div class="col_1">
                                    @:<ul>
                            }
                            <a href="@childNode.Url">@childNode.Name</a>
    
                            // close the div and list if this is either a multiple of 3 or the last one
                            if ((double)childCount % 3 == 0 || numChildren == childCount)
                            {
                                @:</ul>
                            @:</div>
                            }
                            childCount++;
                        }
                    </div>
                </li>
            }
        </ul>
    }
    

    CSS:

    #menu {  
        list-style:none;  
        width:940px;  
        padding:0;
        margin:30px auto 0px auto;  
        height:43px;  
       /* padding:0px 20px 0px 20px;*/  
    
        /* Rounded Corners */  
    
        -moz-border-radius: 10px;  
        -webkit-border-radius: 10px;  
        border-radius: 10px;  
    
        /* Background color and gradients */  
    
        background: #014464;  
        background: -moz-linear-gradient(top, #0272a7, #013953);  
        background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0272a7), to(#013953));  
    
        /* Borders */  
    
        border: 1px solid #002232;  
    
        -moz-box-shadow:inset 0px 0px 1px #edf9ff;  
        -webkit-box-shadow:inset 0px 0px 1px #edf9ff;  
        box-shadow:inset 0px 0px 1px #edf9ff;  
    }  
    
    #menu li {  
        float:left;  
        text-align:center;  
        position:relative;  
        padding: 4px 10px 4px 10px;  
        margin-right:30px;  
        margin-top:7px;  
        border:none;  
    }  
    
    #menu li:hover {  
        border: 1px solid #777777;  
        padding: 4px 9px 4px 9px;  
    
        /* Background color and gradients */  
    
        background: #F4F4F4;  
        background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);  
        background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));  
    
        /* Rounded corners */  
    
        -moz-border-radius: 5px 5px 0px 0px;  
        -webkit-border-radius: 5px 5px 0px 0px;  
        border-radius: 5px 5px 0px 0px;  
    }  
    
    #menu li a {  
        font-family:Arial, Helvetica, sans-serif;  
        font-size:14px;  
        color: #EEEEEE;  
        display:block;  
        outline:0;  
        text-decoration:none;  
        text-shadow: 1px 1px 1px #000;  
    }  
    
    #menu li:hover a {  
        color:#161616;  
        text-shadow: 1px 1px 1px #FFFFFF;  
    }  
    #menu li .drop {  
        padding-right:21px;  
        background:url("img/drop.png") no-repeat rightright 8px;  
    }  
    #menu li:hover .drop {  
        background:url("img/drop.png") no-repeat rightright 7px;  
    }  
    
    /* Drop Down */  
    
    .dropdown_1column,  
    .dropdown_2columns,  
    .dropdown_3columns,  
    .dropdown_4columns,  
    .dropdown_5columns {  
        margin:4px auto;  
        float:left;  
        position:absolute;  
        left:-999em; /* Hides the drop down */  
        text-align:left;  
        padding:10px 5px 10px 5px;  
        border:1px solid #777777;  
        border-top:none;  
    
        /* Gradient background */  
        background:#F4F4F4;  
        background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);  
        background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));  
    
        /* Rounded Corners  
        -moz-border-radius: 0px 5px 5px 5px;  
        -webkit-border-radius: 0px 5px 5px 5px;  
        border-radius: 0px 5px 5px 5px; */  
    }  
    
    .dropdown_1column {width: 930px;}  
    .dropdown_2columns {width: 931px;}  
    .dropdown_3columns {width: 930px;}  
    .dropdown_4columns {width: 932px;}  
    .dropdown_5columns {width: 932px;}  
    
    #menu li:hover .dropdown_1column
    {
        left:-841px;
        top:auto;
    }
    #menu li:hover .dropdown_2columns
    {
        left:-2px;
        top:auto;
    } 
    #menu li:hover .dropdown_3columns
    {
        left:-736px;
        top:auto;
    }
    #menu li:hover .dropdown_4columns
    {
        left:-248px;
        top:auto;
    }  
    #menu li:hover .dropdown_5columns {  
        left:-110px;  
        top:auto;  
    }  
    
    /* Columns */  
    
    .col_1,  
    .col_2,  
    .col_3,  
    .col_4,  
    .col_5 {  
        display:inline;  
        float: left;  
        position: relative;  
        margin-left: 5px;  
        margin-right: 5px;  
    }  
    .col_1 {width:130px;}  
    .col_2 {width:270px;}  
    .col_3 {width:410px;}  
    .col_4 {width:550px;}  
    .col_5 {width:690px;}  
    
    /* Right alignment */  
    
    #menu .menu_right {  
        float:right;  
        margin-right:0px;  
    }  
    #menu li .align_right {  
        /* Rounded Corners */  
       /*-moz-border-radius: 5px 0px 5px 5px;  
        -webkit-border-radius: 5px 0px 5px 5px;  
        border-radius: 5px 0px 5px 5px;*/
    }  
    #menu li:hover .align_right {  
       /* left:auto;
        right:-1px;*/   
        top:auto;  
    }  
    
    /* Drop Down Content Stylings */  
    
    #menu p, #menu h2, #menu h3, #menu ul li {  
        font-family:Arial, Helvetica, sans-serif;  
        line-height:21px;  
        font-size:12px;  
        text-align:left;  
        text-shadow: 1px 1px 1px #FFFFFF;  
    }  
    #menu h2 {  
        font-size:21px;  
        font-weight:400;  
        letter-spacing:-1px;  
        margin:7px 0 14px 0;  
        padding-bottom:14px;  
        border-bottom:1px solid #666666;  
    }  
    #menu h3 {  
        font-size:14px;  
        margin:7px 0 14px 0;  
        padding-bottom:7px;  
        border-bottom:1px solid #888888;  
    }  
    #menu p {  
        line-height:18px;  
        margin:0 0 10px 0;  
    }  
    
    #menu li:hover div a {  
        font-size:12px;  
        color:#015b86;  
    }  
    #menu li:hover div a:hover {  
        color:#029feb;  
    }  
    .strong {  
        font-weight:bold;  
    }  
    .italic {  
        font-style:italic;  
    }  
    #menu li ul {  
        list-style:none;  
        padding:0;  
        margin:0 0 12px 0;  
    }  
    #menu li ul li {  
        font-size:12px;  
        line-height:24px;  
        position:relative;  
        text-shadow: 1px 1px 1px #ffffff;  
        padding:0;  
        margin:0;  
        float:none;  
        text-align:left;  
        width:130px;  
    }  
    #menu li ul li:hover {  
        background:none;  
        border:none;  
        padding:0;  
        margin:0;  
    }  
    

    How can I achieve it?

Please Sign in or register to post replies

Write your reply to:

Draft