Too Many Questions
Too Many Questions

Reputation: 27

Dropdown menu showing right (I'm doing it wrong)

EDIT: This was actually for my job but now I'll revert the changes and I just want this to be educational and learn what was the right way to do this... I hope I find the way :P

I'm working on a pre-existing site and I'm still learning a few things not that I'm stupid just amateur...

I know I'm missing something crucial but whatever example I see I still don't understand what I'm missing ... Sorry if this hurts your eyes... I really wanna know how to work around this efficiently :D

Site is http://alpha-ed.gr/

Trying to work my way on adding dropdown menu (it has none) that shows to the right.

I know I have to use

display:inline-block;

in this part, but also I know I'm doing it wrong :(

If you go and see, I've left it the way I have it done (terrible), what's supposed to be shown when I hover over the text is

" Σειρά (centered and underlined)

(underneath) Βιολογική καλλιέργεια και αγροτουρισμός "

kind of like this http://jsfiddle.net/DL2af/

where "A" (trying to insert "Σειρά") is on top and

"boystudent" (trying to insert Βιολογική καλλιέργεια και αγροτουρισμός)

is underneath it and do a second row "Σειρά" like that with a different section, but for now I want the 1st section.

This is what I came up with

<a class="nav show" href="?view=bc&id=9">Βιολογική Γεωργία και Διατροφή</a>
<span class="right-caret right">
<ul class="rightMenu">
<li>
  <a class="nav" href="?view=bc&id=9"><u>Σειρά</u><br>
  Βιολογική καλλιέργεια και αγροτουρισμός</a>
</li>
</span>

And CSS is

.show {display:inline-block;}

.rightMenu {
position:relative;
float:right;
}
.right-caret {

border-bottom: 4px solid transparent;
border-top: 4px solid transparent;
border-left: 4px solid #000000;
display: inline-block;
height: 0;
opacity: 1;
vertical-align: top;
width: 0;

}
.right
{
float:right;
}

The normal way for the other ones is

<a class="nav" href="?view=bc&id=4">Μεσολόγγι</a><span class="hide"> | </span>

with it's CSS

.nav {
background:#FFFFFF;
border:1px solid #b0b0b0;
color:#000000;
display:block;
margin-top:8px;
padding:5px 4px 4px 10px;
position:relative;
/*text-transform:uppercase;*/
width:140px;
}

.nav:hover,.active {
background:#FFFFFF url(../images/menuhover.jpg) top left repeat-x;
border:1px solid #909090;
color:#303030;
text-decoration:none;
}

Upvotes: 0

Views: 201

Answers (1)

Hussein
Hussein

Reputation: 623

Try this:

In your HTML add this to get the dropdown list:

<div class="dropdown">
  <button class="dropbtn"> Σειρά </button>
  <div class="dropdown-content">
    <a href="#"> Βιολογική καλλιέργεια και αγροτουρισμός </a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>

and add this to your CSS script to make it drops when you hover:

    /* Dropdown Button */
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
    position: relative;
    display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* Links inside the dropdown */
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #f1f1f1}

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {
    display: block;
}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}

I hope that helps.

Upvotes: 2

Related Questions