0

*

I don't know what I am doing wrong here so can you help me? I want to create a cascading drop-down menu and I can't see what I am doing wrong. I've tried everything. I am just out of ideas

*

HERE IS MY CODE

<style type="text/css">
body {
    background:#bf5c71 url('australia1.jpg');
}
 
.clearfix:after {
    display:block;
    clear:both;
}
 
/*----- Menu Outline -----*/
.menu-wrap {
    width:100%;
    box-shadow:0px 1px 3px rgba(0,0,0,0.2);
    background:#3e3436;
}
 
.menu {
    width:1000px;
    margin:0px auto;
}
 
.menu li {
    margin:0px;
    list-style:none;
    font-family:'Ek Mukta';
}
 
.menu a {
    transition:all linear 0.15s;
    color:#919191;
}
 
.menu li:hover > a, .menu .current-item > a {
    text-decoration:none;
    color:#be5b70;
}
 
.menu .arrow {
    font-size:11px;
    line-height:0%;
}
 
/*----- Top Level -----*/
.menu > ul > li {
    float:left;
    display:inline-block;
    position:relative;
    font-size:19px;
}
 
.menu > ul > li > a {
    padding:10px 40px;
    display:inline-block;
    text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}
 
.menu > ul > li:hover > a, .menu > ul > .current-item > a {
    background:#2e2728;
}

 
/*----- Bottom Level -----*/
.menu li:hover .sub-menu,
.menu li:hover .sub-menu1{
    z-index:1;
    opacity:1;
}
 
.sub-menu {
    width:160%;
    padding:5px 0px;
    position:absolute;
    top:100%;
    left:0px;
    z-index:-1;
    opacity:0;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2728;
}

.sub-menu1 {
    width:100%;
    padding:0px 0px;
    position:relative;
 top:100%;
    left:370px;
    z-index:100;
    opacity:50;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2758;
 
}

.sub-menu li,
.sub-menu1 li
{
    display:block;
    font-size:16px;
}

.sub-menu li a{
    padding:10px 30px;
    display:block;
}

.sub-menu1 li a{
 padding:10px 10px;
    display:block;
}
 
.sub-menu li a:hover, .sub-menu .current-item a,
.sub-menu1 li a:hover, .sub-menu1 .current-item a
{
    background:#3e3436;
}

</style>
 </body>
   </html>
<html>

<head>
        
<title> Australia </title>
</head>
<body>
<div class="menu-wrap">
    <nav class="menu">
        <ul class="clearfix">
            <li><a href="#">Acasa</a></li>
            <li><a href="#">Obiective turistice<span class="arrow">&#9660;</span></a>
                <ul class="sub-menu">
                    <li><a href="#">Sydney</a>
      <ul class="sub-menu1">
        <li><a href="#">Test</a>
      </ul> 
     </li>
                    <li><a href="#">Melbourne</a></li>
                    <li><a href="#">Brisbane</a></li>
                    <li><a href="#">Perth</a></li>
                </ul>
            </li>
   <li class="current-item"><a href="#">Galerie Foto</a></li>
            <li><a href="#">Video</a></li>
        </ul>
    </nav>
</div>
geeksal
  • 4,856
  • 3
  • 24
  • 47
Yuukii Yu
  • 3
  • 4
  • Always post a JSfiddle for better explanation – geeksal Mar 27 '16 at 17:37
  • i think i did @geeksal – Yuukii Yu Mar 27 '16 at 17:41
  • Please elaborate more on -- what do you mean by cascading menu. I mean they are of different types of such menu's which one you exactly want? – geeksal Mar 27 '16 at 17:43
  • the one where is the "test" thingy. Like i want to appear when i click on the "Sydney" thingy, not to appear right away. i hope you get me @geeksal – Yuukii Yu Mar 27 '16 at 17:45
  • I have posted the solution based on hover effect check it out . For click event you have to use javascript + css – geeksal Mar 27 '16 at 18:26
  • I wonder why you have unaccepted my answer after 6 months. If you have any issues you might have commented on my answer. It is against the basic ethics and morals. – geeksal Oct 16 '16 at 16:18

3 Answers3

1

You can use adjacent sibling selector for more info visit this link On a CSS hover event, can I change another div's styling?

Set display:none initially to sub-menu1 class and on hover of sub-menu li a set display of adjacent sub-menu1 back to block.

Here is the code:

body {
    background:#bf5c71 url('australia1.jpg');
}

