// // Dropdown menus // -------------------------------------------------- // Use the .menu class on any
  • element within the topbar or ul.tabs and you'll get some superfancy dropdowns .dropup, .dropdown position: relative .dropdown-toggle // The caret makes the toggle a bit too tall in IE7 *margin-bottom: -3px .dropdown-toggle:active, .open .dropdown-toggle outline: 0 // Dropdown arrow/caret .caret display: inline-block width: 0 height: 0 vertical-align: top border-top: 4px solid $black border-right: 4px solid transparent border-left: 4px solid transparent content: "" // Place the caret .dropdown .caret margin-top: 8px margin-left: 2px // The dropdown menu (ul) // ---------------------- .dropdown-menu position: absolute top: 100% left: 0 z-index: $zindexDropdown display: none // none by default, but block on "open" of the menu float: left min-width: 160px max-width: 220px padding: 5px 0 margin: 2px 0 0 // override default ul list-style: none background-color: $dropdownBackground border: 1px solid #ccc // Fallback for IE7-8 border: 1px solid $dropdownBorder *border-right-width: 2px *border-bottom-width: 2px +border-radius(6px) +box-shadow(0 5px 10px rgba(0,0,0,.2)) -webkit-background-clip: padding-box -moz-background-clip: padding background-clip: padding-box // Aligns the dropdown menu to right &.pull-right right: 0 left: auto // Dividers (basically an hr) within the dropdown .divider +nav-divider($dropdownDividerTop, $dropdownDividerBottom) // Links within the dropdown menu li > a display: block padding: 3px 20px clear: both font-weight: normal line-height: $baseLineHeight color: $dropdownLinkColor white-space: nowrap // Hover state // ----------- .dropdown-menu li > a:hover, .dropdown-menu li > a:focus, .dropdown-submenu:hover > a color: $dropdownLinkColorHover text-decoration: none +gradient-vertical($dropdownLinkBackgroundHover, darken($dropdownLinkBackgroundHover, 5%)) // Active state // ------------ .dropdown-menu .active > a, .dropdown-menu .active > a:hover color: $dropdownLinkColorActive text-decoration: none outline: 0 +gradient-vertical($dropdownLinkBackgroundActive, darken($dropdownLinkBackgroundActive, 5%)) // Disabled state // -------------- // Gray out text and ensure the hover state remains gray .dropdown-menu .disabled > a, .dropdown-menu .disabled > a:hover color: $grayLight // Nuke hover effects .dropdown-menu .disabled > a:hover text-decoration: none background-color: transparent background-image: none // Remove CSS gradient +reset-filter cursor: default // Open state for the dropdown // --------------------------- .open // IE7's z-index only goes to the nearest positioned ancestor, which would // make the menu appear below buttons that appeared later on the page *z-index: $zindexDropdown > .dropdown-menu display: block // Right aligned dropdowns // --------------------------- .pull-right > .dropdown-menu right: 0 left: auto // Allow for dropdowns to go bottom up (aka, dropup-menu) // ------------------------------------------------------ // Just add .dropup after the standard .dropdown class and you're set, bro. // TODO: abstract this so that the navbar fixed styles are not placed here? .dropup, .navbar-fixed-bottom .dropdown // Reverse the caret .caret border-top: 0 border-bottom: 4px solid $black content: "" // Different positioning for bottom up menu .dropdown-menu top: auto bottom: 100% margin-bottom: 1px // Sub menus // --------------------------- .dropdown-submenu position: relative // Default dropdowns .dropdown-submenu > .dropdown-menu top: 0 left: 100% margin-top: -6px margin-left: -1px +border-radius(0 6px 6px 6px) .dropdown-submenu:hover > .dropdown-menu display: block // Dropups .dropup .dropdown-submenu > .dropdown-menu top: auto bottom: 0 margin-top: 0 margin-bottom: -2px +border-radius(5px 5px 5px 0) // Caret to indicate there is a submenu .dropdown-submenu > a:after display: block content: " " float: right width: 0 height: 0 border-color: transparent border-style: solid border-width: 5px 0 5px 5px border-left-color: darken($dropdownBackground, 20%) margin-top: 5px margin-right: -10px .dropdown-submenu:hover > a:after border-left-color: $dropdownLinkColorHover // Left aligned submenus .dropdown-submenu.pull-left // Undo the float // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere. float: none // Positioning the submenu > .dropdown-menu left: -100% margin-left: 10px +border-radius(6px 0 6px 6px) // Tweak nav headers // ----------------- // Increase padding from 15px to 20px on sides .dropdown .dropdown-menu .nav-header padding-left: 20px padding-right: 20px // Typeahead // --------- .typeahead z-index: 1051 margin-top: 2px // give it some space to breathe +border-radius($baseBorderRadius)