4

I would like my dropdown menu to have a tooltip tail under each dropdown. The CSS dropdown tutorial was easy, but I can't figure out how to add the arrow. See jsfiddle

enter image description here

HTML

<nav>
<ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Tutorials</a>
        <ul>
            <li><a href="#">Photoshop</a></li>
            <li><a href="#">Illustrator</a></li>
            <li><a href="#">Web Design</a>
                <ul>
                    <li><a href="#">HTML</a></li>
                    <li><a href="#">CSS</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#">Articles</a>
        <ul>
            <li><a href="#">Web Design</a></li>
            <li><a href="#">User Experience</a></li>
        </ul>
    </li>
    <li><a href="#">Inspiration</a></li>
</ul>

CSS

<style>

nav {
margin: 100px auto; 
text-align: center;
}

nav ul ul {
display: none;
}

nav ul li:hover > ul {
    display: block;
}


nav ul {
background: #efefef; 
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);  
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;  
list-style: none;
position: relative;
display: inline-table;
}
nav ul:after {
    content: ""; clear: both; display: block;
}

nav ul li {
    float: left;
}
    nav ul li:hover {
        background: #4b545f;
        background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
        background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
        background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
    }
        nav ul li:hover a {
            color: #fff;
        }

    nav ul li a {
        display: block; padding: 25px 40px;
        color: #757575; text-decoration: none;
    }


nav ul ul {
    background: #5f6975; border-radius: 0px; padding: 0;
    position: absolute; top: 100%;
}
    nav ul ul li {
        float: none; 
        border-top: 1px solid #6b727c;
        border-bottom: 1px solid #575f6a; position: relative;
    }
        nav ul ul li a {
            padding: 15px 40px;
            color: #fff;
        }   
            nav ul ul li a:hover {
                background: #4b545f;
            }

nav ul ul ul {
    position: absolute; left: 100%; top:0;
}

</style>
2

2 Answers 2

4

That's usually accomplished by using something like the pseudo-selector :before, doing something like:

nav ul ul:before {
    position: absolute;
    top: -9px;
    left:20px;
    display: inline-block;
    border-right: 9px solid transparent;
    border-bottom: 9px solid #EEE;
    border-left: 9px solid transparent;
    content: '';
}

However keep in mind your hover and submenu color is the same, so you may want to style it a bit to suit your tastes...

Demo: http://jsfiddle.net/darkajax/vXdqu/

Sign up to request clarification or add additional context in comments.

Comments

2

You can use the CSS pseudo-selector :before and borders: http://jsfiddle.net/xFUun/2/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.