.clearfix:after {
    display:block;
    clear:both;
}

/*----- Menu Outline -----*/
.menu-wrap {
    width:100%;
    box-shadow:0px 1px 3px rgba(0,0,0,0.2);
    background:#3e3436;
}

.menu {
    width:1000px;
    margin:0px auto;
}

.menu li {
    margin:0px;
    list-style:none;
    font-family:'Ek Mukta';
}

.menu a {
    transition:all linear 0.15s;
    color:#919191;
}

.menu li:hover > a, .menu .current-item > a {
    text-decoration:none;
    color:#be5b70;
}

.menu .arrow {
    font-size:11px;
    line-height:0%;
}

/*----- Top Level -----*/
.menu > ul > li {
    float:left;
    display:inline-block;
    position:relative;
    font-size:19px;
}

.menu > ul > li > a {
    padding:10px 40px;
    display:inline-block;
    text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}

.menu > ul > li:hover > a, .menu > ul > .current-item > a {
    background:#2e2728;
}


/*----- Bottom Level -----*/
.menu li:hover .sub-menu,
.menu li:hover .sub-menu1{
    z-index:1;
    opacity:1;
}

.sub-menu {
    width:160%;
    padding:5px 0px;
    position:absolute;
    top:100%;
    left:0px;
    z-index:-1;
    opacity:0;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2728;
}

.sub-menu1 {
    width:100%;
    padding:0px 0px;
    position:relative;
    top:100%;
    left:370px;
    z-index:100;
    opacity:50;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2758;
     display: none;

}


.sub-menu li,
.sub-menu1 li
{
    display:block;
    font-size:16px;
}



.sub-menu li a:hover, .sub-menu .current-item a,
.sub-menu1 li a:hover, .sub-menu1 .current-item a
{
    background:#3e3436;
    display: block;
}


.sub-menu li a:hover + .sub-menu1{
    display:block;
    padding:10px 10px;
}
<div class="menu-wrap">
    <nav class="menu">
        <ul class="clearfix">
            <li><a href="#">Acasa</a></li>
            <li><a href="#">Obiective turistice<span class="arrow">&#9660;</span></a>
                <ul class="sub-menu">
                    <li><a href="#">Sydney</a>
                        <ul class="sub-menu1">
                             <li><a href="#">Test</a>
                        </ul>   
                    </li>
                    <li><a href="#">Melbourne</a></li>
                    <li><a href="#">Brisbane</a></li>
                    <li><a href="#">Perth</a></li>
                </ul>
            </li>
            <li class="current-item"><a href="#">Galerie Foto</a></li>
            <li><a href="#">Video</a></li>
        </ul>
    </nav>
</div>
Community
  • 1
  • 1
geeksal
  • 4,856
  • 3
  • 24
  • 47
0

Or you can have an indentation on your submenus? It really depends on what you want. Could you give some example? Here's what I meant when I was talking about indentation :

body {
    background:#bf5c71 url('australia1.jpg');
}
 
.clearfix:after {
    display:block;
    clear:both;
}
 
/*----- Menu Outline -----*/
.menu-wrap {
    width:100%;
    box-shadow:0px 1px 3px rgba(0,0,0,0.2);
    background:#3e3436;
}
 
.menu {
    width:1000px;
    margin:0px auto;
}
 
.menu li {
    margin:0px;
    list-style:none;
    font-family:'Ek Mukta';
}
 
.menu a {
    transition:all linear 0.15s;
    color:#919191;
}
 
.menu li:hover > a, .menu .current-item > a {
    text-decoration:none;
    color:#be5b70;
}
 
.menu .arrow {
    font-size:11px;
    line-height:0%;
}
 
/*----- Top Level -----*/
.menu > ul > li {
    float:left;
    display:inline-block;
    position:relative;
    font-size:19px;
}
 
.menu > ul > li > a {
    padding:10px 40px;
    display:inline-block;
    text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}
 
.menu > ul > li:hover > a, .menu > ul > .current-item > a {
    background:#2e2728;
}

 
/*----- Bottom Level -----*/
.menu li:hover .sub-menu,
.menu li:hover .sub-menu1{
    z-index:1;
    opacity:1;
}
 
.sub-menu {
    width:160%;
    padding:5px 0px;
    position:absolute;
    top:100%;
    left:0px;
    z-index:-1;
    opacity:0;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2728;
}

