Bogdan
Bogdan

Reputation: 95

margin-bottom attribute not working

I have css code:

.dropdown-menu {
  position:absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 14px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 6px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.arrow {
position:absolute;
margin-bottom: 50px;
margin-left: 50px;
width: 0;
height: 0;
border-style: solid;
border-width: 0 5px 8.7px 5px;
border-color: transparent transparent #007bff transparent;
line-height: 0px;
_border-color: #000000 #000000 #007bff #000000;
_filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000');
}

HTML code:

       <ul class="dropdown-menu">
              <li class="arrow"></li>
              <li><a href="#">Credit History</a></li>
              <li><a href="#">Purchased Content</a></li>
              <li><a href="#">Access logs</a></li>
        </ul>

`

The margin-bottom: 50px; from arrow class will move my arrow down. If I put margin-top: 50px;, my arrow will still go down. I am trying to put that arrow upper outside the dropdown menu.

Can anyone tell me why my arrow does not go up please? Thank you very much!

Later edit: I updated the question.

FIDDLE here

Upvotes: 0

Views: 67

Answers (2)

Bogdan
Bogdan

Reputation: 95

My solution which finally worked is:

CSS code:

    .dropdown-menu {
      position: absolute;
      display:none;
    /*  top: 100%;*/
      left: 0;
      z-index: 1000;
      float: left;
      min-width: 160px;
      padding: 5px 0;
      margin: 2px 0 0;
      list-style: none;
      font-size: 14px;
      background-color: #ffffff;
      border: 1px solid #cccccc;
      border: 1px solid rgba(0, 0, 0, 0.15);
      border-radius: 6px;
      -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
      box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
      background-clip: padding-box;
    }

.arrow {
  position:relative;
  left: 80%;
  bottom:13px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 5px 8.7px 5px;
  border-color: transparent transparent #fff transparent;
  line-height: 0px;
  _border-color: #000000 #000000 #fff #000000;
  _filter: progid: DXImageTransform.Microsoft.Chroma(color='#000000');
}

HTML code:

<ul class="dropdown-menu">
<li class="arrow"></li>
  <li><a href="#">Credit History</a></li>
  <li class="divider"></li>
  <li><a href="#">Purchased Content</a></li>
  <li class="divider"></li>
  <li><a href="#">Access logs</a></li>
</ul>

Thanks to @repzero.

Upvotes: 1

repzero
repzero

Reputation: 8412

You may want something like this

#menu_options {
position: absolute;
/*top: 100%;*/

}
.dropdown-menu {
  left: 0;
  z-index: 1000;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 14px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 6px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}

.arrow {
  position:relative;
  top:3px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 5px 8.7px 5px;
  border-color: transparent transparent #007bff transparent;
  line-height: 0px;
  _border-color: #000000 #000000 #007bff #000000;
  _filter: progid: DXImageTransform.Microsoft.Chroma(color='#000000');
}
<div id='menu_options'>
<li class="arrow"></li>
<ul class="dropdown-menu">
  <li><a href="#">Credit History</a></li>
  <li class="divider"></li>
  <li><a href="#">Purchased Content</a></li>
  <li class="divider"></li>
  <li><a href="#">Access logs</a></li>
</ul>
</div>

Upvotes: 1

Related Questions