bootstrap 3 arrow on dropdown menu

前端 未结 4 1868
渐次进展
渐次进展 2020-12-12 12:14

In bootstrap 2 the dropdown menu had an upwards arrow as it can be seen here (i am not talking about the carret). Now using bootstrap 3 or latest git this arrow doesn\'t exi

4条回答
  •  生来不讨喜
    2020-12-12 12:35

    This builds on the work by Alexander Mistakidis and Joyrex to support optional arrows and dropup menus. In my case I did not want to have an arrow on all of the dropdown menus, only some.

    With this, you add the arrow class to the dropdown-menu element to get the arrow. If Bootstrap is positioning the dropdown/dropup to the left, also add arrow-right to shift the arrow to the other side.

    // add an arrow to the dropdown menus
    .dropdown-menu.arrow:before {
      position: absolute;
      left: 9px;
      display: inline-block;
      border-right: 7px solid transparent;
      border-left: 7px solid transparent;
      content: '';
    }
    .dropdown-menu.arrow:after {
      position: absolute;
      left: 10px;
      display: inline-block;
      border-right: 6px solid transparent;
      border-left: 6px solid transparent;
      content: '';
    }
    
    // postion at the top for a 'down' menu
    .dropdown .dropdown-menu.arrow:before {
      top: -7px;
      border-bottom: 7px solid #ccc;
      border-bottom-color: rgba(0, 0, 0, 0.2);
    }
    .dropdown .dropdown-menu.arrow:after {
      top: -6px;
      border-bottom: 6px solid #ffffff;
    }
    
    // postion at the bottom for an 'up' menu
    .dropup .dropdown-menu.arrow:before {
      bottom: -7px;
      border-top: 7px solid #ccc;
      border-top-color: rgba(0, 0, 0, 0.2);
    }
    .dropup .dropdown-menu.arrow:after {
      bottom: -6px;
      border-top: 6px solid #ffffff;
    }
    
    // support to move the arrow to the right-hand-side
    .dropdown-menu.arrow.arrow-right:before,
    .dropup .dropdown-menu.arrow.arrow-right:before {
      right: 15px;
      left: auto;
    }
    .dropdown-menu.arrow.arrow-right:after,
    .dropup .dropdown-menu.arrow.arrow-right:after {
      right: 16px;
      left: auto;
    }
    

提交回复
热议问题