.sub-menu1 {
    width:100%;
    padding:0px 0px;
    position:relative;
 top:100%;
    left:370px;
    z-index:100;
    opacity:50;
    transition:opacity linear 0.15s;
    box-shadow:0px 2px 3px rgba(0,0,0,0.2);
    background:#2e2758;
 
}

.sub-menu li,
.sub-menu1 li
{
    display:block;
    font-size:16px;
}

.sub-menu li a{
    padding:10px 30px;
    display:block;
}

.sub-menu1 li a{
 padding:10px 10px;
    display:block;
}
 
.sub-menu li a:hover, .sub-menu .current-item a,
.sub-menu1 li a:hover, .sub-menu1 .current-item a
{
    background:#3e3436;
}
<div class="menu-wrap">
    <nav class="menu">
        <ul class="clearfix">
            <li><a href="#">Acasa</a></li>
            <li><a href="#">Obiective turistice<span class="arrow">&#9660;</span></a>
                <ul class="sub-menu">
                    <li>
                       <a href="#">Sydney</a>
                 <ul>
                         <li><a href="#">Test</a>
                       </ul>
        </li>
                    <li><a href="#">Melbourne</a></li>
                    <li><a href="#">Brisbane</a></li>
                    <li><a href="#">Perth</a></li>
                </ul>
            </li>
   <li class="current-item"><a href="#">Galerie Foto</a></li>
            <li><a href="#">Video</a></li>
        </ul>
    </nav>
</div>
benzenski
  • 37
  • 4
0

First of all,you must write 0 instead of 0px. you must make the sub-menu1 display: none; then when mouse is on sydney the sub-menu must be display: block; i have fixed somethings and this will be your code:

body {
    background: #bf5c71;
}

.clearfix:after {
    display: block;
    clear: both;
}

/*----- Menu Outline -----*/
.menu-wrap {
    width: 100%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    background: #3e3436;
}

.menu {
    width: 1000px;
    margin: 0 auto;
}

.menu li {
    margin: 0;
    list-style: none;
    font-family: 'Ek Mukta';
}

.menu a {
    transition: all linear 0.15s;
    color: #919191;
}

.menu li:hover > a, .menu .current-item > a {
    text-decoration: none;
    color: #be5b70;
}

.menu .arrow {
    font-size: 11px;
    line-height: 0;
}

/*----- Top Level -----*/
.menu > ul > li {
    float: left;
    display: inline-block;
    position: relative;
    font-size: 19px;
}

.menu > ul > li > a {
    padding: 10px 40px;
    display: inline-block;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}

.menu > ul > li:hover > a, .menu > ul > .current-item > a {
    background: #2e2728;
}

/*----- Bottom Level -----*/
.menu li:hover .sub-menu,
.menu li:hover .sub-menu1 {
    z-index: 1;
    opacity: 1;
}

.sub-menu {
    width: 160%;
    padding: 5px 0;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0;
    transition: opacity linear 0.15s;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
    background: #2e2728;
}

#sydney:hover .sub-menu1 {

    display: block;

}

.sub-menu1 {
    width: 100%;
    padding: 0;
    position: relative;
    top: 0;
    left: 370px;
    z-index: 100;
    opacity: 50;
    transition: opacity linear .15s;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
    background: #2e2758;
    display: none;

}

.sub-menu li,
.sub-menu1 li {
    font-size: 16px;
}

.sub-menu li a {
    padding: 10px 30px;
    display: block;
}

.sub-menu li a:hover, .sub-menu .current-item a,
.sub-menu1 li a:hover, .sub-menu1 .current-item a {
    background: #3e3436;
}
<div class="menu-wrap">
    <nav class="menu">
        <ul class="clearfix">
            <li><a href="#">Acasa</a></li>
            <li><a href="#">Obiective turistice<span class="arrow">&#9660;</span></a>
                <ul class="sub-menu">
                    <li id="sydney"><a href="#">Sydney</a>
                        <ul class="sub-menu1">
                            <li><a href="#">Test</a></li>
                        </ul>
                    </li>
                    <li><a href="#">Melbourne</a></li>
                    <li><a href="#">Brisbane</a></li>
                    <li><a href="#">Perth</a></li>
                </ul>
            </li>
            <li class="current-item"><a href="#">Galerie Foto</a></li>
            <li><a href="#">Video</a></li>
        </ul>
    </nav>
</div>
Mahdyar
  • 65
  • 8