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?

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies